3 ключевые метрики, которые спасут микросервисный проект
Современные системы — это сложные экосистемы, где каждая ошибка может стоить бизнесу денег и репутации. Рассказываем, какие метрики нельзя игнорировать, чтобы не пропустить критичные сбои.
Инфраструктурные метрики
Базовые показатели вроде CPU и RAM уже не спасают. Для микросервисов важнее:
Статус подов в Kubernetes:
Количество рестартов.
Фейлы readiness/liveness проб.
Используйте метрику
kube_pod_status_readyв Prometheus, чтобы находить «битые» поды.
Трассировка запросов: время выполнения каждого этапа через Jaeger.
Пример: Если поды перезапускаются чаще 5 раз в час — это сигнал к немедленной проверке.
Бизнес-метрики
Инфраструктура может быть идеальной, но если падает конверсия — бизнес теряет клиентов. Отслеживайте:
Конверсию платежей (например, от корзины к оплате).
Время обработки заказов.
Код для .NET-сервиса:
using App.Metrics; public class PaymentService { private readonly IMetrics _metrics; public PaymentService(IMetrics metrics) => _metrics = metrics; public void ProcessPayment() { try { // Логика платежа... _metrics.Measure.Counter.Increment(MetricsRegistry.PaymentSuccessCounter); } catch { _metrics.Measure.Counter.Increment(MetricsRegistry.PaymentFailedCounter); } } }
Эти метрики интегрируются в Grafana, чтобы вы видели, как каждая транзакция влияет на бизнес.
Пользовательский опыт
Даже 1 секунда задержки может увеличить отток пользователей на 7%. Контролируйте:
Время отклика API (p95, p99).
Частоту ошибок 5xx/4xx.
Структурированные логи с контекстом:
{ "timestamp": "2023-10-05T12:34:56Z", "level": "ERROR", "userId": "a1b2c3", "operation": "process_payment", "message": "Failed to charge card: insufficient funds" }
Теги вроде userId помогают быстро найти все связанные с ошибкой события.
