Entérate de todos los anuncios de Firebase Summit y descubre cómo Firebase puede ayudarte a acelerar el desarrollo de las apps y a ejecutarlas con confianza. Más información

Perfile su base de datos

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Mida el rendimiento de su base de datos en tiempo real de Firebase con la herramienta de generación de perfiles de base de datos, integrada en la CLI de Firebase . La herramienta de generación de perfiles registra toda la actividad en su base de datos durante un período de tiempo determinado y luego genera un informe detallado. Utilice el informe detallado para solucionar problemas con el rendimiento de su base de datos, detectar áreas problemáticas y reducir las consultas no indexadas.

crea un perfil

  1. Antes de comenzar a crear perfiles de su base de datos en tiempo real de Firebase, asegúrese de estar utilizando la versión más reciente de la CLI de Firebase y de haberla inicializado para la base de datos y el proyecto que desea perfilar. Tenga en cuenta que debe ser editor o propietario de ese proyecto para crear un perfil.

  2. Comience a perfilar su base de datos con el siguiente comando:

    firebase database:profile
    El perfilador muestra un mensaje de estado a medida que registra las operaciones de su base de datos y crea el perfil.

  3. Presione Entrar para completar el perfil y mostrar los resultados.

Interpreta tus resultados

La herramienta de generación de perfiles agrega los datos que recopila sobre las operaciones de su 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 la experiencia de velocidad de los usuarios finales. Diferentes factores, incluidas las condiciones de la red, pueden agregar latencia en el lado del cliente.

El informe de velocidad incluye las siguientes propiedades:

  • Ruta: La ruta en su base de datos donde ocurrieron las operaciones. Si hay más de 25 nodos secundarios, la herramienta Profiler los contrae en una ruta principal y agrega un marcador $wildcard . Es posible que vea el directorio raíz de su base de datos en el informe, representado por una barra inclinada / .
  • Recuento: el número de operaciones que ocurrieron en la ruta dada.
  • Velocidad de ejecución promedio: el tiempo promedio que le toma al servidor ejecutar la lógica comercial necesaria para manejar el tipo de operación particular en esa ruta. El intervalo de tiempo medido aquí comienza después del medido por el "Tiempo pendiente promedio" que se describe a continuación.
  • Tiempo promedio pendiente: el tiempo promedio que las solicitudes pasan en cola antes de ejecutarse. Este retraso es común a todas las solicitudes iniciadas por el cliente. La latencia total de la solicitud del lado del servidor es aproximadamente la suma del tiempo pendiente y la velocidad de ejecución de esa solicitud.
  • Permiso denegado: la cantidad de operaciones en la ruta dada que fueron bloqueadas por las reglas de la base de datos de Firebase en su base de datos.
Reporte de Velocidad por Tipo de Operación
Velocidad de ejecución de lectura El tiempo de respuesta del servidor para las solicitudes de los clientes para leer datos de la base de datos. El tiempo de ejecución de lectura generalmente se escala con la cantidad de datos que se leen, pero incluso algunas lecturas pequeñas también pueden retrasarse debido a la captura previa de caché.
Velocidad de ejecución de escritura El tiempo de respuesta del servidor para las solicitudes de los clientes para escribir datos en la base de datos. Escribir escalas de tiempo de ejecución con la cantidad de datos que se escriben.
Velocidad de ejecución de conexión El tiempo de respuesta del servidor para las solicitudes que se establecen a los clientes de la base de datos. La latencia de las solicitudes de conexión está dominada por la contabilidad del lado del servidor en memoria relacionada con la gestión de la conexión.
Velocidad de ejecución de transmisión

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

La propiedad Contar en el Informe de velocidad de transmisión agrega la cantidad de transmisiones que ocurrieron, no la cantidad de clientes que recibieron la información. Por ejemplo, si 10 clientes estaban escuchando en una ruta determinada y el servidor transmitió una actualización a los 10 clientes, el conteo de transmisión solo refleja 1 transmisión, aunque 10 clientes recibieron los datos.

La propiedad Permiso denegado no se incluye en el informe Velocidad de transmisión.

Banda ancha

El informe de ancho de banda proporciona información sobre la cantidad de datos que consume su base de datos en las operaciones entrantes y salientes. Sin embargo, no debe utilizar el Informe de ancho de banda para estimar la facturación, ya que no incluye el ancho de banda utilizado para otras operaciones, como la creación de perfiles de su base de datos. El Informe de ancho de banda estima aproximadamente el tamaño de la carga útil de los datos consumidos por las operaciones de lectura, escritura y transmisión hacia y desde su base de datos. Es una herramienta que mide el desempeño, no una que pronostica la facturación.

El informe de ancho de banda incluye las siguientes propiedades:

  • Ruta: La ruta en su base de datos donde ocurrieron las operaciones. Si hay más de 25 nodos secundarios, la herramienta Profiler los colapsa en una ruta principal.

  • Total: el total de bytes salientes o entrantes utilizados en todas las operaciones en la ruta dada.

  • Recuento: el número de operaciones que ocurrieron en la ruta dada.

  • Promedio: el número promedio de bytes descargados o cargados en las operaciones en la ruta dada (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 del cliente y la API REST.
Bytes subidos Datos consumidos a través de solicitudes de escritura que llegan al servidor de la base de datos. Las eliminaciones aparecen como escrituras con 0 bytes en entrante.

Consultas no indexadas

Las consultas no indexadas pueden ser costosas, porque los clientes descargan todos los datos en una ubicación y luego realizan consultas sobre ellos. Esto utiliza más ancho de banda de lo necesario. Resuelva tantas consultas no indexadas como pueda para optimizar el rendimiento de su base de datos.

El informe Consultas no indexadas muestra las siguientes propiedades:

  • Ruta: la ruta en su base de datos donde ocurrieron las consultas no indexadas.
  • Índice: la regla que debe agregar para resolver las consultas no indexadas. Obtenga más información sobre la indexación en Indexe sus datos .
  • Recuento: el número de consultas no indexadas que se produjeron en la ruta dada.

Perfilado avanzado

Para ver todas las operaciones que maneja su base de datos, use el indicador --raw cuando perfile su base de datos, de la siguiente manera:

firebase database:profile --raw

La salida sin procesar también incluye información del cliente para cada operación, como cadenas de userAgent de usuario y direcciones IP. Obtenga más información sobre las diferentes operaciones perfiladas en su base de datos en tiempo real de Firebase en Tipos de operaciones de la base de datos en tiempo real de Firebase.

La herramienta Profiler: no es una herramienta de facturación

No utilice la herramienta Profiler para estimar el costo del ancho de banda. La herramienta Profiler está diseñada para brindarle una imagen general del rendimiento de su base de datos, para ayudarlo a monitorear las operaciones y solucionar problemas, no para estimar la facturación. No tiene en cuenta el tráfico de red, solo registra una estimación de los datos de la aplicación enviados en las respuestas.

Los siguientes son algunos ejemplos comunes de tráfico de red facturado por Firebase que no están cubiertos en su perfil de base de datos:

  • Sobrecarga de protocolo: es necesario cierto tráfico adicional entre el servidor y los clientes para establecer y mantener una sesión. Según el protocolo subyacente, este tráfico puede incluir: la sobrecarga del 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, combinada con cualquier sobrecarga de cifrado SSL, contribuye a los costos de conexión. Aunque esto no suele ser una gran cantidad de ancho de banda, puede ser sustancial si sus cargas útiles son pequeñas o si realiza conexiones breves y frecuentes.
  • Sobrecarga de cifrado SSL: hay un costo asociado con la sobrecarga de cifrado SSL necesaria para conexiones seguras. En promedio, este costo es de aproximadamente 3,5 KB para el protocolo de enlace inicial y aproximadamente 40 000 millones para los encabezados de registro TLS en cada mensaje saliente. Para la mayoría de las aplicaciones, este es un pequeño porcentaje de su factura. Sin embargo, esto podría convertirse en un gran porcentaje si su caso específico requiere muchos protocolos de enlace SSL. Por ejemplo, los dispositivos que no admiten vales de sesión TLS pueden requerir una gran cantidad de protocolos de enlace de conexión SSL.

Obtenga más información sobre cómo comprender y estimar su factura .