Используй только переданные placeholders и значения в фигурных скобках. Если данных не хватает, явно помечай допущения вместо выдуманных значений.
Вы — инженер по надёжности/мониторингу ML‑проектов и архитектор мониторинга. Ваша задача — подготовить готовую к исполнению, подробную и самодостаточную стратегию мониторинга для критического конвейера данных, описанного пользователем через параметры ниже. Если какой‑то параметр не указан, подготовьте сначала «универсальный» набор решений и затем приведите отдельно 2–3 конкретных реализации для распространённых вариантов.
Входные параметры (замените плейсхолдеры конкретными значениями перед исполнением):
- {pipeline_tool} — инструмент/фреймворк конвейера (например: Apache Airflow, Kafka Streams, dbt, Prefect, NiFi).
- {data_source} — источник данных (например: поток событий, файлы S3, база данных PostgreSQL, IoT‑события).
- {ml_use_case} — цель ML (например: классификация онлайн‑транзакций, рекоммендации, прогнозирование спроса).
- {monitoring_tool} — система мониторинга/алертинга/дашбордов (например: Prometheus+Grafana, Datadog, New Relic, Grafana Cloud, Splunk).
Требуемый результат (строгая структура документа, отдавайте все блоки в указанном порядке):
1) Краткое резюме (1–2 абзаца)
- Цель мониторинга, ключевые SLA, предположения (объём трафика, допустимая задержка, критичность).
2) Заинтересованные стороны и роли
- Кому отправлять оповещения, on‑call, владельцы сервисов, байланы с бизнесом.
3) Метрики для отслеживания (группировать по категориям)
- Инфраструктурные метрики (CPU, RAM, диск, сетевые лаги) — конкретные имена метрик/методики получения.
- Метрики пайплайна (черезput, latency per stage, backpressure, lag‑метрики для Kafka/streaming).
- Метрики качества данных (row counts, schema conformance, null rate, cardinality changes, freshness/staleness, uniqueness, aggregate checks).
- Метрики модели (input feature distributions, feature drift, label drift, prediction distribution, confidence/uncertainty, model latency, throughput, accuracy/precision/recall/AUC where applicable).
- Интеграционные/прикладные (failed jobs, retries, job runtime, SLA miss counts).
Для каждой метрики укажите:
- точное имя метрики (или SQL/PromQL/Datadog metric name / log query),
- частоту съёма,
- рекомендуемый базовый порог и метод вычисления порога (фиксированные значения + статистический метод: p90/p95, z‑score, MAD, rolling baseline).
4) Уровни оповещений и пороги
- Определите уровни: INFO / WARNING / CRITICAL.
- Для каждой важной метрики укажите конкретные пороги (числа или правила), задержку триггера (например: sustained for 5m), частоту повторений, пробные/тестовые окна.
- Опишите метод настройки порогов (например: baseline на 30 дней, отклонение >3σ или относительное изменение >30% vs rolling 7d).
5) Дизайн дашборда
- Макет (какие панели, группировка по категориям, приоритеты виджетов).
- Для каждой панели укажите: метрика/запрос, визуализация (timeseries, gauge, table, heatmap), временнóй интервал по умолчанию, refresh rate.
- Примеры готовых запросов/панелей для выбранного {monitoring_tool} (PromQL/Datadog query/LogQL/SQL).
- Приведите JSON/скриншот‑шаблон или экспорт дашборда (если поддерживается) в формате, готовом к импортy.
6) Автоматические проверки работоспособности (health checks)
- Канареечные/синтетические транзакции (конкретные сценарии, примеры HTTP запросов / test records).
- Data quality tests: примеры SQL checks, Great Expectations / dbt tests, примеры unit тестов для схемы.
- CI/CD‑интеграция: когда запускать проверки (on PR, on deploy, scheduled), автоматические откаты при критических тестах.
- Periodic integrity jobs: частота, типы восстановительных действий.
7) Реализация в выбранном {monitoring_tool} и {pipeline_tool}
- Конкретные шаги по интеграции (экспортеры/агенты, collector jobs, instrumenting code).
- Примеры конфигураций и команд:
- alert rule YAML (для Prometheus Alertmanager / Datadog monitor / New Relic alert policy),
- пример PromQL/Datadog query/SQL/Elasticsearch query/Log search,
- пример Grafana dashboard JSON (или сокращённый шаблон),
- пример Airflow DAG task sensor/SLAs, или Kafka consumer lag exporter config, или dbt test config.
- Поясните права доступа, секреты, конфигурацию хранения метрик и retention, нагрузочные последствия.
8) SLA и метрики SLO
- Определите SLO‑ы (доступность пайплайна, freshness SLA, model performance SLA — точные целевые значения, например: 99.9% data freshness within 5 min, model AUC >= 0.78 over rolling 7d).
- Для каждого SLO укажите измерение, окно учёта, ошибочный порог (burn rate) и последствия.
- Предложите методику расчёта SLI и отчётность.
9) Процедуры эскалации и рука‑буки (runbooks)
- Пошаговые runbook'ы для типовых срабатываний (data lag, schema change, model drift, job failure, infra outage).
- Контакты/каналы уведомлений, время реакции (MTTD, MTTR), кому и как эскалировать (уровни, дедупликация).
- Примеры автоматизированных ответных действий (restart job, clear queue, rollback модель), с командами/скриптами.
10) План внедрения и приоритетность
- Минимальный набор (MVP) для запуска в 2 недели.
- Расширенный набор (до 90 дней).
- Риски и оценки усилий (человеко‑часы), зависимости.
11) Проверка и тестирование стратегии
- Как тестировать алерты (alert fire drills), контроль ложных срабатываний.
- Метрики качества мониторинга (alert precision/recall), benchmarking.
12) Списки артефактов для выдачи
- Полный список файлов/конфигов, которые вы отдаёте на выход (alert rule YAML, dashboard JSON, SQL checks, runbooks, CI pipeline snippets).
Формат ответа
- Верните единый документ в порядке разделов 1–12.
- Для секций 3–9 давайте конкретику: числа, примеры запросов/конфигов, и по возможности короткие фрагменты кода/конфига (не более 30 строк для каждого примера; при необходимости указывайте, что это сокращённый шаблон).
- Если пользователь не заменил плейсхолдеры, сперва приведите универсальные рекомендации, затем два варианта конкретной реализации: (a) для Prometheus+Grafana + Airflow + S3, (b) для Datadog + Kafka + PostgreSQL.
- Будьте практичны: избегайте абстракций — давайте то, что можно прямо применить.
Ограничения и запреты
- Не включайте конфиденциальную информацию.
- Не делайте необоснованных утверждений о производительности без базовых предпосылок (обозначайте предположения).
- Не требуйте ручного вмешательства там, где возможна автоматизация.