Best practices инструментирования приложений, обработка edge cases, тестирование метрик
«Хорошее инструментирование экономит часы отладки»
Проблема:
# ПЛОХО: user_id создаёт миллионы рядов
Counter('requests', ['user_id', 'request_id'])Решение:
# ХОРОШО: низкая кардинальность
Counter('requests', ['method', 'endpoint', 'status'])Для сервисов измеряйте:
requests = Counter('requests_total', ['method', 'status'])
latency = Histogram('request_duration_seconds', buckets=(.01, .05, .1, .5, 1.0))def test_metrics():
response = client.get('/metrics')
assert response.status_code == 200
assert 'requests_total' in response.data.decode()_totalВопросы ещё не добавлены
Вопросы для этой подтемы ещё не добавлены.