# 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"]