Comprende la supervisión del rendimiento en Firestore
Cloud Monitoring recopila métricas, eventos y metadatos de Google Cloud productos. También se puede acceder a los datos que se informan en el panel Uso y Uso de reglas de seguridad a través de Cloud Monitoring para realizar un análisis más detallado. Con Cloud Monitoring, también puedes configurar paneles personalizados y alertas de uso.
En este documento, se explica cómo usar las métricas, obtener información sobre el panel de métricas personalizadas y configurar alertas.
Recursos supervisados
Un recurso supervisado en Cloud Monitoring representa una entidad lógica o física, como una máquina virtual, una base de datos o una aplicación. Los recursos supervisados contienen un conjunto único de métricas que se pueden explorar, informar a través de un panel o usar para crear alertas. Cada recurso también tiene un conjunto de etiquetas de recursos, que son pares clave-valor que contienen información adicional sobre el recurso. Las etiquetas de recursos están disponibles para todas las métricas asociadas al recurso.
Con la API de Cloud Monitoring, el rendimiento de Firestore se supervisa con los siguientes recursos:
| Recursos | Descripción | Modo de base de datos compatible |
firestore.googleapis.com/Database (recomendada) | Tipo de recurso supervisado que proporciona desgloses para project,
location* y database_id . La
database_id etiqueta será (default) para las bases de datos creadas
sin un nombre específico. |
Se aplica a ambos modos. |
firestore_instance | Tipo de recurso supervisado para proyectos de Firestore que no proporciona desgloses para bases de datos. | Se aplica a Firestore en modo nativo |
datastore_request | Tipo de recurso supervisado para proyectos de Datastore que no proporciona desgloses para bases de datos. | Se aplica a ambos modos. |
Métricas
Firestore está disponible en dos modos diferentes: Firestore en modo nativo y Firestore en modo Datastore. Para ver una función comparación entre estos dos modos, consulta Elige entre los modos de base de datos.
Para obtener una lista completa de las métricas de ambos modos, consulta los siguientes vínculos:
Métricas de service runtime
Las serviceruntime
métricas proporcionan una descripción general del tráfico de un proyecto. Estas métricas están
disponibles para la mayoría de las Google Cloud APIs. El tipo de recurso supervisado
consumed_api
contiene estas métricas comunes. Estas métricas se muestrean cada 30 minutos, lo que genera datos suavizados.
Una etiqueta de recurso importante para las métricas de serviceruntime es method. Esta etiqueta representa el método de RPC subyacente al que se llamó. Es posible que el método del SDK al que llamas no se llame igual que el método de RPC subyacente. El motivo es que el SDK proporciona una abstracción de API de alto nivel. Sin embargo, cuando intentas comprender cómo interactúa tu aplicación con Firestore, es importante entender las métricas basadas en el nombre del método de RPC.
Si necesitas saber cuál es el método de RPC subyacente para un método de SDK determinado, consulta la documentación de la API.
Usa las siguientes métricas de service runtime para supervisar tu base de datos.
api/request_count
Esta métrica proporciona el recuento de solicitudes completadas, en todos los protocolos(protocolo de solicitud, como http, gRPC, etcétera), el código de respuesta (código de respuesta HTTP), response_code_class (clase de código de respuesta, como 2xx, 4xx, etcétera) y grpc_status_code (código de respuesta numérico de gRPC). Usa esta métrica para observar la solicitud a la API general y calcular la tasa de errores.
En la figura 1, se pueden ver las solicitudes que muestran un código 2xx agrupadas por servicio y método. Los códigos 2xx son códigos de estado HTTP que indican que la solicitud se realizó correctamente.
En la figura 2, se pueden ver las confirmaciones agrupadas por response_code. En este ejemplo, solo vemos respuestas HTTP 200, lo que implica que la base de datos está en buen estado.
api/request_latencies
La métrica api/request_latencies proporciona distribuciones de latencia en todas las solicitudes completadas.
Firestore registra métricas del componente Servicio de Firestore. Las métricas de latencia incluyen el tiempo que transcurre desde que Firestore recibe la solicitud hasta que termina de enviar la respuesta, incluidas las interacciones con la capa de almacenamiento. Por este motivo, la latencia de ida y vuelta (RTT) entre el cliente y el servicio de Firestore no se incluye en estas métricas.
api/request_sizes y api/response_sizes
Las métricas api/request_sizes y api/response_sizes proporcionan información sobre los tamaños de la carga útil (en bytes). Esto puede ser útil para comprender las cargas de trabajo de escritura que envían grandes cantidades de datos o las consultas que son demasiado amplias y muestran cargas útiles grandes.
En la figura 5, se puede ver un mapa de calor para los tamaños de respuesta del método RunQuery.
Podemos ver que los tamaños son constantes, con una mediana de 50 bytes y, en general, entre 10 y 100 bytes. Ten en cuenta que los tamaños de la carga útil siempre se miden en bytes sin comprimir, sin incluir las sobrecargas de control de transmisión.
Métricas de operación de documentos
Firestore proporciona recuentos de lectura, escritura y eliminación. La métrica de escritura proporciona un desglose entre las operaciones "CREATE" y "UPDATE". Estas métricas se alinean con las operaciones de CRUD.
Las siguientes métricas se pueden usar para comprender si tu base de datos tiene muchas lecturas o escrituras, y la proporción de documentos nuevos en comparación con los documentos borrados.
document/delete_ops_count: Es la cantidad de eliminaciones correctas de documentos.document/read_ops_count: Es la cantidad de lecturas de documentos exitosas a partir de búsquedas o consultas.document/write_ops_count: Es la cantidad de operaciones de escritura de documentos realizadas correctamente.
En la figura 6, puedes ver cómo crear una proporción que muestre la proporción de documentos leídos en comparación con los documentos escritos. En este ejemplo, la cantidad de documentos que se leen es aproximadamente un 6% más que la cantidad de documentos que se escriben.
Métricas de tamaño de la carga útil
Estas métricas proporcionan distribuciones en bytes de los tamaños de la carga útil para lecturas (búsquedas y consultas) y escrituras en una base de datos de Firestore. Los valores representan el tamaño total de la carga útil. Por ejemplo, cualquier resultado que muestre una consulta.
Estas métricas son similares a las métricas api/request_sizes y api/response_sizes, con la diferencia principal de que las métricas de operación de documentos proporcionan un muestreo más detallado, pero desgloses menos detallados.
Por ejemplo, las métricas de operación de documentos usan el recurso supervisado datastore_request, por lo que no hay un desglose de servicio o método.
entity/read_sizes: Distribución de tamaños de documentos leídos.entity/write_sizes: Distribución de tamaños de documentos escritos.
Métricas de facturación (edición Enterprise)
Las siguientes métricas de facturación solo están disponibles para la edición Enterprise de Firestore.
Usa estas métricas para comprender el uso de la facturación. Estas métricas no incluyen la facturación de las operaciones del administrador (indexación, importación, exportación y eliminación masiva).
api/billable_read_units: Es la cantidad de unidades de lectura facturables. El uso se puede desglosar por nombre de servicio y método de API.api/billable_write_units: Es la cantidad de unidades de escritura facturables. El uso se puede desglosar por nombre de servicio y método de API.document/billable_managed_delete_write_units: Es la cantidad de unidades de escritura facturables de los servicios de eliminación administrados, como el TTL.
Métricas de índice
Las tasas de escritura de índices se pueden comparar con la métrica document/write_ops_count
para comprender la proporción de expansión del índice.
index/write_count: Es el recuento de escrituras de índice.
En la figura 7, puedes ver cómo se puede comparar la tasa de escritura de índice con la tasa de escritura de documentos. En este ejemplo, por cada escritura de documento, hay aproximadamente 6 escrituras de índice, lo que es una tasa de expansión de índice relativamente pequeña.
Clientes conectados directamente a la base de datos con los SDK de Firebase
Hay dos métricas de indicador disponibles para hacer un seguimiento de la actividad de los clientes conectados directamente a las bases de datos de Firestore a través de los SDK para dispositivos móviles, los SDK web o ambos. Estas métricas incluyen una funcionalidad relacionada con los objetos de escucha de instantáneas en tiempo real, en la que los cambios relevantes en la base de datos se transmiten de inmediato a los clientes.
network/active_connections: Es la cantidad de conexiones activas en un momento determinado. Cada cliente web o móvil tiene una conexión.network/snapshot_listeners: Es la cantidad de objetos de escucha de instantáneas registrados actualmente en todos los clientes conectados. Puede haber varias conexiones por cliente.
Puedes ver estas métricas en la pestaña Usage dentro de la base de datos de Firestore en Firebase console.
Métricas de TTL
Las métricas de TTL están disponibles para Firestore en modo nativo y Firestore en bases de datos en modo Datastore. Usa estas métricas para supervisar el efecto de la política de TTL aplicada.
document/ttl_deletion_count: Recuento total de documentos borrados por los servicios de TTL.
En la figura 9, puedes ver la tasa de documentos borrados por minuto durante un período de días.
document/ttl_expiration_to_deletion_delays: Tiempo transcurrido entre el vencimiento de un documento con un TTL y el momento en que se borró.
En la figura 10, puedes ver que esta métrica proporciona una distribución del tiempo en segundos que tardó Firestore en borrar documentos con políticas de TTL. Se tarda menos de 0.5 segundos en borrar los documentos vencidos por TTL en el percentil 99. Esto implica que el sistema funciona con normalidad. Por lo general, Firestore borra los documentos vencidos en un plazo de 24 horas, pero esto no está garantizado. Si ves que tarda más de 24 horas, comunícate con el equipo de asistencia.
Próximos pasos
- Obtén información para usar el panel de Cloud Monitoring para ver métricas.
- Supervisa el uso para identificar lecturas, escrituras y eliminaciones de documentos a lo largo del tiempo.