Supervisar el rendimiento de la base de datos

Hay algunas formas diferentes de monitorear el rendimiento de Firebase Realtime Database y detectar posibles problemas en su aplicación. Observar el ancho de banda entrante y saliente y la carga de su aplicación también puede darle una idea de qué esperar en su factura. Además, si algo parece extraño, obtener una imagen clara de las operaciones de su base de datos puede ser una herramienta útil para solucionar problemas.

Esta página analiza el monitoreo del rendimiento de la base de datos en tiempo real. Para monitorear el uso, consulte Monitorear el uso de la base de datos .

Utilice herramientas de monitoreo de bases de datos en tiempo real

Puede recopilar datos sobre el rendimiento de su base de datos en tiempo real a través de algunas herramientas diferentes, según el nivel de granularidad que necesite.

Utilice la herramienta de generación de perfiles de bases de datos en tiempo real

La herramienta de generación de perfiles de bases de datos en tiempo real proporciona una descripción general en tiempo real de las operaciones de lectura/escritura en su base de datos. El informe incluye información sobre la velocidad y el tamaño de la carga útil de cada operación, además de consultas no indexadas. Sin embargo, no incluye información histórica ni estadísticas sobre gastos generales de conexión y no debe usarse para estimar los costos de facturación .

Para obtener más información sobre el uso de la herramienta de generación de perfiles, consulte Perfilar su base de datos .

Usa la consola de Firebase

La pestaña Uso en Firebase console ofrece información sobre conexiones simultáneas a su base de datos, la cantidad de datos que está almacenando, el ancho de banda saliente (incluida la sobrecarga de protocolo y cifrado) y la carga de su base de datos en intervalos de 1 minuto. Si bien la pestaña Uso le brinda una descripción general más precisa del rendimiento general de su base de datos, es posible que no pueda profundizar lo suficiente para solucionar posibles problemas de rendimiento.

Utilice el monitoreo en la nube

Con Cloud Monitoring de Google Cloud, puede utilizar Metrics Explorer para ver métricas de rendimiento individuales o crear diferentes paneles con gráficos que muestren varias combinaciones de métricas de rendimiento a lo largo del tiempo. La integración de Realtime Database con Cloud Monitoring ofrece el nivel más profundo de granularidad.

Los pasos para configurar Cloud Monitoring se describen en Monitorear el uso de la base de datos .

Consulte las siguientes secciones para obtener sugerencias sobre el uso de métricas específicas de Cloud Monitoring para detectar problemas de rendimiento.

Supervisar el rendimiento en Cloud Monitoring

Si tiene problemas con el rendimiento, incluido el tiempo de actividad o la latencia, es posible que desee utilizar Cloud Monitoring para monitorear las siguientes métricas. Tenga en cuenta que todos los nombres de tipos de métricas tienen el prefijo firebasedatabase.googleapis.com/ .

Nombre de la métrica Descripción
Carga de base de datos

io/database_load . Utilice esta métrica para monitorear qué parte del ancho de banda disponible de su base de datos está en uso para procesar solicitudes a lo largo del tiempo. Es posible que vea problemas de rendimiento a medida que la carga de su base de datos se acerque al ancho de banda total disponible. También puede ver qué tipos de operaciones utilizan la mayor carga y solucionar los problemas en consecuencia. La carga informada puede superar el 100 % en operaciones que duran más de un minuto. Esto sucede cuando el ancho de banda total utilizado durante varios minutos se condensa en el intervalo de informe de un minuto después de que se haya completado la operación.

Red deshabilitada por excedentes

network/disabled_for_overages . Esta métrica refleja cualquier interrupción que podría haber ocurrido si su Realtime Database excedió cualquier límite de ancho de banda o de red.

Almacenamiento deshabilitado por excedentes

storage/disabled_for_overages . Esta métrica refleja cualquier interrupción que pueda haber ocurrido si su Realtime Database excedió los límites de almacenamiento.

Combine métricas en gráficos en su panel para obtener información general y conocimientos útiles. Por ejemplo, pruebe las siguientes combinaciones:

  • Operaciones: use la métrica io/database_load para ver qué parte de la carga total de su base de datos es utilizada por cada tipo de operación. Asegúrese de agrupar io/database_load por tipo para solucionar problemas de diferentes tipos de operaciones.
  • Almacenamiento: use storage/limit y storage/total_bytes para monitorear su utilización de almacenamiento en relación con los límites de almacenamiento de Realtime Database. También puede agregar storage/disabled_for_overages para ver si su aplicación experimentó algún tiempo de inactividad como resultado de exceder los límites de almacenamiento.
  • Gastos generales de SSL: use network/https_requests_count para monitorear cuántas solicitudes de conexión SSL recibió su base de datos y divida las solicitudes que reutilizaron un ticket de sesión SSL existente con el filtro reused_ssl_session . Puede medir esto con network/sent_bytes_count y network/sent_payload_and_protocol_bytes_count para monitorear si su aplicación está usando tickets de sesión SSL de manera eficiente.

También puede configurar alertas a través de Cloud Monitoring y recibir notificaciones basadas en métricas de Realtime Database. Por ejemplo, puede optar por recibir una notificación si su io/database_load se acerca a un cierto umbral.

Consulte la lista completa de métricas de Realtime Database disponibles a través de Cloud Monitoring .

Tipos de carga de base de datos

La métrica io/database_load también proporciona una etiqueta del tipo de operación que provocó la carga. Los posibles tipos de operaciones medidas son los siguientes:

  • admin : operaciones de administración como establecer reglas y leer metadatos del proyecto.
  • auth : Verificación de la autenticación de cuentas de servicio o autenticación de Firebase para un solo cliente.
  • client_management : Maneja la adición y eliminación de conexiones simultáneas, esto incluye la ejecución de operaciones de desconexión al eliminarlas.
  • get_shallow : Recuperar los datos de un REST GET con shallow=true .
  • get : Manejo de operaciones REST GET.
  • listen : Recuperar los datos iniciales para operaciones on y once de clientes conectados.
  • on_disconnect : Registro en operaciones de desconexión de clientes.
  • put : Manejo de operaciones set de clientes u operaciones REST PUT.
  • transaction : realizar transacciones a partir de solicitudes REST condicionales o una operación transaction de un cliente.
  • update : Manejo de operaciones update o solicitudes REST PATCH.

Supervisar las reglas de seguridad en la supervisión de la nube

También puede analizar la evaluación de las Reglas de Seguridad. Tenga en cuenta que todos los nombres de tipos de métricas tienen el prefijo firebasedatabase.googleapis.com/ .

Nombre de la métrica Descripción
Evaluaciones de reglas rules/evaluation_count . El número de evaluaciones de reglas de bases de datos en tiempo real realizadas en respuesta a solicitudes de escritura o lectura. Puede desglosar esta métrica según el resultado de la solicitud (PERMITIR, DENEGAR o ERROR).

Adapte su gráfico de Cloud Monitoring para las evaluaciones de reglas según sea necesario, por ejemplo, filtrando según resultados de evaluación particulares, PERMITIR, DENEGAR o ERROR. La configuración y personalización de gráficos se trata en Monitorear el uso de la base de datos .

Consulte la lista completa de métricas de Realtime Database disponibles a través de Cloud Monitoring .