HTTP REST Api endpoint internal_stats - IBM/ibm-spectrum-scale-bridge-for-grafana GitHub Wiki

  • /internal_stats

    • Supported for both: OpenTSDB API and Prometheus API

    • Returns summary statistics about the metrics collection system itself, including:

      • Total number of requests processed
      • Number of metrics currently in memory cache
      • Memory size used by metrics cache
      • Number of bundle IDs registered (for OpenTSDB and Prometheus)
      • Memory size used by bundle registries
      • Process and container resource usage of the bridge (process section, same content as /health?details=true)
    • Prerequisites: To enable this endpoint, set http_metrics_enabled = True in the configuration file.

    • Optional query parameter format: prometheus (default), json, opentsdb, csv

OpenTSDB API

Example output (JSON format):
```console
# curl "http://10.88.3.241:4242/internal_stats?format=json" -u scale_admin:TXlWZXJ5U3Ryb25nUGFzc3cwcmQhCg== | jq .
{
  "total_requests": 11280,
  "metrics_in_memory_count": 1000,
  "metrics_in_memory_size": 56680,
  "opentsdb_bundle_ids_count": 1,
  "prometheus_bundle_ids_count": 5,
  "bundle_ids_count_total": 6,
  "opentsdb_bundle_registry_memory_size": 585,
  "prometheus_bundle_registry_memory_size": 1677,
  "bundle_registry_memory_size_total": 2262,
  "process": {
    "pid": 1,
    "memory": {
      "rss_mb": 74.3,
      "limit_mb": 512.0,
      "used_mb": 118.6
    },
    "cpu": {
      "threads": 12,
      "quota_cores": 2.0,
      "raw": "200000 100000"
    }
  }
}
```

Example output (OpenTSDB format):
```console
# curl "http://10.88.3.241:4242/internal_stats?format=opentsdb" -u scale_admin:TXlWZXJ5U3Ryb25nUGFzc3cwcmQhCg== | jq .
[
  {
    "metric": "grafana_bridge_internal_total_requests",
    "tags": {
      "pid": "1"
    },
    "aggregatedTags": [],
    "dps": {
      "1776412800000": 11280
    }
  },
  ...
  {
    "metric": "grafana_bridge_internal_process_memory_rss_mb",
    "tags": {
      "pid": "1"
    },
    "aggregatedTags": [],
    "dps": {
      "1776412800000": 74.3
    }
  },
  ...
]
```

Example output (CSV format):
```console
# curl "http://10.88.3.241:4242/internal_stats?format=csv" -u scale_admin:TXlWZXJ5U3Ryb25nUGFzc3cwcmQhCg==
timestamp,pid,metric,value
2026-04-17 10:00:00,1,total_requests,11280
2026-04-17 10:00:00,1,metrics_in_memory_count,1000
...
2026-04-17 10:00:00,1,process_memory_rss_mb,74.3
2026-04-17 10:00:00,1,process_cpu_threads,12
```

Prometheus API

Example output (Prometheus format, default):
```console
# curl http://10.88.3.241:9250/internal_stats -u scale_admin:TXlWZXJ5U3Ryb25nUGFzc3cwcmQhCg==
# TYPE grafana_bridge_internal_total_requests gauge
grafana_bridge_internal_total_requests{pid="1"} 11432 1776412800000
# TYPE grafana_bridge_internal_metrics_in_memory_count gauge
grafana_bridge_internal_metrics_in_memory_count{pid="1"} 1000 1776412800000
# TYPE grafana_bridge_internal_metrics_in_memory_size gauge
grafana_bridge_internal_metrics_in_memory_size{pid="1"} 57208 1776412800000
...
# TYPE grafana_bridge_internal_process_memory_rss_mb gauge
grafana_bridge_internal_process_memory_rss_mb{pid="1"} 74.3 1776412800000
# TYPE grafana_bridge_internal_process_cpu_threads gauge
grafana_bridge_internal_process_cpu_threads{pid="1"} 12 1776412800000
```

Example output (JSON format):
```console
# curl "http://10.88.3.241:9250/internal_stats?format=json" -u scale_admin:TXlWZXJ5U3Ryb25nUGFzc3cwcmQhCg== | jq .
{
  "total_requests": 11432,
  "metrics_in_memory_count": 1000,
  "metrics_in_memory_size": 57208,
  "opentsdb_bundle_ids_count": 1,
  "prometheus_bundle_ids_count": 5,
  "bundle_ids_count_total": 6,
  "opentsdb_bundle_registry_memory_size": 585,
  "prometheus_bundle_registry_memory_size": 1677,
  "bundle_registry_memory_size_total": 2262,
  "process": {
    "pid": 1,
    "memory": {
      "rss_mb": 74.3,
      "limit_mb": 512.0,
      "used_mb": 118.6
    },
    "cpu": {
      "threads": 12,
      "quota_cores": 2.0,
      "raw": "200000 100000"
    }
  }
}
```