Мониторинг производительности базы данных

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

На этой странице обсуждается мониторинг производительности Realtime Database . Для мониторинга использования см. раздел «Мониторинг использования базы данных» .

Используйте инструменты мониторинга Realtime Database

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

Используйте инструмент профилирования Realtime Database

Инструмент профилирования Realtime Database предоставляет обзор операций чтения/записи в вашей базе данных в режиме реального времени. Отчет включает информацию о скорости и размере полезной нагрузки каждой операции, а также о запросах без индексации. Однако он не содержит исторической информации или какой-либо статистики о накладных расходах на соединение и не должен использоваться для оценки стоимости услуг .

Чтобы узнать больше об использовании инструмента профилирования, см. раздел «Профилирование базы данных» .

Используйте консоль Firebase

Вкладка «Использование» в консоли Firebase предоставляет информацию об одновременных подключениях к вашей базе данных, объеме хранимых данных, исходящем трафике (включая накладные расходы протокола и шифрования) и нагрузке на базу данных за 1-минутные интервалы. Хотя вкладка «Использование» дает более точное представление об общей производительности вашей базы данных, она может оказаться недостаточно подробной для устранения потенциальных проблем с производительностью.

Используйте Cloud Monitoring

С помощью Cloud Monitoring от Google Cloud вы можете использовать Metrics Explorer для просмотра отдельных показателей производительности или создавать различные панели мониторинга с диаграммами, отображающими различные комбинации показателей производительности во времени. Интеграция с Cloud Monitoring через Realtime Database обеспечивает максимально высокую детализацию.

Пошаговая инструкция по настройке Cloud Monitoring описана в разделе «Мониторинг использования базы данных» .

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

Мониторинг производительности в Cloud Monitoring

Если у вас возникли проблемы с производительностью, включая время безотказной работы или задержку, вы можете использовать Cloud Monitoring для мониторинга следующих метрик. Обратите внимание, что все имена типов метрик имеют префикс firebasedatabase.googleapis.com/ .

Название метрики Описание
Загрузка базы данных

io/database_load . Используйте этот показатель для отслеживания того, какая часть доступной пропускной способности вашей базы данных используется для обработки запросов с течением времени. Вы можете заметить проблемы с производительностью, когда нагрузка на базу данных приблизится к общей доступной пропускной способности. Вы также можете увидеть, какие типы операций используют наибольшую нагрузку, и при необходимости устранить неполадки. Сообщаемая нагрузка может превышать 100% для операций, занимающих более минуты. Это происходит, когда общая использованная пропускная способность за несколько минут сжимается в минутный интервал отчетности после завершения операции.

Сеть отключена из-за превышения лимита трафика.

network/disabled_for_overages . Этот показатель отражает любые сбои, которые могли произойти, если ваша Realtime Database превысила какие-либо ограничения пропускной способности или сети.

Превышение лимита хранения данных отключено.

storage/disabled_for_overages . Этот показатель отражает любые сбои, которые могли произойти, если ваша Realtime Database превысила какие-либо лимиты хранения.

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

  • Операции: Используйте метрику io/database_load , чтобы увидеть, какая часть общей нагрузки на базу данных используется каждым типом операций. Обязательно сгруппируйте io/database_load по типу, чтобы устранять неполадки, связанные с различными типами операций.
  • Хранилище: Используйте параметры storage/limit и storage/total_bytes для мониторинга использования хранилища в соответствии с лимитами хранилища Realtime Database . Вы также можете добавить storage/disabled_for_overages чтобы проверить, не было ли простоев в работе вашего приложения из-за превышения лимитов хранилища.
  • Накладные расходы SSL: используйте network/https_requests_count для отслеживания количества запросов на SSL-соединение, полученных вашей базой данных, и разделите запросы, которые повторно использовали существующий билет SSL-сессии, с помощью фильтра reused_ssl_session . Вы можете сравнить это с network/sent_bytes_count и network/sent_payload_and_protocol_bytes_count чтобы отслеживать, насколько эффективно ваше приложение использует билеты SSL-сессии.

Вы также можете настроить оповещения через Cloud Monitoring и получать уведомления на основе метрик Realtime Database . Например, вы можете выбрать получение уведомления, если ваш io/database_load приближается к определенному пороговому значению.

Полный список метрик Realtime Database доступных через Cloud Monitoring , можно посмотреть здесь.

Типы загрузки в базу данных

Метрика io/database_load также предоставляет информацию о том, какой тип операции вызвал загрузку. Возможные типы измеряемых операций следующие:

  • admin : Выполнение административных операций, таких как установка правил и чтение метаданных проекта.
  • auth : Проверка аутентификации из учетных записей служб или Firebase Authentication для отдельного клиента.
  • client_management : Обработка добавления и удаления одновременных подключений, включая выполнение операций отключения при удалении.
  • get_shallow : Получение данных из REST GET-запроса с shallow=true .
  • get : Обработка REST-запросов (GET).
  • listen : Получение исходных данных для операций on и once от подключенных клиентов.
  • on_disconnect : Регистрация при операциях отключения от клиентов.
  • put : Обработка операций set от клиентов или операций REST PUT.
  • transaction : Выполнение транзакций на основе условных REST-запросов или операций transaction от клиента.
  • update : Обработка операций update или запросов REST PATCH.

Мониторинг правил безопасности в Cloud Monitoring

Вы также можете проанализировать оценку правил безопасности. Обратите внимание, что все имена типов метрик имеют префикс firebasedatabase.googleapis.com/ .

Название метрики Описание
Оценка правил rules/evaluation_count . Количество вычислений правил базы данных в реальном времени, выполненных в ответ на запросы на запись или чтение. Вы можете разбить этот показатель по результату запроса (ALLOW, DENY или ERROR).

Настройте диаграмму Cloud Monitoring для оценки правил по мере необходимости, например, отфильтровав результаты по определенным параметрам: РАЗРЕШИТЬ, ЗАПРЕТИТЬ или ОШИБКА. Настройка и персонализация диаграмм описаны в разделе «Мониторинг использования базы данных» .

Полный список метрик Realtime Database доступных через Cloud Monitoring , можно посмотреть здесь.