根据 Prometheus 指标触发操作

Trigger an action based on Prometheus metrics

我需要根据 Prometheus 指标(不是警报)触发 bash 命令。我发现 https://home.robusta.dev/ 可以执行一个动作,但它只消耗 Prometheus 警报。请推荐适合我任务的工具。

Prometheus 有一个 API,您可以获得任何能够执行 HTTP 请求的指标:

curl 'http://prometheus.example.com:9090/api/v1/query?query=up!=1'

成功后你会得到一个 JSON 这样的:

{
  "status": "success",
  "data": {
    "resultType": "vector",
    "result": [
      {
        "metric": {
          "__name__": "up",
          "instance": "foo",
          "job": "test"
        },
        "value": [
          1646896269.124,
          "0"
        ]
      },
      {
        "metric": {
          "__name__": "up",
          "instance": "bar",
          "job": "test"
        },
        "value": [
          1646896269.124,
          "0"
        ]
      }
    ]
  }
}

然后您可以添加一些逻辑:解析响应、进行另一个查询、运行 脚本等。