Ответ
Для нового проекта я бы выбрал комбинацию Prometheus + Grafana + Loki (или ELK). Этот стек покрывает все основные потребности: метрики, логи, алертинг и визуализацию.
1. Prometheus для метрик:
- Почему: Pull-модель, мощный язык запросов PromQL, отлично интегрируется с Kubernetes (обнаружение сервисов).
- Как использую: Разворачиваю Prometheus в кластере K8s с помощью Helm-чарта. Настраиваю сбор метрик с нод (node-exporter), приложений (экспортеры для PostgreSQL, Redis) и самих K8s-ресурсов (kube-state-metrics).
- Пример цели (target) в конфиге Prometheus для мониторинга приложения:
scrape_configs: - job_name: 'my-app' metrics_path: '/metrics' static_configs: - targets: ['my-app:8080']
2. Grafana для визуализации и алертинга:
- Почему: Гибкие дашборды, поддержка множества источников данных (Prometheus, Loki, Elasticsearch).
- Как использую: Создаю дашборды для разных команд: общий обзор инфраструктуры для DevOps, бизнес-метрики (RPS, latency, error rate) для разработки и продукт-менеджеров. Настраиваю алерты прямо в Grafana или через Alertmanager Prometheus.
3. Loki для логов:
- Почему: Легковесный, эффективный по хранению, использует те же лейблы, что и Prometheus, что позволяет легко переключаться между метриками и логами в Grafana.
- Альтернатива — ELK (Elasticsearch, Logstash/Fluentd, Kibana): Выбрал бы его, если нужен полнотекстовый поиск по сложноструктурированным логам или анализ больших объемов данных.
Итог: Этот стек — де-факто стандарт в cloud-native мире. Он open-source, масштабируем и позволяет построить полноценную observability-платформу, где по одной метрике можно быстро «докопаться» до соответствующих логов и трассировок.