Как отслеживать показатели баз данных

В этой статье рассказывается, как использовать показатели Cloud Monitoring для Cloud Firestore, чтобы отслеживать работу базы данных.

Показатели Cloud Monitoring для Cloud Firestore

В разделах ниже приведены общие сведения о показателях, доступных для Cloud Firestore.

Ресурсы для мониторинга

Ресурс для мониторинга в Cloud Monitoring представляет собой логический или физический объект, например виртуальную машину, базу данных или приложение. Ресурсы для мониторинга содержат уникальный набор показателей, которые можно изучать, включать в отчеты на панели управления или использовать для создания оповещений. У каждого ресурса также есть набор ярлыков, которые представляют собой пары "ключ-значение" и содержат дополнительную информацию о ресурсе. Ярлыки ресурсов доступны для всех показателей, связанных с ресурсом.

При использовании Cloud Monitoring API эффективность Cloud Firestore отслеживается с помощью следующего ресурса:

Материалы Описание
firestore.googleapis.com/Database Тип ресурса для мониторинга, который предоставляет разбивку по project, location и database_id.

Показатели

Полный список показателей Cloud Firestore приведен в статье Показатели Cloud Firestore. Ниже описаны некоторые из доступных показателей.

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

Показатели serviceruntime дают общее представление о трафике проекта. Эти показатели доступны для большинства API Google Cloud. Тип ресурса для мониторинга consumed_api содержит следующие общие показатели. Выборка этих показателей выполняется каждые 30 минут, что приводит к сглаживанию данных.

Важный ярлык ресурса для показателей serviceruntime – method. Эта метка представляет базовый метод RPC, который был вызван. Название метода SDK, который вы вызываете, может не совпадать с названием базового метода RPC. Это связано с тем, что SDK предоставляет абстракцию API высокого уровня. Однако, чтобы понять, как ваше приложение взаимодействует с Cloud Firestore, важно понимать показатели, основанные на названии метода RPC.

Если вам нужно узнать, какой метод RPC лежит в основе того или иного метода SDK, ознакомьтесь с документацией по API.

api/request_latencies

Показатель api/request_latencies позволяет получить распределение задержек по всем выполненным запросам.

Cloud Firestore регистрирует показатели из компонента Cloud Firestore Service. Показатели задержки включают время, в течение которого Cloud Firestore получает запрос, и время, в течение которого Cloud Firestore завершает отправку ответа, включая взаимодействие с уровнем хранения. Поэтому задержка при передаче данных туда и обратно между клиентом и сервисом Cloud Firestore не учитывается в этих показателях.

Показатели операций с документами

Cloud Firestore предоставляет количество операций чтения, записи и удаления. Показатель записи позволяет получить данные по операциям CREATE и UPDATE. Эти показатели соответствуют операциям CRUD.

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

  • document/delete_ops_count: количество успешно удаленных документов.
  • document/read_ops_count: количество успешных считываний документов из запросов или поисков.
  • document/write_ops_count: количество успешных записей документов.

Платежные показатели

Эти показатели помогут вам понять, как рассчитывается стоимость. Эти показатели не включают оплату за операции администратора (индексирование, импорт, экспорт и массовое удаление).

  • api/billable_read_units – количество оплачиваемых единиц чтения. Данные об использовании можно разбить по названию сервиса и методу API.
  • api/billable_realtime_read_units – количество оплачиваемых единиц обновления в реальном времени. Это относится только к Cloud Firestore в нативном режиме.
  • api/billable_write_units – количество оплачиваемых единиц записи. Данные об использовании можно разбить по названию сервиса и методу API.
  • document/billable_managed_delete_write_units – количество оплачиваемых единиц записи из управляемых сервисов удаления, таких как TTL.

Показатели индексирования

Чтобы понять, как работает разветвление индекса, можно сравнить частоту записи индекса с показателем document/write_ops_count.

  • index/write_count – количество записей индекса.

Показатели TTL

Показатели TTL для Cloud Firestore используются для отслеживания действия применяемых правил TTL.

  • document/ttl_deletion_count: общее количество документов, удаленных сервисами TTL.
  • document/ttl_expiration_to_deletion_delays – время, прошедшее с момента истечения срока действия документа с TTL до его фактического удаления.

Как просматривать стандартные сводки и создавать собственные

Cloud Firestore поддерживает стандартные сводки, в которых используются показатели Cloud Monitoring. Вы также можете создавать собственные сводки.

Как посмотреть показатели использования базы данных

Откройте панели мониторинга использования в консоли Google Cloud, чтобы посмотреть количество операций чтения, записи и удаления документов за определенный период времени.

Контроль доступа

Для работы с панелями использования требуется разрешение Identity and Access Management (IAM) monitoring.timeSeries.list. Это разрешение есть у владельца, редактора и читателя проекта. Вы также можете предоставить это разрешение с помощью роли Cloud Monitoring или специальной роли.

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

Чтобы посмотреть показатели использования базы данных Cloud Firestore, выполните следующие действия:

  1. В консоли Google Cloud перейдите на страницу Databases (Базы данных).

    Перейти к базам данных

  2. Выберите нужную базу данных из списка.

  3. В меню навигации нажмите Использование.

Панель использования и отчеты об оплате

Панели управления использованием Cloud Firestore в консоли предоставляют приблизительные данные. Они помогут вам выявить пики использования. Однако на панели управления не отражаются точные данные об оплачиваемых операциях. Скорее всего, оплачиваемое использование будет выше. Чтобы отслеживать платежи, ознакомьтесь с показателями оплаты.

Во всех случаях расхождений отчет об оплате имеет приоритет над панелью управления использованием.

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

Просмотр показателей эффективности базы данных

На странице Мониторинг в разделе Cloud Firestore консоли Google Cloud есть готовые панели мониторинга, например Задержки запросов (P50 и P99), Коды ответов и Статистика запросов (P50). Вы также можете создать одну собственную сводку. Чтобы перейти на страницу Мониторинг для базы данных, выполните следующие действия:

  1. В консоли Google Cloud откройте страницу Cloud Firestore Databases (Базы данных).

    Перейти к базам данных

  2. Выберите базу данных из списка.

  3. В меню навигации нажмите Мониторинг, чтобы открыть панель управления.

Создание собственных сводок Cloud Monitoring

В Cloud Monitoring вы можете создавать собственные сводки, чтобы упорядоченно отображать нужную вам информацию. Например, вы можете создать сводку, в которой будут представлены показатели эффективности и правила оповещений для проекта в рабочей среде.

Дополнительную информацию о настройке сводки можно найти в статьях Управление специальной сводкой и Добавление виджетов в сводки.

Как создать правило оповещений

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

Подробнее о том, как создавать правила оповещений о пороговых значениях показателей…

Рассмотрим пример, в котором мы создаем политику оповещений о задержке. Правила оповещений проверяют задержку p99 в течение 5-минутного скользящего окна. Если задержка p99 остается выше 250 мс в течение 5 минут, срабатывает оповещение.

Консоль

  1. В консоли Google Cloud перейдите на страницу Monitoring (Мониторинг) и выберите   Alerting (Оповещения).

    Открыть Monitoring

  2. Нажмите Create policy (Создать правило).

  3. Выберите показатель Request Latencies (Задержки запросов) из ресурса Consumed API (Потребление API).

  4. Добавьте фильтр сервиса для firestore.googleapis.com для баз данных Firestore в нативном режиме.

  5. Нажмите Далее, чтобы настроить триггер.

  6. В разделе Типы условий выберите Пороговое значение.

    Пороговое условие установлено на уровне 250 мс. Оповещение срабатывает, когда значение задержки p99 остается неизменным в течение всего периода скользящего окна (5 минут).

  7. В поле Пороговое значение укажите 250.

  8. Нажмите Далее, чтобы настроить уведомления.

  9. Укажите название правила оповещений и нажмите Далее.

  10. Проверьте конфигурации оповещений и нажмите Создать правило.

MQL : лид, одобренный отделом маркетинга

Вы можете реализовать то же правило оповещения о задержке, используя запрос на языке запросов мониторинга (MQL). Дополнительные примеры использования MQL можно найти в статье Примеры запросов MQL.

fetch consumed_api
| metric 'serviceruntime.googleapis.com/api/request_latencies'
| filter (resource.service == 'firestore.googleapis.com')
| group_by 5m,
    [value_request_latencies_percentile:
      percentile(value.request_latencies, 99)]
| every 5m
| condition val() > 0.25 's'