Фильтруйте журналы и создавайте метрики на основе журналов.

После экспорта данных Crashlytics и (при необходимости) данных о сессиях Firebase в Cloud Logging вы можете фильтровать журналы и создавать метрики на основе журналов . И то, и другое полезно для просмотра, использования и анализа конкретных данных.

Если вы еще этого не сделали, обязательно ознакомьтесь со статьей «Что можно делать с вашими данными?» , где представлен исчерпывающий список и примеры работы с данными, хранящимися в Cloud Logging .

Фильтруйте журналы с помощью запросов.

Фильтрация журналов полезна для просмотра конкретных данных, а также для снижения затрат на хранение данных и дальнейший анализ. Фильтрация журналов осуществляется с помощью LQL (языка запросов к логам) .

Чтобы узнать, как фильтровать журналы с помощью запросов, посетите разделы «Примеры запросов с использованием Logs Explorer и «Создание запросов к журналам» . В таблице ниже описаны поля, доступные для этих запросов.

Примеры фильтров

Вот несколько примеров начальных фильтров для запроса в Crashlytics :

  • Найти все критические сбои для конкретной версии приложения:

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fevents"
    jsonPayload.issue.errorType="FATAL"
    jsonPayload.version.displayVersion="3.2.0"
  • Выявление сбоев, возникающих на конкретной модели устройства (например, Pixel 6a):

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fevents"
    jsonPayload.device.model="Pixel 6a"
  • Найдите конкретную OutOfMemoryError среди всех критических событий:

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fevents"
    jsonPayload.issue.errorType="FATAL"
    jsonPayload.issue.subtitle="java.lang.OutOfMemoryError"
  • Найдите события, относящиеся к конкретному идентификатору проблемы Crashlytics :

    logName="projects/PROJECT_ID/logs/firebasecrashlytics.googleapis.com%2Fevents"
    jsonPayload.issue.id="ISSUE_ID"

Схема логов

Каждая запись в журнале имеет предопределенную структуру и поля, доступные для запросов (см. LogEntry ).

Узнайте о схеме логирования для экспортируемых данных , включая данные Crashlytics , данные сессий Firebase и журналы устройств .

Создавайте метрики на основе логов.

Вы можете просматривать и создавать метрики на основе логов , а затем использовать эти метрики в Cloud Monitoring для создания диаграмм, пользовательских панелей мониторинга и пользовательских оповещений.

  • Используйте предопределенные системные метрики , которые записываются автоматически, например, количество событий логирования, произошедших за определенный период времени.

  • Создавайте пользовательские метрики для своего проекта. Вы можете подсчитывать количество записей в журнале, соответствующих заданному запросу, или отслеживать определенные значения в соответствующих записях журнала. Вы можете фильтровать данные с помощью регулярных выражений. Обязательно ознакомьтесь с ценами на пользовательские метрики .

  • Используйте Cloud Monitoring для записи количества записей в журналах, содержащих определенные сообщения, или для извлечения информации о задержке, указанной в записях журналов. Затем вы можете использовать эти метрики в диаграммах и пользовательских оповещениях.

Пример метрик на основе логов

Вот два примера пользовательских метрик на основе логов, которые вы можете создать из экспортированных данных сессий Crashlytics и Firebase:

  • Используя данные Crashlytics :
    Создайте метрику с именем firebase/crashlytics_events , меткой errorType и определите её следующим образом:

    logName="projects/ PROJECT_ID /logs/firebasecrashlytics.googleapis.com%2Fevents"

  • Использование данных сессий Firebase:
    Создайте метрику с именем firebase/session_events , меткой eventType и определите её следующим образом:

    logName="projects/ PROJECT_ID /logs/firebasecrashlytics.googleapis.com%2Fsession_events"

Что дальше?