Skip to content
This repository has been archived by the owner on Dec 17, 2023. It is now read-only.

pass metrics last run to collector #89

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/zamp_collector/zcl_amp_c_jobs.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ CLASS zcl_amp_c_jobs IMPLEMENTATION.
WHEN 'X' THEN 'unknown_state'
ELSE 'no status found' ).

metrics = VALUE #( BASE metrics ( metric_key = status metric_value = <job>-count ) ).
metrics_current_run = VALUE #( BASE metrics_current_run ( metric_key = status metric_value = <job>-count ) ).

ENDLOOP.

Expand Down
2 changes: 1 addition & 1 deletion src/zamp_collector/zcl_amp_c_runtime_errors.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ CLASS zcl_amp_c_runtime_errors IMPLEMENTATION.
WHERE datum = @sy-datum
AND seqno = '000'.

metrics = VALUE #( BASE metrics ( metric_key = 'number' metric_value = number_of_runtime_errors ) ).
metrics_current_run = VALUE #( BASE metrics_current_run ( metric_key = 'number' metric_value = number_of_runtime_errors ) ).

ENDMETHOD.

Expand Down
2 changes: 1 addition & 1 deletion src/zamp_collector/zcl_amp_c_sql_monitor.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ CLASS zcl_amp_c_sql_monitor IMPLEMENTATION.
DATA(records) = sqlm->get_records( upto = 5 ).
DATA(totaldbtime) = REDUCE i( INIT sum = 0 FOR record IN records NEXT sum = sum + record-rtsum ).

metrics = VALUE #( BASE metrics ( metric_key = 'totaldbtime' metric_value = totaldbtime ) ).
metrics_current_run = VALUE #( BASE metrics_current_run ( metric_key = 'totaldbtime' metric_value = totaldbtime ) ).

ENDMETHOD.

Expand Down
33 changes: 11 additions & 22 deletions src/zamp_collector/zcl_amp_c_transactional_rfcs.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -20,28 +20,17 @@ CLASS zcl_amp_c_transactional_rfcs IMPLEMENTATION.

SELECT
COUNT(*) AS count,
status AS status
FROM v_op
INTO TABLE @DATA(jobs)
WHERE strtdate = @sy-datum
GROUP BY status.

LOOP AT jobs ASSIGNING FIELD-SYMBOL(<job>).

"status from include LBTCHDEF
status = SWITCH #( <job>-status
WHEN 'R' THEN 'running'
WHEN 'Y' THEN 'ready'
WHEN 'P' THEN 'scheduled'
WHEN 'P' THEN 'intercepted'
WHEN 'S' THEN 'released'
WHEN 'A' THEN 'aborted'
WHEN 'F' THEN 'finished'
WHEN 'Z' THEN 'put_active'
WHEN 'X' THEN 'unknown_state'
ELSE 'no status found' ).

metrics = VALUE #( BASE metrics ( metric_key = status metric_value = <job>-count ) ).
arfcstate AS status
FROM arfcsstate
INTO TABLE @DATA(rfcs)
WHERE arfcdatum = @date_current_run
GROUP BY arfcstate.

LOOP AT rfcs ASSIGNING FIELD-SYMBOL(<rfc>).

status = <rfc>-status.

metrics_current_run = VALUE #( BASE metrics_current_run ( metric_key = status metric_value = <rfc>-count ) ).

ENDLOOP.

Expand Down
8 changes: 4 additions & 4 deletions src/zamp_collector/zcl_amp_c_workloads.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ CLASS zcl_amp_c_workloads IMPLEMENTATION.

ENDLOOP.

metrics = VALUE #( BASE metrics
( metric_key = 'no_of_records' metric_value = no_of_records )
( metric_key = 'response_time' metric_value = response_time )
( metric_key = 'cpu_time' metric_value = cpu_time ) ).
metrics_current_run = VALUE #( BASE metrics_current_run
( metric_key = 'no_of_records' metric_value = no_of_records )
( metric_key = 'response_time' metric_value = response_time )
( metric_key = 'cpu_time' metric_value = cpu_time ) ).


ELSE.
Expand Down
13 changes: 7 additions & 6 deletions src/zamp_collector/zif_amp_collector.intf.abap
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ INTERFACE zif_amp_collector

METHODS get_metrics
IMPORTING
last_run TYPE zamp_store-metric_last_run
date_last_run TYPE d
time_last_run TYPE t
date_current_run TYPE d
time_current_run TYPE t
RETURNING VALUE(metrics) TYPE metrics.
last_run TYPE zamp_store-metric_last_run
date_last_run TYPE d
time_last_run TYPE t
metrics_last_run TYPE metrics
date_current_run TYPE d
time_current_run TYPE t
RETURNING VALUE(metrics_current_run) TYPE metrics.

ENDINTERFACE.
45 changes: 28 additions & 17 deletions src/zamp_provider/zcl_amp_strategist.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ CLASS zcl_amp_strategist DEFINITION
PROTECTED SECTION.
PRIVATE SECTION.

TYPES ty_stored_metrics TYPE STANDARD TABLE OF zamp_store WITH KEY metric_scenario metric_group metric_key.

METHODS get_last_run
IMPORTING
scenario TYPE zamp_store-metric_scenario
metric_group TYPE zamp_store-metric_group
RETURNING VALUE(last_run) TYPE zamp_store-metric_last_run.
scenario TYPE zamp_store-metric_scenario
metric_group TYPE zamp_store-metric_group
RETURNING VALUE(last_run_metrics) TYPE ty_stored_metrics.

METHODS extract_date_time
IMPORTING
Expand All @@ -34,23 +36,30 @@ ENDCLASS.
CLASS zcl_amp_strategist IMPLEMENTATION.
METHOD provide_metrics.

DATA collector_metrics TYPE zif_amp_collector=>metrics.
DATA metrics TYPE STANDARD TABLE OF zamp_store.
DATA metrics_total LIKE metrics.
DATA metric_collector TYPE REF TO zif_amp_collector.
DATA collector_metrics TYPE zif_amp_collector=>metrics.
DATA metrics TYPE STANDARD TABLE OF zamp_store.
DATA metrics_total LIKE metrics.
DATA metric_collector TYPE REF TO zif_amp_collector.
DATA timestamp_last_run TYPE zamp_metric_last_run .

DATA(metric_collectors) = NEW zcl_amp_customizing_base( scenario )->get_metric_collectors( ).

LOOP AT metric_collectors ASSIGNING FIELD-SYMBOL(<metric_collector>).

CREATE OBJECT metric_collector TYPE (<metric_collector>-metric_class).

DATA(last_run) = me->get_last_run( scenario = scenario
metric_group = <metric_collector>-metric_group ).
DATA(metrics_last_run) = me->get_last_run( scenario = scenario
metric_group = <metric_collector>-metric_group ).

TRY.
timestamp_last_run = metrics_last_run[ 1 ]-metric_last_run.
CATCH cx_sy_itab_line_not_found.
CLEAR timestamp_last_run.
ENDTRY.

me->extract_date_time(
EXPORTING
timestamp = last_run
timestamp = timestamp_last_run
IMPORTING
date_last_run = DATA(date_last_run)
time_last_run = DATA(time_last_run)
Expand All @@ -59,9 +68,12 @@ CLASS zcl_amp_strategist IMPLEMENTATION.
current_time_stamp = DATA(current_time_stamp)
).

collector_metrics = metric_collector->get_metrics( last_run = last_run
collector_metrics = CORRESPONDING #( metrics_last_run ).

collector_metrics = metric_collector->get_metrics( last_run = timestamp_last_run
date_last_run = date_last_run
time_last_run = time_last_run
metrics_last_run = collector_metrics
date_current_run = date_current_run
time_current_run = time_current_run ).

Expand All @@ -83,12 +95,11 @@ CLASS zcl_amp_strategist IMPLEMENTATION.

METHOD get_last_run.

SELECT metric_last_run
FROM zamp_store
WHERE zamp_store~metric_scenario = @scenario
AND zamp_store~metric_group = @metric_group
INTO @last_run UP TO 1 ROWS.
ENDSELECT.
SELECT *
FROM zamp_store
WHERE zamp_store~metric_scenario = @scenario
AND zamp_store~metric_group = @metric_group
INTO TABLE @last_run_metrics.

ENDMETHOD.

Expand Down