Профиль observability: otel-collector (приём OTLP) -> tempo (трейсы), cadvisor/node-exporter (ресурсы) в Prometheus, дашборды Deal-Traces и Deal-Resources, datasource Tempo и связь логов с трейсами, алерты по ресурсам; OTel-env у всех процессов.
64 lines
3.3 KiB
YAML
64 lines
3.3 KiB
YAML
# Prometheus — сбор метрик Deal-процессов (этап 12, пакет A; Ruling 7 этапа 7).
|
||
#
|
||
# Источник — эндпоинты /metrics процессов Deal (OpenTelemetry → экспортёр Prometheus). Процессы
|
||
# слушают метрики на ОТДЕЛЬНОМ HTTP/1.1 Kestrel-эндпоинте :9464 (gRPC-порты :5101–5103/:5082 — HTTP/2,
|
||
# обычный GET scrape по ним невозможен). Порт метрик наружу не публикуется: scrape идёт внутри
|
||
# compose-сети от этого контейнера. Метка service (целевая) используется панелями Grafana
|
||
# Deal-Metrics-Overview для разбивки RPS/латентности/ошибок по процессам.
|
||
#
|
||
# Поднимается профилем observability (deploy/compose.prod.yml); конфиг монтируется в
|
||
# /etc/prometheus/prometheus.yml. Retention задаётся ключом --storage.tsdb.retention.time (15 суток).
|
||
|
||
global:
|
||
scrape_interval: 15s
|
||
evaluation_interval: 15s
|
||
# Имена метрик — в legacy-схеме Prometheus (точки в OTel-именах экранируются в _): без этой опции
|
||
# scrape-запрос Prometheus 3 запрашивает UTF-8-схему, и метрики сохраняются с точками
|
||
# (`deal.sessions.active`), что ломает привычные PromQL-имена (`deal_sessions_active`).
|
||
metric_name_validation_scheme: legacy
|
||
|
||
# Правила алертов (этап 12) — монтируются рядом с этим конфигом (/etc/prometheus/prometheus-rules.yml).
|
||
# Путь относительный — резолвится от каталога конфига (/etc/prometheus). Правила см. в
|
||
# deploy/observability/prometheus-rules.yml.
|
||
rule_files:
|
||
- prometheus-rules.yml
|
||
|
||
scrape_configs:
|
||
# Само-мониторинг Prometheus (доступность самого коллектора).
|
||
- job_name: prometheus
|
||
static_configs:
|
||
- targets: ["localhost:9090"]
|
||
|
||
# 4 процесса «Дейла»: core (:5080 HTTP + :5082 gRPC-ингресс) и три gRPC-сервиса.
|
||
# У каждого — свой /metrics на :9464; target-метка service попадает во все серии.
|
||
- job_name: deal
|
||
metrics_path: /metrics
|
||
static_configs:
|
||
- targets: ["core:9464"]
|
||
labels:
|
||
service: core
|
||
- targets: ["telegram-service:9464"]
|
||
labels:
|
||
service: telegram-service
|
||
- targets: ["ai-service:9464"]
|
||
labels:
|
||
service: ai-service
|
||
- targets: ["ml-service:9464"]
|
||
labels:
|
||
service: ml-service
|
||
|
||
# Ресурсы контейнеров (cAdvisor) и хоста (node-exporter) — этап «observability-стек».
|
||
# cAdvisor отдаёт метрики контейнеров (CPU/RAM/сеть/диск), node-exporter — хоста.
|
||
- job_name: cadvisor
|
||
static_configs:
|
||
- targets: ["cadvisor:8080"]
|
||
|
||
- job_name: node-exporter
|
||
static_configs:
|
||
- targets: ["node-exporter:9100"]
|
||
|
||
# Темпо (хранилище трейсов) — само-мониторинг: метрики приёма/отдачи трейсов.
|
||
- job_name: tempo
|
||
static_configs:
|
||
- targets: ["tempo:3200"]
|