Как фильтровать журналы и создавать показатели на основе журналов

После того как данные 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"

Что дальше?