Перейти к основному содержанию
Перейти к основному содержанию

Prometheus

ВводВыводПсевдоним

Описание

Выводит метрики в текстовом формате экспозиции Prometheus.

Для этого формата требуется, чтобы выходная таблица была структурирована правильно в соответствии со следующими правилами:

  • Столбцы name (String) и value (число) являются обязательными.
  • Строки могут опционально содержать help (String) и timestamp (число).
  • Столбец type (String) должен быть одним из counter, gauge, histogram, summary, untyped или пустым.
  • Каждое значение метрики также может иметь некоторые labels (Map(String, String)).
  • Несколько последовательных строк могут относиться к одной метрике с различными метками. Таблица должна быть отсортирована по имени метрики (например, с помощью ORDER BY name).

Существуют особые требования к меткам histogram и summary - см. документацию Prometheus для получения подробностей. Специальные правила применяются к строкам с метками {'count':''} и {'sum':''}, которые преобразуются в <metric_name>_count и <metric_name>_sum соответственно.

Пример использования

┌─name────────────────────────────────┬─type──────┬─help──────────────────────────────────────┬─labels─────────────────────────┬────value─┬─────timestamp─┐
│ http_request_duration_seconds       │ histogram │ A histogram of the request duration.      │ {'le':'0.05'}                  │    24054 │             0 │
│ http_request_duration_seconds       │ histogram │                                           │ {'le':'0.1'}                   │    33444 │             0 │
│ http_request_duration_seconds       │ histogram │                                           │ {'le':'0.2'}                   │   100392 │             0 │
│ http_request_duration_seconds       │ histogram │                                           │ {'le':'0.5'}                   │   129389 │             0 │
│ http_request_duration_seconds       │ histogram │                                           │ {'le':'1'}                     │   133988 │             0 │
│ http_request_duration_seconds       │ histogram │                                           │ {'le':'+Inf'}                  │   144320 │             0 │
│ http_request_duration_seconds       │ histogram │                                           │ {'sum':''}                     │    53423 │             0 │
│ http_requests_total                 │ counter   │ Total number of HTTP requests             │ {'method':'post','code':'200'} │     1027 │ 1395066363000 │
│ http_requests_total                 │ counter   │                                           │ {'method':'post','code':'400'} │        3 │ 1395066363000 │
│ metric_without_timestamp_and_labels │           │                                           │ {}                             │    12.47 │             0 │
│ rpc_duration_seconds                │ summary   │ A summary of the RPC duration in seconds. │ {'quantile':'0.01'}            │     3102 │             0 │
│ rpc_duration_seconds                │ summary   │                                           │ {'quantile':'0.05'}            │     3272 │             0 │
│ rpc_duration_seconds                │ summary   │                                           │ {'quantile':'0.5'}             │     4773 │             0 │
│ rpc_duration_seconds                │ summary   │                                           │ {'quantile':'0.9'}             │     9001 │             0 │
│ rpc_duration_seconds                │ summary   │                                           │ {'quantile':'0.99'}            │    76656 │             0 │
│ rpc_duration_seconds                │ summary   │                                           │ {'count':''}                   │     2693 │             0 │
│ rpc_duration_seconds                │ summary   │                                           │ {'sum':''}                     │ 17560473 │             0 │
│ something_weird                     │           │                                           │ {'problem':'division by zero'} │      inf │      -3982045 │
└─────────────────────────────────────┴───────────┴───────────────────────────────────────────┴────────────────────────────────┴──────────┴───────────────┘

Будет отформатировано как:

# HELP http_request_duration_seconds A histogram of the request duration. \{#help-http_request_duration_seconds-a-histogram-of-the-request-duration}
# TYPE http_request_duration_seconds histogram \{#type-http_request_duration_seconds-histogram}
http_request_duration_seconds_bucket{le="0.05"} 24054
http_request_duration_seconds_bucket{le="0.1"} 33444
http_request_duration_seconds_bucket{le="0.5"} 129389
http_request_duration_seconds_bucket{le="1"} 133988
http_request_duration_seconds_bucket{le="+Inf"} 144320
http_request_duration_seconds_sum 53423
http_request_duration_seconds_count 144320

# HELP http_requests_total Total number of HTTP requests \{#help-http_requests_total-total-number-of-http-requests}
# TYPE http_requests_total counter \{#type-http_requests_total-counter}
http_requests_total{code="200",method="post"} 1027 1395066363000
http_requests_total{code="400",method="post"} 3 1395066363000

metric_without_timestamp_and_labels 12.47

# HELP rpc_duration_seconds A summary of the RPC duration in seconds. \{#help-rpc_duration_seconds-a-summary-of-the-rpc-duration-in-seconds}
# TYPE rpc_duration_seconds summary \{#type-rpc_duration_seconds-summary}
rpc_duration_seconds{quantile="0.01"} 3102
rpc_duration_seconds{quantile="0.05"} 3272
rpc_duration_seconds{quantile="0.5"} 4773
rpc_duration_seconds{quantile="0.9"} 9001
rpc_duration_seconds{quantile="0.99"} 76656
rpc_duration_seconds_sum 17560473
rpc_duration_seconds_count 2693

something_weird{problem="division by zero"} +Inf -3982045

Настройки формата