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

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

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

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

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

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

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

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

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

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

Используйте 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: Используйте 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 . Количество оценок правил базы данных в реальном времени, выполненных в ответ на запросы записи или чтения. Вы можете разбить эту метрику по результату запроса (ALLOW, DENY или ERROR).

Настройте свою диаграмму Cloud Monitoring для оценок правил по мере необходимости, например, фильтруя по определенным результатам оценки, ALLOW, DENY или ERROR. Настройка и настройка диаграмм рассматривается в Monitor Database Usage .

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