Site icon AppTractor

Создание комплексной системы ведения JSON логов для клиентских приложений Pinterest

В начале 2020 года во время критического инцидента с нехваткой памяти на iOS (об этом у нас есть статья в блоге) мы поняли, что у нас недостаточно информации о том, как работают приложения, или хорошей системы для поиска и устранения неполадок.

Состояние логов

В то время в клиентских приложениях было несколько способов логирования повседневной работы:

Проблемы

Цель

Мы решили создать сквозной конвейер со следующими характеристиками:

С учетом этого были приняты следующие ключевые проектные решения:

Архитектура

На высоком уровне

Схема

Интеграция на стороне клиента со службой определяется  метаданными, а разработчикам просто нужно указать имя лога и фактическую полезную нагрузку. Больше ничего не требуется.

Пример полезной нагрузки:

Визуализация и запросы

Визуализация логов в Opensearch относительно проста, можно просто следовать инструкциям, предоставленным для этого конвейера. Кроме того, разработчики могут использовать SQL-запросы и любые другие инструменты запросов/визуализации, поддерживаемые этим конвейером, для выполнения запросов.

Оповещения в режиме реального времени

Метрики на основе логов — это экономичный способ суммировать данные всего входного потока. С помощью log-based метрик разработчики могут генерировать количественные метрики, соответствующие Lucene-запросам. Для более продвинутых вариантов использования можно создавать метрики из запроса агрегации терминов OpenSearch, чтобы анализировать данные логов в различных измерениях.

Метрики на основе логов можно использовать для создания дашбордов и оповещений в реальном времени:

Примеры использования

Поскольку этот пайплайн можно использовать без каких-либо реальных усилий, разработчики активно стали внедряли эту систему ведения журналов для множества задач.

Видимость клиентов

Продукт/работа фич

Логи разработчиков

Оповещение в режиме реального времени

Будущее

Источник

Exit mobile version