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

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

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

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

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

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

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

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

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

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

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

С помощью Cloud Monitoring от Google Cloud вы можете использовать обозреватель метрик для просмотра отдельных показателей производительности или создавать различные информационные панели с диаграммами, которые отображают различные комбинации показателей производительности с течением времени. Интеграция 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 .