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

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

Что дальше?