Supervisa el rendimiento de la base de datos

Existen varias formas diferentes de supervisar el rendimiento de Firebase Realtime Database y detectar posibles problemas en tu app. Observar la carga y el ancho de banda de entrada y de salida también puede darte una idea del monto de tu próxima factura. Además, si algo parece estar fuera de lugar, contar con una imagen clara de las operaciones de la base de datos puede ser una herramienta útil para solucionar problemas.

En esta página, se analiza la supervisión del rendimiento del Realtime Database. Para obtener información sobre la supervisión de uso, consulta Supervisa el uso de la base de datos.

Usa herramientas de supervisión de Realtime Database

Puedes reunir datos sobre el rendimiento de Realtime Database con unas pocas herramientas diferentes, según el nivel de detalle que necesites.

Usa la herramienta de generación de perfiles de Realtime Database

La herramienta de generación de perfiles de Realtime Database proporciona una descripción general de las operaciones de lectura y escritura en la base de datos. El informe incluye datos sobre la velocidad y el tamaño de la carga útil de cada operación, además de las consultas sin indexar. Sin embargo, no incluye información histórica ni estadísticas sobre los gastos de funcionamiento 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, consulta Cómo crear un perfil de la base de datos.

Usa Firebase console

La pestaña Uso de Firebase console proporciona información sobre las conexiones simultáneas a la base de datos, la cantidad de datos que almacenas, el ancho de banda saliente (incluida la sobrecarga de encriptación y protocolo) y los intervalos de carga de la base de datos que superan 1 minuto. La pestaña Uso te ofrece una descripción general más precisa del rendimiento general de la base de datos, pero es probable que no puedas obtener una vista lo suficientemente detallada para solucionar posibles problemas de rendimiento.

Usa Stackdriver Monitoring

Con Stackdriver Monitoring de Google Cloud Platform, puedes usar el Explorador de métricas para ver métricas de rendimiento individuales o crear diferentes paneles con gráficos que muestran distintas combinaciones de métricas de rendimiento en el tiempo. La integración de Realtime Database con Stackdriver Monitoring ofrece el mayor nivel de detalle.

Los pasos para configurar Stackdriver Monitoring se describen en Supervisa el uso de la base de datos.

Consulta las siguientes secciones para ver sugerencias sobre el uso de métricas específicas de Stackdriver a fin de detectar problemas de rendimiento.

Supervisa el rendimiento en Stackdriver

Si tienes problemas con el rendimiento, incluido el tiempo de actividad o la latencia, te recomendamos usar Stackdriver para supervisar las siguientes métricas. Ten en cuenta que todos los nombres de los tipos de métrica tienen el prefijo firebasedatabase.googleapis.com/.

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

io/database_load Usa esta métrica para supervisar cuánto ancho de banda de la base de datos disponible se encuentra en uso procesando solicitudes con el tiempo. Es probable que experimentes problemas de rendimiento cuando la carga de la base de datos esté cerca del total de ancho de banda disponible. También puedes ver qué tipos de operaciones emplean la mayor carga y utilizar esa información según corresponda para solucionar problemas. La carga informada podría superar el 100% en operaciones que tardan más de un minuto. Esto ocurre cuando el ancho de banda total usado en un período de varios minutos se condensa en el intervalo de informe de un minuto, después de que se completa la operación.

Red inhabilitada por excesos

network/disabled_for_overages. Esta métrica refleja las posibles interrupciones si se excedieron los límites de ancho de banda o de red de Realtime Database.

Almacenamiento inhabilitado por excesos

storage/disabled_for_overages Esta métrica refleja las posibles interrupciones si se excedieron los límites de almacenamiento de Realtime Database.

Combina varias métricas en el panel para hacer gráficos que te permitan ver estadísticas útiles y descripciones generales. Por ejemplo, prueba las siguientes combinaciones:

  • Operaciones: Usa la métrica io/database_load para saber cuánto de la carga total de la base de datos se usa en cada tipo de operación. Asegúrate de agrupar io/database_load por tipo para solucionar problemas de diferentes tipos de operaciones.
  • Almacenamiento: Usa las métricas storage/limit y storage/total_bytes para supervisar el uso del almacenamiento en relación con los límites de almacenamiento de Realtime Database. También puedes agregar storage/disabled_for_overages para ver si tu app tuvo tiempos de inactividad debido a que excedió los límites de almacenamiento.
  • Sobrecarga de SSL: Usa network/https_requests_count para supervisar cuántas solicitudes de conexión SSL recibió la base de datos y separar las solicitudes que volvieron a usar una solicitud de sesión SSL existente con el filtro reused_ssl_session. Puedes medir esto en comparación con network/sent_bytes_count y network/sent_payload_and_protocol_bytes_count para supervisar si tu app usa o no las solicitudes de sesión SSL de manera eficiente.

También puedes configurar alertas a través de Stackdriver Monitoring y recibir notificaciones a partir de métricas de Realtime Database. Por ejemplo, puedes elegir recibir una notificación si io/database_load se acerca a un umbral determinado.

Consulta la lista completa de métricas de Realtime Database disponible a través de Stackdriver Monitoring.

Tipos de cargas de la base de datos

La métrica io/database_load también proporciona una etiqueta del tipo de operación que causó la carga. Estas son los posibles tipos de operaciones que se miden:

  • admin: Operaciones de administrador, como la configuración de reglas y la lectura de metadatos de proyectos.
  • auth: Verificación de la autenticación desde cuentas de servicio o Firebase Authentication para un único cliente.
  • client_management: Control de adición y eliminación de conexiones simultáneas, que incluye la ejecución de operaciones de desconexión durante la eliminación.
  • get_shallow: Recuperación de datos desde un GET de REST con shallow=true.
  • get: Control de operaciones del GET de REST.
  • listen: Recuperación de datos iniciales para operaciones on y once de clientes conectados.
  • on_disconnect: Registro en operaciones de desconexión de clientes.
  • put: Control de operaciones set de clientes o de operaciones PUT de REST.
  • transaction: Realización de transacciones desde solicitudes condicionales de REST o una operación de un cliente.
  • update: Control de operaciones o solicitudes de PATCH de REST.

Supervisa las reglas de seguridad en Stackdriver

También puedes analizar la evaluación de las reglas de seguridad. Ten en cuenta que todos los nombres de los tipos de métrica tienen el prefijo firebasedatabase.googleapis.com/.

Nombre de la métrica Descripción
Evaluaciones de las reglas rules/evaluation_count. La cantidad de evaluaciones de reglas de Realtime Database ejecutadas en respuesta a solicitudes de escritura o lectura. Puedes desglosar esta métrica según el resultado de la solicitud (ALLOW, DENY o ERROR).

Adapta el gráfico de Stackdriver para las evaluaciones de reglas según tus necesidades. Por ejemplo, filtra los resultados de evaluaciones específicas, ALLOW, DENY o ERROR. La configuración y personalización de gráficos se describe en Supervisa el uso de la base de datos.

Consulta la lista completa de métricas de Realtime Database disponible a través de Stackdriver Monitoring.