[📌 Часть 2/2] — 13 июля 2026 г. в 05:44:50.759
[📌 Часть 2/2] Мониторинг дрифта и автоматический rollback для LLM-сервисов: от метрик до канареечных релизов (продолжение) - Sidecar-экспортер на FastAPI + Prometheus Client: Поднимается в том же pod, что и LLM. Ловит ответы через httpx или gRPC interceptor. Вычисляет TTFT и tps, сохраняет в gauge. Пример эндпоинта: @app.get("/metrics") def metrics(): generate_latest(registry).encode(). Регистрируйте Gauge('llm_semantic_drift_score', 'Cosine distance to golden set') и обновляйте при каждом N-м запросе для экономии CPU. Запускайте в initContainer или как dedicated container с shareProcessNamespace: false. - Prometheus Recording Rules для аномалий: Не алертите на сырые метрики. Используйте агрегацию: record: llm:p95_latency:5m = histogram_quantile(0.95, rate(llm_request_duration_seconds_bucket[5m])). Для дрифта: record: semantic_drift:avg:15m = avg_over_time(llm_semantic_drift_score[15m]). Это снижает нагрузку на query engine и даёт стабильные пороги. Добавляйте interval: 30s в rule config для балансировки свежести и CPU overhead. - Alertmanager Routing + Webhook к Argo: В alertmanager.yml настройте route с matchers: [name="LLMDriftDetected"]. Отправляйте POST в https://argo-rollouts-controller/api/v1/rollouts/{name}/abort или используйте custom metric provider. Пример payload: {"status": "failed", "message": "Semantic drift > 0.15 over 15m"}. Argo автоматически переключит трафик на stable revision через traffic routing provider (Envoy/Istio/Nginx). - Канареечная стратегия в Kubernetes: В манифесте Rollouts задайте canary.analysis с stepWeight: 10, interval: 60s, maxWeight: 30. Добавьте метрику через Prometheus query: metricName: semantic_drift:avg:15m, targetValue: "0.10", failureCondition: "#DS0 > targetValue". Это гарантирует, что новая версия получит трафик только если дрифт в норме. Используйте successCondition для плавного масштабирования до 100%. - Референсный датасет и инкрементальное обновление: Храните golden prompts/responses в векторной БД или S3....

