Get Metrics and Archive Metrics Diagnostics
GET /obp/v7.0.0/management/system/diagnostics/metrics
OBPv7.0.0-getMetricsDiagnostics Roles: CanGetMetricsDiagnostics MetricSystemAPI
Diagnostic for the metrics-archiving pipeline (MetricsArchiveScheduler).
Returns:
config— the relevant props as the scheduler reads them (configured value, or the code default when unset):write_metrics,enable_metrics_scheduler,retain_metrics_scheduler_interval_in_seconds,retain_metrics_days,retain_archive_metrics_days,retain_metrics_move_limit.metric— row count and oldest/newest record (date + age in days) of the livemetrictable.metric_archive— the same for themetricarchivetable.last_run/last_successful_run— the most recent (and most recent successful) scheduler run from themetricsarchiverunaudit log, including rows moved, rows deleted, duration and success. Absent if no run has been recorded yet.checks— a list of integrity checks, each with astatusofOK,WARNING, orERROR:check_metrics_are_being_written— warns ifwrite_metricsis off, so no new metrics are being recorded.check_archive_scheduler_is_enabled— errors ifenable_metrics_scheduleris off, so old metrics are never archived nor deleted.check_metric_retention_policy_is_respected— flags if the oldest live metric is older than the retention window (move job not keeping up / stopped).check_all_old_metrics_can_be_archived— always OK; old metric rows with no correlation id are now archived with a generatedORIGINALLY_NOT_SET-<uuid>id.check_archive_retention_policy_is_respected— flags if the oldest archived metric is older than the archive retention (cleanup not keeping up / stopped).check_archive_metrics_is_fresh_enough— flags if a backlog exists but the newest archived record is stale (move job stopped). "enough" because a fresh record is only required when there is a backlog to move.check_last_archive_run_succeeded— reports the outcome of the most recent run from the run log (errors if the last run failed; warns if none recorded).
everything_as_expected—trueonly when every check isOK.
User Authentication is Required. The User must be logged in. The Application must also be authenticated.
JSON response body fields (31)
- api_instance_id
- api_instance_id
- checks
- config
- config
- count
- duration_ms
- duration_ms
- enable_metrics_scheduler
- enable_metrics_scheduler
- ended_at
- ended_at
- everything_as_expected
- everything_as_expected
- message
- 123456
- metric
- metric
- metric_archive
- metric_archive
- name
- ACCOUNT_MANAGEMENT_FEE
- remark
- remark
- retain_archive_metrics_days
- retain_archive_metrics_days
- retain_metrics_days
- retain_metrics_days
- retain_metrics_move_limit
- retain_metrics_move_limit
- retain_metrics_scheduler_interval_in_seconds
- retain_metrics_scheduler_interval_in_seconds
- rows_deleted_from_archive
- rows_deleted_from_archive
- rows_moved_to_archive
- rows_moved_to_archive
- run_id
- run_id
- started_at
- started_at
- status
- success
- table_name
- table_name
- write_metrics
- write_metrics
- last_run
- last_run
- last_successful_run
- last_successful_run
- newest_record_age_days
- newest_record_age_days
- newest_record_date
- newest_record_date
- oldest_record_age_days
- oldest_record_age_days
- oldest_record_date
- oldest_record_date
Example success response
{
"config": {
"write_metrics": true,
"enable_metrics_scheduler": true,
"retain_metrics_scheduler_interval_in_seconds": 599,
"retain_metrics_days": 90,
"retain_archive_metrics_days": 730,
"retain_metrics_move_limit": 4000
},
"metric": {
"table_name": "metric",
"count": 1240000,
"oldest_record_date": "2024-03-01T00:00:00Z",
"newest_record_date": "2024-06-01T00:00:00Z",
"oldest_record_age_days": 85,
"newest_record_age_days": 0
},
"metric_archive": {
"table_name": "metricarchive",
"count": 9800000,
"oldest_record_date": "2022-06-01T00:00:00Z",
"newest_record_date": "2023-12-07T00:00:00Z",
"oldest_record_age_days": 700,
"newest_record_age_days": 92
},
"last_run": {
"run_id": "9f3c2b1a-7d4e-4c8a-9b2f-1e6d5a0c4b7e",
"api_instance_id": "obp",
"started_at": "2024-06-01T00:00:00Z",
"ended_at": "2024-06-01T00:00:12Z",
"duration_ms": 12000,
"rows_moved_to_archive": 4000,
"rows_deleted_from_archive": 1500,
"success": true,
"remark": ""
},
"last_successful_run": {
"run_id": "9f3c2b1a-7d4e-4c8a-9b2f-1e6d5a0c4b7e",
"api_instance_id": "obp",
"started_at": "2024-06-01T00:00:00Z",
"ended_at": "2024-06-01T00:00:12Z",
"duration_ms": 12000,
"rows_moved_to_archive": 4000,
"rows_deleted_from_archive": 1500,
"success": true,
"remark": ""
},
"checks": [
{
"name": "check_metrics_are_being_written",
"status": "OK",
"message": "write_metrics=true: API calls are being recorded into the metric table."
},
{
"name": "check_archive_scheduler_is_enabled",
"status": "OK",
"message": "enable_metrics_scheduler=true: the archive/cleanup scheduler is active."
},
{
"name": "check_metric_retention_policy_is_respected",
"status": "OK",
"message": "Oldest metric is 85 days old, within the effective retention of 90 days (+7d grace)."
},
{
"name": "check_all_old_metrics_can_be_archived",
"status": "OK",
"message": "All metric rows older than the retention window are archivable; rows with no correlation id are archived with a generated 'ORIGINALLY_NOT_SET-<uuid>' id."
},
{
"name": "check_archive_retention_policy_is_respected",
"status": "OK",
"message": "Oldest archived metric is 700 days old, within the effective archive retention of 730 days (+7d grace)."
},
{
"name": "check_archive_metrics_is_fresh_enough",
"status": "OK",
"message": "Newest archived metric is 92 days old, consistent with an active move job."
},
{
"name": "check_last_archive_run_succeeded",
"status": "OK",
"message": "Last archive run succeeded 0 days ago (moved 4000 rows, deleted 1500 outdated archive rows)."
}
],
"everything_as_expected": true
}Possible errors (3)
- OBP-20001: User not logged in. Authentication is required!
- OBP-20006: User is missing one or more roles:
- OBP-50000: Unknown Error.