Перейти к содержимому
Skip to main content

Привязка метрик к компоненту

info

Перевод в процессе / Translation in progress. See русская версия.

Привязка метрики — это правило, которое связывает имя метрики и набор лейблов с конкретным Component в дашборде. Без привязки метрика принимается агентом и расходует квоту, но не отображается на карточке компонента и недоступна для MetricRule. Все привязки хранятся на backend в модуле Flaree.Application.Modules.Metrics (сущность ComponentMetricBinding).

Предварительные требования

  • компонент создан в дашборде и его идентификатор сохранён как ${COMPONENT_ID} (поле «Component ID» в настройках компонента)
  • метрика реально поступает на backend — проверьте, что агент отправляет её через OTLP или Prometheus scrape
  • агент Flaree версии ≥ 1.0 с актуальным токеном в agent.yaml или переменной ${FLAREE_TOKEN}
  • у вызывающего в app.flaree.ru есть роль owner или admin в workspace — только они могут менять binding

Минимальная конфигурация

metrics:
bindings:
- metric: http_requests_total
component: ${COMPONENT_ID}

Такая запись сообщает backend, что при матче имени метрики http_requests_total все её серии показываются на карточке компонента ${COMPONENT_ID} как счётчик по умолчанию.

Полная конфигурация

metrics:
bindings:
- metric: http_requests_total
component: ${COMPONENT_ID}
labels_match:
service: checkout
env: prod
aggregation: count
window: 1m
rate: true
display:
title: HTTP RPS
unit: req/s
- metric: process_cpu_seconds_total
component: ${COMPONENT_ID}
aggregation: p95
window: 5m
labels_match:
instance: ${HOSTNAME}

Ключевые поля:

  • labels_match — фильтр серий по лейблам; binding применяется только к тем сериям, где все указанные пары совпадают.
  • aggregationavg | max | p95 | count — способ свёртки серий в одно значение для карточки компонента.
  • window — интервал усреднения (Go duration: 30s, 1m, 5m).
  • rate: true — превращает counter в per-second скорость.
  • display.title / display.unit — как подписать график в интерфейсе; на метрику-правило не влияет.

Проверка работы

  1. Запросите список метрик, привязанных к компоненту, и убедитесь, что новый binding появился в ответе API.
  2. Убедитесь, что агент продолжает отправлять метрику и квота не исчерпана — счётчик flaree_agent_metrics_sent_total растёт.
  3. Откройте карточку компонента в app.flaree.ru — график с новой метрикой отображается в течение ≤ 1 минуты, а MetricRule можно создать, выбрав её из списка.
# Список bindings компонента
curl -sS $FLAREE_ENDPOINT/api/components/$COMPONENT_ID/metrics \
-H "X-Flaree-Token: ${FLAREE_TOKEN}" | head -n 5

# Счётчики отправленных метрик на агенте
curl -sS http://127.0.0.1:9100/metrics | grep flaree_agent_metrics_sent_total

Troubleshooting

Если метрика поступает, но не видна на карточке компонента или MetricRule молчит — следуйте сценарию нет данных.

tip

Метрика и binding — разные сущности: удаление binding не удаляет уже принятые данные и не возвращает квоту. Для массовой привязки по префиксу имени используйте поле metric в виде payments.*.