Anuncio de Cloud Firestore (Beta): Prueba la nueva base de datos escalable y flexible de Firebase y Google Cloud Platform. Obtén más información sobre Cloud Firestore.

Cómo crear un perfil de tu base de datos

Mide el rendimiento de Firebase Realtime Database con la herramienta de generación de perfiles de bases de datos integrada en Firebase CLI. La herramienta de generación de perfiles registra toda la actividad de tu base de datos durante un período de tiempo y genera un informe detallado. Usa el informe detallado para solucionar problemas en el rendimiento de la base de datos, detectar las áreas con problemas y reducir las consultas no indexadas.

Genera un perfil

  1. Antes de comenzar a generar el perfil de Firebase Realtime Database, asegúrate de usar la versión más reciente de Firebase CLI y de inicializarla para la base de datos y el proyecto de los que deseas generar perfiles. Ten en cuenta que debes ser editor o propietario de ese proyecto para generar perfiles.

  2. Comienza a generar el perfil de la base de datos con el siguiente comando:

    firebase database:profile
    El generador de perfiles muestra un mensaje de estado mientras registra operaciones desde la base de datos y genera el perfil.

  3. Presiona Intro para completar el perfil y mostrar los resultados.

Interpreta los resultados

La herramienta de generación de perfiles agrega los datos que se recopilan de las operaciones de tu base de datos y muestra los resultados en tres categorías principales: velocidad, ancho de banda y consultas no indexadas.

Velocidad

El Informe de velocidad mide el tiempo de respuesta del servidor (en milisegundos) para cada tipo de operación. Sin embargo, es posible que la velocidad medida en el Informe de velocidad no refleje realmente la velocidad que reciben los usuarios finales. Hay diferentes factores, como las condiciones de la red, que pueden agregar latencia en el lado del cliente.

El Informe de velocidad incluye las siguientes propiedades:

  • Ruta de acceso: La ruta de acceso de la base de datos donde ocurrieron las operaciones. Si hay más de 25 nodos secundarios, la herramienta de generación de perfiles los contrae en una ruta superior y agrega un marcador $wildcard. Es posible que veas el directorio raíz de la base de datos en el informe, representado por una barra diagonal /.
  • Recuento: La cantidad de operaciones que ocurrieron en la ruta de acceso determinada.
  • Promedio: El tiempo promedio que tarda el servidor en procesar un tipo de operación en particular en esa ruta de acceso.
  • Permiso denegado: La cantidad de operaciones en una ruta de acceso determinada que se bloqueó según las reglas de Firebase Database en la base de datos.
Informe de velocidad por tipo de operación
Velocidad de lectura El tiempo de respuesta del servidor para las solicitudes de lectura de datos de la base de datos que envían los clientes.
Velocidad de escritura El tiempo de respuesta del servidor para las solicitudes de escritura de datos en la base de datos que realizan los clientes.
Velocidad de transmisión

La cantidad de tiempo que tarda el servidor en distribuir datos a los clientes que escuchan la ruta de acceso determinada para recibir actualizaciones en tiempo real.

La propiedad Recuento en el Informe de velocidad de transmisión es una sumatoria de la cantidad de transmisiones que ocurrieron, no de la cantidad de clientes que recibieron la información. Por ejemplo, si 10 clientes escuchan en una ruta de acceso determinada y el servidor transmite una actualización a los 10 clientes, el recuento de transmisión solo refleja 1 transmisión, pese a que 10 clientes recibieron los datos.

La propiedad Permiso denegado no se incluye en el Informe de velocidad de transmisión.

Ancho de banda

El Informe de ancho de banda proporciona estadísticas sobre la cantidad de datos que consume la base de datos en las operaciones entrantes y salientes. Sin embargo, no debes usar el Informe de ancho de banda para estimar la facturación, ya que no incluye el ancho de banda que usan otras operaciones, como la generación de perfiles de la base de datos. El Informe de ancho de banda calcula aproximadamente el tamaño de la carga útil de los datos que consumen las operaciones de lectura, escritura y transmisión hacia la base de datos y desde ella. Es una herramienta para medir el rendimiento, no para hacer previsiones de la facturación.

El Informe de ancho de banda incluye las siguientes propiedades:

  • Ruta de acceso: La ruta de acceso de la base de datos donde ocurrieron las operaciones. Si hay más de 25 nodos secundarios, la herramienta de generación de perfiles los contrae en una ruta superior.

  • Total: El total de bytes salientes o entrantes que usaron todas las operaciones en la ruta determinada.

  • Recuento: La cantidad de operaciones que ocurrieron en la ruta de acceso determinada.

  • Promedio: La cantidad promedio de bytes descargados o subidos en todas las operaciones de la ruta de acceso determinada (bytes/escritura o bytes/lectura).

Informe de ancho de banda
Bytes descargados Datos consumidos a través de operaciones de lectura y transmisión enviadas a través de los SDK de cliente y la API de REST.
Bytes subidos Datos consumidos a través de las solicitudes de escritura en el servidor de la base de datos. Las eliminaciones se muestran como escrituras con 0 bytes en "entrantes".

Consultas no indexadas

Las consultas no indexadas pueden ser costosas, ya que los clientes descargan todos los datos en una ubicación y luego ejecutan consultas sobre ellos. Esto usa más ancho de banda de lo necesario. Resuelve la mayor cantidad posible de consultas no indexadas para optimizar el rendimiento de tu base de datos.

El Informe de consultas no indexadas muestra las siguientes propiedades:

  • Ruta de acceso: La ruta de acceso de la base de datos donde ocurrieron las consultas no indexadas.
  • Índice: La regla que debes agregar para resolver las consultas no indexadas. Obtén más información sobre la indexación en Cómo indexar datos.
  • Recuento: La cantidad de consultas no indexadas que ocurrieron en esa ruta de acceso.

Generación de perfiles avanzada

Para ver todas las operaciones que maneja la base de datos, usa la marca --raw cuando generes el perfil de la base de datos, como se muestra a continuación:

firebase database:profile --raw

La salida sin procesar también incluye información del cliente de cada operación, como las strings userAgent y las direcciones IP. Obtén más información sobre las diferentes operaciones con perfiles generados en Firebase Realtime Database en Tipos de operaciones de Firebase Realtime Database.

La herramienta de generación de perfiles no es una herramienta de facturación

No uses la herramienta de generación de perfiles para estimar el costo del ancho de banda. La herramienta de generación de perfiles está diseñada para mostrarte una visión general del rendimiento de tu base de datos, con el fin de ayudarte a supervisar las operaciones y solucionar los problemas, no a estimar la facturación. No incluye el tráfico de red, solo registra una estimación de los datos de aplicación que se enviaron en respuestas.

Los siguientes son ejemplos comunes del tráfico de red que facturó Firebase y que no se incluyen en el perfil de tu base de datos:

  • Sobrecarga de protocolo: Se necesita tráfico adicional entre el servidor y los clientes para establecer y mantener una sesión. Según el protocolo subyacente, este tráfico podría incluir la sobrecarga de protocolo en tiempo real de Firebase Realtime Database, la sobrecarga de WebSocket y la sobrecarga del encabezado HTTP. Cada vez que se establece una conexión, esta sobrecarga, junto con cualquier sobrecarga de encriptación de SSL, contribuye a los costos de conexión. Pese a que, por lo general, esto no equivale a una gran cantidad de ancho de banda, puede ser sustancial si las cargas útiles son pequeñas o haces conexiones cortas con frecuencia.
  • Sobrecarga de encriptación de SSL: Hay un costo asociado con la sobrecarga de encriptación de SSL necesaria para las conexiones seguras. En promedio, este costo equivale a 3.5 KB para el protocolo de enlace inicial y aproximadamente 40 B para los encabezados del registro TLS en cada mensaje saliente. Para la mayoría de las apps, este es un porcentaje pequeño de la factura. Sin embargo, puede convertirse en un mayor porcentaje si tu caso específico necesita una gran cantidad de protocolos de enlace SSL. Por ejemplo, los dispositivos que no admiten solicitudes de sesión TLS pueden necesitar una gran cantidad de protocolos de enlace de conexión SSL.

Obtén más información sobre cómo comprender y calcular tu factura.

Enviar comentarios sobre…

Firebase Realtime Database
¿Necesitas ayuda? Visita nuestra página de asistencia.