Экспорт журналов аналитики использования

Note

Доступно в Grafana Enterprise и клиентам отдельных тарифных планов Grafana Cloud. Информацию о ценах см. в разделе цены или обратитесь в отдел продаж.

Экспортируя журналы использования в Loki, вы можете напрямую запрашивать их и создавать дашборды с наиболее важной для вас информацией, например с ошибками дашбордов, самыми активными организациями или вашими топ-10 наиболее часто используемыми запросами. В Grafana Cloud эта настройка выполняется за вас вместе с провижиненными дашбордами. О них читайте в документации Grafana Cloud.

Журналы аналитики использования

Журналы аналитики использования — это объекты JSON, представляющие определённые действия пользователей, например:

  • Пользователь открывает дашборд.
  • В источник данных отправляется запрос.

Область охвата

Запись создаётся каждый раз, когда:

  • Пользователь открывает дашборд.
  • В источник данных отправляется запрос в режиме просмотра дашборда.
  • Запрос выполняется через Explore.

Формат

Журналы аналитики использования содержат следующие поля, где поля, помеченные *, присутствуют всегда, а остальные зависят от записанного события:

Имя поля Тип Описание
eventName* string Тип события: data-request или dashboard-view.
folderName* string Имя папки дашборда.
dashboardName* string Имя дашборда, в котором произошло событие.
dashboardId* number ID дашборда, в котором произошло событие.
datasourceName string Имя источника данных, к которому был выполнен запрос.
datasourceType string Тип источника данных, к которому был выполнен запрос. Например, prometheus, elasticsearch или loki.
datasourceId number ID источника данных, к которому был выполнен запрос.
panelId number ID панели запроса.
panelName string Имя панели запроса.
error string Ошибка, возвращённая запросом.
duration number Длительность запроса.
source string Источник запроса. Например, dashboard или explore.
orgId* number ID организации пользователя.
orgName* string Имя организации пользователя.
timestamp* string Дата и время выполнения запроса во всемирном координированном времени (UTC) в формате RFC3339.
tokenId* number ID токена аутентификации пользователя.
username* string Имя пользователя Grafana, выполнившего запрос.
userId* number ID пользователя Grafana, выполнившего запрос.
totalQueries* number Количество запросов, выполненных в рамках обращения к данным.
cachedQueries* number Количество полученных запросов, взятых из кэша.

Конфигурация

Caution

Grafana Cloud предоставляет провижиненные дашборды для аналитики использования. Дополнительные сведения см. в документации Grafana Cloud. Если вы экспортируете аналитику использования в отдельный экземпляр Loki, эти дашборды перестанут получать данные аналитики использования. Это текущее ограничение функции в Grafana Cloud.

Чтобы экспортировать журналы, включите функцию аналитики использования и настройте место экспорта в файле конфигурации:

ini
[usage_insights.export]
# Enable the usage insights export feature
enabled = true
# Storage type
storage = loki

Варианты типа хранилища — loki и logger (добавлен в Grafana Enterprise 8.2).

Если тип хранилища задан как loki, вам также потребуется настроить Grafana для экспорта на сервер приёма Loki. Для этого нужно установить Loki. Инструкции по установке Loki см. в разделе Установка Loki.

ini
[usage_insights.export.storage.loki]
# Set the communication protocol to use with Loki (can be grpc or http)
type = grpc
# Set the address for writing logs to Loki (format must be host:port)
url = localhost:9095
# Defaults to true. If true, it establishes a secure connection to Loki
tls = true
# Set the tenant ID for Loki communication, which is disabled by default.
# The tenant ID is required to interact with Loki running in multi-tenant mode.
tenant_id =
# How long to wait before sending a request to Loki with the batch of events. Uses duration format: e.g. 5s, 1m
# Whatever happens first between `batch_wait_duration` and `batch_size_bytes` will trigger the batch to be sent to Loki.
# If the wait duration is very long and the `batch_size_bytes` is very high, events may take a long time to be sent.
batch_wait_duration = 5s
# How many events (in bytes) to accumulate in a single batch before sending it to Loki.
# Whatever happens first between `batch_wait_duration` and `batch_size_bytes` will trigger the batch to be sent to Loki.
# If you wish to always wait for the `batch_wait_duration`, set this to a very high number.
batch_size_bytes = 102400 # 100KiB

Использование logger приведёт к выводу аналитики использования в журнал сервера Grafana. Параметров настройки для типа хранилища logger нет.

Визуализация аналитики использования Loki в Grafana

Если вы экспортируете журналы в Loki, вы можете построить дашборды Grafana, чтобы понять, как используется ваш экземпляр Grafana.

  1. Добавьте Loki как источник данных. См. учебник по основам Grafana.
  2. Импортируйте один из следующих дашбордов:
  3. Поэкспериментируйте с аналитикой использования, чтобы разобраться в ней:
    • В Explore можно использовать запрос {datasource="gdev-loki",kind="usage_insights"}, чтобы получить все журналы, связанные с вашим источником данных gdev-loki.
    • В дашборде можно построить панель-таблицу с запросом topk(10, sum by (error) (count_over_time({kind="usage_insights", datasource="gdev-prometheus"} | json | error != "" [$__interval]))), чтобы отобразить 10 самых частых ошибок, которые видят ваши пользователи при работе с источником данных gdev-prometheus.
    • В дашборде можно построить панель-график с запросами sum by(host) (count_over_time({kind="usage_insights"} | json | eventName="data-request" | error != "" [$__interval])) и sum by(host) (count_over_time({kind="usage_insights"} | json | eventName="data-request" | error = "" [$__interval])), чтобы показать динамику количества обращений к данным во времени. Использование by (host) даёт больше информации по каждому серверу Grafana, если вы настроили Grafana для высокой доступности.