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

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

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

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

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

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

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

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

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

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

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

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

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

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

Мониторинг производительности в 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 .