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

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

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

Используйте инструменты мониторинга базы данных в реальном времени

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

Используйте инструмент профилировщика базы данных в реальном времени

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

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

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

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

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

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

Шаги по настройке Cloud Monitoring описаны в разделе Monitor Database Usage .

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

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

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

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

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

Сеть отключена из-за перерасхода

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

Хранилище отключено из-за избытка

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

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

  • Операции: используйте метрику io/database_load , чтобы увидеть, какая часть общей нагрузки базы данных используется каждым типом операции. Не забудьте сгруппировать io/database_load по типу для устранения неполадок различных типов операций.
  • Хранилище: Используйте storage/limit и storage/total_bytes , чтобы контролировать использование хранилища по отношению к ограничениям хранилища базы данных реального времени. Вы также можете добавить 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.

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

См. полный список метрик базы данных в реальном времени, доступных через 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.

Мониторинг правил безопасности в облачном мониторинге

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

Название показателя Описание
Оценки правил rules/evaluation_count . Количество оценок правил базы данных реального времени, выполненных в ответ на запросы на запись или чтение. Вы можете разбить эту метрику по результату запроса (РАЗРЕШИТЬ, ЗАПРЕТИТЬ или ОШИБКА).

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

См. полный список метрик базы данных в реальном времени, доступных через Cloud Monitoring .