Prometheus 查询 metricset

编辑

这是 query metricset,用于从 Prometheus 的查询 API 查询数据。

配置

编辑

即时查询

编辑

以下配置执行对 up 指标的即时查询,查询某个时间点的值。

- module: prometheus
  period: 10s
  hosts: ["localhost:9090"]
  metricsets: ["query"]
  queries:
  - name: 'up'
    path: '/api/v1/query'
    params:
      query: "up"

也可以使用更复杂的 PromQL 表达式,例如以下示例,它计算过去 5 分钟内 HTTP 请求的每秒速率。

- module: prometheus
  period: 10s
  hosts: ["localhost:9090"]
  metricsets: ["query"]
  queries:
  - name: "rate_http_requests_total"
    path: "/api/v1/query"
    params:
      query: "rate(prometheus_http_requests_total[5m])"

范围查询

编辑

以下示例评估表达式 up 在 30 秒的范围内,查询分辨率为 15 秒。

- module: prometheus
  period: 10s
  metricsets: ["query"]
  hosts: ["node:9100"]
  queries:
  - name: "up_master"
    path: "/api/v1/query_range"
    params:
      query: "up{node='master01'}"
      start: "2019-12-20T23:30:30.000Z"
      end: "2019-12-21T23:31:00.000Z"
      step: 15s

字段

有关 metricset 中每个字段的描述,请参阅 导出字段 部分。

这是一个由该 metricset 生成的示例文档。

{
    "@timestamp": "2017-10-12T08:05:34.853Z",
    "event": {
        "dataset": "prometheus.query",
        "duration": 115000,
        "module": "prometheus"
    },
    "metricset": {
        "name": "query",
        "period": 10000
    },
    "prometheus": {
        "labels": {
            "__name__": "go_threads",
            "instance": "localhost:9090",
            "job": "prometheus"
        },
        "query": {
            "go_threads": 18
        }
    },
    "service": {
        "address": "localhost:32769",
        "type": "prometheus"
    }
}