Prometheus 服务的HTTP API :服务状态 status 接口

2021-02-14 0 By admin

以下 status 接口端点暴露当前 Prometheus 服务的配置信息。

一、Config 配置信息

此 Config 接口端点返回当前 Prometheus 加载的配置文件信息。
GET /api/v1/status/config
这个 config 接口端点返回 dumped 的 YAML 文件。由于YAML库的限制,不包括YAML注释。

$ curl http://localhost:9090/api/v1/status/config
{
  "status": "success",
  "data": {
    "yaml": "<content of the loaded config file in YAML>",
  }
}

二、Flags 服务标签信息

此 flags 接口端点返回当前 Prometheus 服务配置的标签信息。

GET /api/v1/status/flags

所有的返回值信息的数据类型为字符串类型。此接口在 Prometheus v2.2 中提供。

$ curl http://localhost:9090/api/v1/status/flags
{
  "status": "success",
  "data": {
    "alertmanager.notification-queue-capacity": "10000",
    "alertmanager.timeout": "10s",
    "log.level": "info",
    "query.lookback-delta": "5m",
    "query.max-concurrency": "20",
    ...
  }
}

三、runtimeinfo 运行时信息

此 runtimeinfo 接口端点返回当前 Prometheus 服务的各种运行时信息属性。
GET /api/v1/status/runtimeinfo
根据运行时属性的性质,返回值的类型不同。

$ curl http://localhost:9090/api/v1/status/runtimeinfo
{
  "status": "success",
  "data": {
    "startTime": "2019-11-02T17:23:59.301361365+01:00",
    "CWD": "/",
    "reloadConfigSuccess": true,
    "lastConfigTime": "2019-11-02T17:23:59+01:00",
    "timeSeriesCount": 873,
    "corruptionCount": 0,
    "goroutineCount": 48,
    "GOMAXPROCS": 4,
    "GOGC": "",
    "GODEBUG": "",
    "storageRetention": "15d"
  }
}

注意:在Prometheus版本之间,返回的确切运行时属性可能会更改,恕不另行通知。

四、Build Information 服务构建信息

此 buildinfo 接口端点返回 Prometheus 服务构建时属性信息。
GET /api/v1/status/buildinfo

所有的返回值信息的数据类型为字符串类型。

$ curl http://localhost:9090/api/v1/status/buildinfo
{
  "status": "success",
  "data": {
    "version": "2.13.1",
    "revision": "cb7cbad5f9a2823a622aaa668833ca04f50a0ea7",
    "branch": "master",
    "buildUser": "julius@desktop",
    "buildDate": "20191102-16:19:59",
    "goVersion": "go1.13.1"
  }
}

注意:在Prometheus版本之间,返回的确切运行时属性可能会更改,恕不另行通知。

五、TSDB Stats 存储状态

此 tsdb 接口端口返回 Prometheus 服务 TSDB的各种基数统计。

GET /api/v1/status/tsdb

  1. headStats:提供TSDB头块的以下数据:
    1. numSeries:系列数。
    2. chunkCount:块的数量。
    3. minTime:以毫秒为单位的当前最小时间戳。
    4. maxTime:以毫秒为单位的当前最大时间戳。
  2. serieCountByMetricName:这将提供度量名称及其序列计数的列表。
  3. labelValueCountByLabelName:这将提供标签名及其值计数的列表。
  4. memoryInBytesByLabelName:这将提供标签名称的列表和以字节为单位的内存。内存使用量是通过将给定标签名的所有值的长度相加来计算的。
  5. serieCountByLabelPair:这将提供标签值对及其系列计数的列表。
$ curl http://localhost:9090/api/v1/status/tsdb
{
  "status": "success",
  "data": {
    "headStats": {
      "numSeries": 508,
      "chunkCount": 937,
      "minTime": 1591516800000,
      "maxTime": 1598896800143,
    },
    "seriesCountByMetricName": [
      {
        "name": "net_conntrack_dialer_conn_failed_total",
        "value": 20
      },
      {
        "name": "prometheus_http_request_duration_seconds_bucket",
        "value": 20
      }
    ],
    "labelValueCountByLabelName": [
      {
        "name": "__name__",
        "value": 211
      },
      {
        "name": "event",
        "value": 3
      }
    ],
    "memoryInBytesByLabelName": [
      {
        "name": "__name__",
        "value": 8266
      },
      {
        "name": "instance",
        "value": 28
      }
    ],
    "seriesCountByLabelValuePair": [
      {
        "name": "job=prometheus",
        "value": 425
      },
      {
        "name": "instance=localhost:9090",
        "value": 425
      }
    ]
  }
}