Как получить необработанные данные вместо вектора с помощью PromQL?

#prometheus #promql

#prometheus #promql

Вопрос:

Я запрашиваю использование памяти у конечной точки программного обеспечения, которая связана с Prometheus (система мониторинга). Ниже приведен запрос,

 curl -k -s -X GET "https://192.168.6.13/metricsservice/query?query=(engine_memory_total_bytes)" -H "Authorization: Bearer 14ac2d8-9097-455e-baf5-f426f9e208b7"
 

И результат следующий

 {
  "status": "success",
  "data": {
    "resultType": "vector",
    "result": [
      {
        "metric": {
          "manager": "false",
        },
        "value": [
          1611002532.041,
          "1026170880"
        ]
      },
      {
        "metric": {
          "manager": "true",
        },
        "value": [
          1611002532.041,
          "7817961472"
        ]
      },
      {
        "metric": {
          "manager": "false",
        },
        "value": [
          1611002532.041,
          "7817965568"
        ]
      }
    ]
  }
}
 

Итак, значения представлены в векторном формате (обратите "resultType": "vector" внимание ).

Как я могу извлечь реальные данные вместо вектора?

Ответ №1:

Вы можете использовать фильтр jq, как в следующем примере:

 curl -k -s -X GET "https://192.168.6.13/metricsservice/query?query=(engine_memory_total_bytes)" -H "Authorization: Bearer 14ac2d8-9097-455e-baf5-f426f9e208b7" | jq --raw-output '.data.result[].value[1]'