API Explorer 1 endpoints

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 live metric table.
  • metric_archive — the same for the metricarchive table.
  • last_run / last_successful_run — the most recent (and most recent successful) scheduler run from the metricsarchiverun audit 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 a status of OK, WARNING, or ERROR:
    • check_metrics_are_being_written — warns if write_metrics is off, so no new metrics are being recorded.
    • check_archive_scheduler_is_enabled — errors if enable_metrics_scheduler is 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 generated ORIGINALLY_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 — true only when every check is OK.

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.
Implemented by OBPv7.0.0 getMetricsDiagnostics