Información sobre la monitorización del rendimiento en Firestore
Cloud Monitoring recoge métricas, eventos y metadatos de los productos de Google Cloud . También se puede acceder a los datos que se registran en el panel de control Uso y en Uso de reglas de seguridad a través de Cloud Monitoring para realizar análisis más detallados. Con Cloud Monitoring, también puedes configurar paneles de control personalizados y alertas de uso.
En este documento se explica cómo usar las métricas, se describe el panel de control de métricas personalizadas y se indica cómo configurar alertas.
Recursos monitorizados
Un recurso monitorizado 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 monitorizados contienen un conjunto único de métricas que se pueden explorar, registrar en un panel o usar para crear alertas. Cada recurso también tiene un conjunto de etiquetas de recurso, 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 Cloud Monitoring, el rendimiento de Firestore se monitoriza con los siguientes recursos:
Resources | Descripción | Modo de base de datos admitido |
firestore.googleapis.com/Database (recomendado) | Tipo de recurso monitorizado que proporciona desgloses de project , location * y database_id . La etiqueta database_id será (default) para las bases de datos creadas sin un nombre específico. |
Se aplica a ambos modos. |
firestore_instance | Tipo de recurso monitorizado de proyectos de Firestore. No proporciona un desglose de las bases de datos. | Se aplica a Firestore Native |
datastore_request | Tipo de recurso monitorizado de proyectos de Datastore. No proporciona un desglose de las bases de datos. | Se aplica a ambos modos. |
Métricas
Firestore está disponible en dos modos diferentes: Firestore Native y Firestore en modo Datastore. Para ver una comparación de las funciones de estos dos modos, consulte Elegir entre modos de base de datos.
Para ver una lista completa de las métricas de ambos modos, consulta los siguientes enlaces:
Métricas de tiempo de ejecución del servicio
Las métricas de serviceruntime
proporcionan una descripción general del tráfico de un proyecto. Estas métricas están disponibles para la mayoría de las APIs Google Cloud . El tipo de recurso monitorizado consumed_api
contiene estas métricas comunes. Estas métricas se muestrean cada 30 minutos, lo que provoca que los datos se suavicen.
Una etiqueta de recurso importante para las métricas de serviceruntime
es method
. Esta etiqueta representa el método RPC subyacente al que se llama. El método del SDK al que llames no tiene por qué llamarse igual que el método RPC subyacente. Esto se debe a que el SDK proporciona una abstracción de la API de alto nivel. Sin embargo, cuando intentes entender cómo interactúa tu aplicación con Firestore, es importante que conozcas las métricas basadas en el nombre del método RPC.
Si quieres saber cuál es el método RPC subyacente de un método de SDK concreto, consulta la documentación de la API.
Usa las siguientes métricas de tiempo de ejecución del servicio para monitorizar 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.),
códigos de respuesta (código de respuesta HTTP), response_code_class
(clase de código de respuesta, como 2xx, 4xx, etc.) y grpc_status_code
(código de respuesta gRPC numérico). Usa esta métrica para observar la solicitud general de la API y calcular la tasa de errores.

En la figura 1, se pueden ver las solicitudes que devuelven 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 ha realizado 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 estadísticas sobre los tamaños de las cargas útiles (en bytes). Pueden ser útiles para comprender las cargas de trabajo de escritura que envían grandes cantidades de datos o las consultas que son demasiado amplias y devuelven grandes cargas útiles.

En la figura 5, se muestra un mapa de calor de los tamaños de respuesta del método RunQuery
.
Vemos que los tamaños son estables, con una mediana de 50 bytes y un intervalo de 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 los gastos generales de control de la transmisión.
Métricas de operaciones de documentos
Firestore proporciona recuentos de lecturas, escrituras y eliminaciones. La métrica de escritura proporciona un desglose entre las operaciones "CREATE" y "UPDATE". Estas métricas se corresponden con las operaciones CRUD.
Las siguientes métricas se pueden usar para saber si tu base de datos tiene muchas lecturas o muchas escrituras, así como la tasa de documentos nuevos frente a documentos eliminados.
document/delete_ops_count
: número de documentos eliminados correctamente.document/read_ops_count
: Número de lecturas de documentos correctas a partir de consultas o búsquedas.document/write_ops_count
: número de escrituras de documentos correctas.

En la figura 6, puedes ver cómo crear una proporción que muestre la relación entre los documentos leídos y los documentos escritos. En este ejemplo, el número de documentos que se leen es aproximadamente un 6% superior al número de documentos que se escriben.
Métricas de operaciones de documentos
Estas métricas proporcionan distribuciones en bytes de los tamaños de carga útil de las lecturas (búsquedas y consultas) y las escrituras en una base de datos de Firestore. Los valores representan el tamaño total de la carga útil. Por ejemplo, los resultados devueltos por una consulta.
Estas métricas son similares a las métricas api/request_sizes
y api/response_sizes
, pero la principal diferencia es que las métricas de operaciones de documentos proporcionan un muestreo más granular, pero desgloses menos granulares.
Por ejemplo, las métricas de operaciones de documentos usan el recurso monitorizado datastore_request
, por lo que no hay ningún desglose por servicio o método.
entity/read_sizes
: distribución de los tamaños de los documentos leídos.entity/write_sizes
: Distribución de tamaños de documentos escritos.
Métricas de índice
Las tasas de escritura de índices se pueden comparar con la métrica document/write_ops_count
para conocer la proporción de ramificación de índices.
index/write_count
: número de escrituras de índice.

En la figura 7, puedes ver cómo se puede contrastar la tasa de escritura de índices con la tasa de escritura de documentos. En este ejemplo, por cada escritura de documento, hay aproximadamente 6 escrituras de índice, lo que supone una tasa de ramificación de índice relativamente pequeña.
Clientes conectados directamente a la base de datos mediante SDKs de Firebase
Hay dos métricas de tipo Gauge disponibles para monitorizar la actividad de los clientes conectados directamente a bases de datos de Firestore a través de SDKs para móviles, SDKs web o ambos. Estas métricas incluyen una función relacionada con los listeners de la instantánea en tiempo real, donde los cambios relevantes en la base de datos se transmiten inmediatamente a los clientes.
network/active_connections
: número de conexiones activas en un momento determinado. Cada cliente web o móvil tiene una conexión.network/snapshot_listeners
: número de procesadores de capturas registrados en todos los clientes conectados. Puede haber varias conexiones por cliente.
Puedes ver estas métricas en la pestaña Usage
de la base de datos de Firestore de la consola de Firebase.

Métricas de TTL
Las métricas de TTL están disponibles tanto para las bases de datos de Firestore Native como para las de Firestore en modo Datastore. Usa estas métricas para monitorizar el efecto de la política de TTL aplicada.
document/ttl_deletion_count
: número total de documentos eliminados por los servicios de TTL.

En la figura 9, se puede ver el número de documentos eliminados cada minuto durante un periodo de varios días.
document/ttl_expiration_to_deletion_delays
: tiempo transcurrido entre el momento en que caducó un documento con un TTL y el momento en que se eliminó.

En la figura 10, puede ver que esta métrica proporciona una distribución del tiempo en segundos que ha tardado Firestore en eliminar documentos con políticas de TTL. Se tarda menos de 0,5 segundos en eliminar los documentos caducados por TTL en el percentil 99. Esto implica que el sistema funciona con normalidad. Firestore suele eliminar los documentos caducados en un plazo de 24 horas, pero no es un proceso garantizado. Si ves que tarda más de 24 horas, ponte en contacto con el equipo de Asistencia.
Siguientes pasos
- Consulta cómo usar el panel de control de Cloud Monitoring para ver las métricas.
- Monitoriza el uso para identificar las lecturas, escrituras y eliminaciones de documentos a lo largo del tiempo.