Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. Паттерны инструментирования: production-ready
instrumentation_patterns

Паттерны инструментирования: production-ready

Best practices инструментирования приложений, обработка edge cases, тестирование метрик

Паттерны инструментирования: production-ready

«Хорошее инструментирование экономит часы отладки»

#Cardinality Explosion

Проблема:

# ПЛОХО: user_id создаёт миллионы рядов Counter('requests', ['user_id', 'request_id'])

Решение:

# ХОРОШО: низкая кардинальность Counter('requests', ['method', 'endpoint', 'status'])

#RED Метод

Для сервисов измеряйте:

  • Rate — запросов в секунду
  • Errors — ошибок в секунду
  • Duration — время ответа
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()

#Best Practices

  1. HELP текст — описывайте что измеряет метрика
  2. Имена — snake_case, counter заканчивается на _total
  3. Лейблы — низкая кардинальность (< 1000 значений)
  4. Единицы — секунды, байты, проценты

Далее: Troubleshooting: расследование инцидентов