Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Дружим Django с Azure Insights. Logging, monitoring, tracing

Дружим Django с Azure Insights. Logging, monitoring, tracing

Александр Катаев (Ingram Micro Cloud) @ Moscow Python Meetup 68

"Мониторинг, tracing, логирование — важные вещи в любом продукте. В нашем продукте для этих вещей используем Azure Insights. Расскажу о некоторых возможностях, которые он предоставляет, как мы его дружили с Django, с какими сложностями столкнулись".

Видео: http://www.moscowpython.ru/meetup/68/django-and-azure-insights/

Moscow Python Meetup

September 26, 2019
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Plan • Логирование • Метрики: •Запросы к сервису •Зависимости: •Обращения

    к БД •Подзапросы к другим сервисам • Распределенная трассировка • Единый интерфейс для анализа данных службой поддержки и разработчиками 2
  2. Trace Связывает распределенные во времени интервалы Включает в себя один

    или несколько интервалов (span), которые связаны единым trace_id. Trace_id генерируется в начале запроса и сохраняется на всех этапах до его завершения 8
  3. Span Обозначение одной фиксированной по времени транзакции. • Http-запрос •

    Sql-запрос Может содержать в себе различные данные в формате ключ-значение, текстовые или структурированные логи или идентификаторы других интервалов. • Могут формировать иерархию зависимостей • Обычно создается для каждой транзакции 9
  4. Span Context Позволяет связывать в один trace распределенные транзакции. Trace_id

    и span_id передается в http- заголовках при запросе к стороннему сервису или в сериализованных данных при обращении к другому процессу Требования к http-заголовкам описываются стандартом W3C Trace Context. Введение стандарта позволяет связывать между собой сервисы и системы анализа, которые находятся в различном доступе https://www.w3.org/TR/trace-context/ 10
  5. Azure Insights Часть масштабного приложения Azure Monitor. Интегрирует в себе

    инструменты для : • Мониторинга • Оповещения • Визуализации и анализа данных о работе систем • Трассировки • Логирования • Анализа • Аналитики поведения пользователей 14
  6. Good • Сбор данных с frontend и backend • Множество

    мощных инструментов в одном • API для интеграции 15
  7. Bad • Преимущественно направлена на интеграцию c приложениями, которые используют

    ресурсы Azure для хостинга и хранения данных и средами разработки • Все не бесплатно • Бесплатное хранение логов <=90 дней • Лаг на обработку данных в системе (2 - 5 мин) • Ограничение на размер входящих через API пакетов • Оплата за траффик (5 gb free / 2.99$/gb) • Требует знаний экосистемы 16
  8. Log query • Поддерживает широкий набор функций • Поддерживает парсинг

    текстовых логов и json https://docs.microsoft.com/ru-ru/azure/kusto/query/ 33
  9. The OpenCensus Набор инструментов, для сбора данных о работе одного

    или нескольких приложений. Разработали в Google, поддерживается сообществом. Хорошо • Не привязан к конкретной системе анализа данных • API позволяет расширять список собираемых данных • Поддерживает сбор метрик (в отличие от OpenTracing) • Низкая нагрузка на систему Не очень хорошо • Нужно интегрировать код в приложение • Скудная документация 35
  10. Thanks! URLS: • OpenCensus https://opencensus.io • OpenTelemetry https://opentelemetry.io/ • Azure

    Insights https://docs.microsoft.com/en-us/azure/ • OpenCensus Python https://github.com/census-instrumentation/opencensus-python/ 46 https://www.linkedin.com/in/arkataev Александр Катаев