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
помогают быстро найти все связанные с ошибкой события.