Привязка метрик к компоненту
Перевод в процессе / 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 применяется только к тем сериям, где все указанные пары совпадают.aggregation∈avg | max | p95 | count— способ свёртки серий в одно значение для карточки компонента.window— интервал усреднения (Go duration:30s,1m,5m).rate: true— превращает counter в per-second скорость.display.title/display.unit— как подписать график в интерфейсе; на метрику-правило не влияет.
Проверка работы
- Запросите список метрик, привязанных к компоненту, и убедитесь, что новый binding появился в ответе API.
- Убедитесь, что агент продолжает отправлять метрику и квота не
исчерпана — счётчик
flaree_agent_metrics_sent_totalрастёт. - Откройте карточку компонента в
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 молчит — следуйте сценарию нет данных.
Метрика и binding — разные сущности: удаление binding не удаляет уже
принятые данные и не возвращает квоту. Для массовой привязки по
префиксу имени используйте поле metric в виде payments.*.