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

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

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

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

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

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

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

Дополнительную информацию об использовании инструмента профилирования см. в разделе Профилирование базы данных .

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

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

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

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

Действия по настройке 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 для одного клиента.
  • 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 . Количество оценок правил базы данных в реальном времени, выполненных в ответ на запросы на запись или чтение. Эту метрику можно разбить по результату запроса (РАЗРЕШИТЬ, ЗАПРЕТИТЬ или ОШИБКА).

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

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