Compreenda a monitorização do desempenho no Firestore
O Cloud Monitoring recolhe métricas, eventos e metadados de Google Cloud produtos. Os dados comunicados no painel de controlo de utilização e na utilização das regras de segurança também podem ser acedidos através do Cloud Monitoring para uma análise mais detalhada. Com o Cloud Monitoring, também pode configurar painéis de controlo personalizados e alertas de utilização.
Este documento explica como usar métricas, saber mais sobre o painel de controlo de métricas personalizadas e definir alertas.
Recursos monitorizados
Um recurso monitorizado no Cloud Monitoring representa uma entidade lógica ou física, como uma máquina virtual, uma base de dados ou uma aplicação. Os recursos monitorizados contêm um conjunto único de métricas que podem ser exploradas, comunicadas através de um painel de controlo ou usadas para criar alertas. Cada recurso também tem um conjunto de etiquetas de recursos, que são pares de chave-valor que contêm informações adicionais sobre o recurso. As etiquetas de recursos estão disponíveis para todas as métricas associadas ao recurso.
Através da API Cloud Monitoring, o desempenho do Firestore é monitorizado com os seguintes recursos:
Resources | Descrição | Modo de base de dados suportado |
firestore.googleapis.com/Database (recomendado) | Tipo de recurso monitorizado que fornece discriminações para project ,
location * e database_id . A etiqueta
database_id vai ser (default) para bases de dados criadas
sem um nome específico. |
Aplica-se a ambos os modos. |
firestore_instance | Tipo de recurso monitorizado para projetos do Firestore e não fornece discriminação para bases de dados. | Aplica-se ao Firestore Native |
datastore_request | Tipo de recurso monitorizado para projetos do Datastore e não fornece discriminação para bases de dados. | Aplica-se a ambos os modos. |
Métrica
O Firestore está disponível em dois modos diferentes: Firestore Native e Firestore no modo Datastore. Para uma comparação de funcionalidades entre estes dois modos, consulte o artigo Escolha entre os modos de base de dados.
Para ver uma lista completa de métricas para ambos os modos, consulte os seguintes links:
Métricas de tempo de execução do serviço
As métricas serviceruntime
oferecem uma vista geral do tráfego de um projeto. Estas métricas estão disponíveis para a maioria das Google Cloud APIs. O tipo de recurso monitorizado
consumed_api
contém estas métricas comuns. Estas métricas são amostradas a cada 30 minutos, o que resulta numa suavização dos dados.
Uma etiqueta de recurso importante para as métricas serviceruntime
é method
. Esta etiqueta representa o método RPC subjacente chamado. O método do SDK que chama pode não ter necessariamente o mesmo nome que o método RPC subjacente. O motivo é que o SDK oferece uma abstração da API de nível superior. No entanto, quando tenta compreender como a sua aplicação interage com o Firestore, é importante compreender as métricas com base no nome do método RPC.
Se precisar de saber qual é o método RPC subjacente para um determinado método do SDK, consulte a documentação da API.
Use as seguintes métricas de tempo de execução do serviço para monitorizar a sua base de dados.
api/request_count
Esta métrica fornece a contagem de pedidos concluídos, no protocolo(protocolo de pedido, como http, gRPC, etc.),
código de resposta (código de resposta HTTP), response_code_class
(classe de código de resposta, como 2xx, 4xx, etc.) e grpc_status_code
(código de resposta gRPC numérico). Use esta métrica para
observar o pedido de API geral e calcular a taxa de erro.

Na figura 1, podem ver-se os pedidos que devolvem um código 2xx agrupados por serviço e método. Os códigos 2xx são códigos de estado HTTP que indicam que o pedido foi bem-sucedido.

Na figura 2, podem ver-se as confirmações agrupadas por response_code
. Neste exemplo, só vemos respostas HTTP 200, o que implica que a base de dados está em bom estado.
api/request_latencies
A métrica api/request_latencies
fornece distribuições de latência em todos os pedidos concluídos.
O Firestore regista métricas do componente Serviço do Firestore. As métricas de latência incluem o tempo que o Firestore demora a receber o pedido até terminar o envio da resposta, incluindo as interações com a camada de armazenamento. Devido a isto, a latência de ida e volta (rtt) entre o cliente e o serviço Firestore não está incluída nestas métricas.

api/request_sizes e api/response_sizes
As métricas api/request_sizes
e api/response_sizes
fornecem, respetivamente, estatísticas sobre os tamanhos das cargas úteis (em bytes). Estas podem ser úteis para compreender as cargas de trabalho de escrita que enviam grandes quantidades de dados ou consultas demasiado amplas e devolvem grandes payloads.

Na figura 5, pode ver um mapa térmico dos tamanhos das respostas para o método RunQuery
.
Podemos ver que os tamanhos são estáveis, com uma mediana de 50 bytes e, no geral, entre 10 bytes e 100 bytes. Tenha em atenção que os tamanhos da carga útil são sempre medidos em bytes não comprimidos, excluindo as sobrecargas de controlo de transmissão.
Métricas de operações de documentos
O Firestore fornece contagens de leitura, escrita e eliminação. A métrica de gravação fornece uma discriminação entre a operação "CREATE" e "UPDATE". Estas métricas estão alinhadas com as operações CRUD.
As seguintes métricas podem ser usadas para compreender se a sua base de dados tem muitas leituras ou muitas escritas, e a taxa de novos documentos em comparação com documentos eliminados.
document/delete_ops_count
: o número de eliminações de documentos bem-sucedidas.document/read_ops_count
: o número de leituras de documentos bem-sucedidas a partir de consultas ou pesquisas.document/write_ops_count
: o número de gravações de documentos bem-sucedidas.

Na figura 6, pode ver como criar uma proporção que mostra a proporção de documentos lidos em comparação com os documentos escritos. Neste exemplo, o número de documentos lidos é cerca de 6% superior ao número de documentos escritos.
Métricas de operações de documentos
Estas métricas fornecem distribuições em bytes dos tamanhos de carga útil para leituras (consultas e pesquisas) e escritas numa base de dados do Firestore. Os valores representam o tamanho total da carga útil. Por exemplo, quaisquer resultados devolvidos por uma consulta.
Estas métricas são semelhantes às métricas api/request_sizes
e api/response_sizes
, sendo que a principal diferença é que as métricas de operações de documentos oferecem uma amostragem mais detalhada, mas discriminações menos detalhadas.
Por exemplo, as métricas de operação de documentos usam o recurso datastore_request
monitorizado, pelo que não existe uma discriminação de serviços ou métodos.
entity/read_sizes
: distribuição dos tamanhos dos documentos lidos.entity/write_sizes
: distribuição de tamanhos de documentos escritos.
Métricas de índice
As taxas de gravação de índice podem ser contrastadas com a métrica document/write_ops_count
para compreender a proporção de expansão do índice.
index/write_count
: número de gravações de índice.

Na figura 7, pode ver como a taxa de gravação de índice pode ser contrastada com a taxa de gravação de documentos. Neste exemplo, para cada gravação de documento, existem aproximadamente 6 gravações de índice, o que representa uma taxa de fanout de índice relativamente pequena.
Clientes ligados diretamente à base de dados através dos SDKs do Firebase
Estão disponíveis duas métricas de indicador para acompanhar a atividade de clientes ligados diretamente a bases de dados do Firestore através de SDKs para dispositivos móveis, SDKs Web ou ambos. Estas métricas incluem uma funcionalidade relacionada com ouvintes de instantâneos em tempo real, em que as alterações relevantes na base de dados são imediatamente transmitidas de volta aos clientes.
network/active_connections
: o número de ligações ativas no momento. Cada cliente Web ou para dispositivos móveis tem uma ligação.network/snapshot_listeners
: o número de ouvintes de instantâneos atualmente registados em todos os clientes ligados. Pode haver várias associações por cliente.
Pode ver estas métricas no separador Usage
na base de dados do Firestore na consola do Firebase.

Métricas de TTL
As métricas de TTL estão disponíveis para bases de dados do Firestore Native e do Firestore no modo Datastore. Use estas métricas para monitorizar o efeito da política de TTL aplicada.
document/ttl_deletion_count
: número total de documentos eliminados pelos serviços TTL.

Na figura 9, pode ver a taxa de documentos eliminados a cada minuto durante um período de dias.
document/ttl_expiration_to_deletion_delays
: tempo decorrido entre a expiração do TTL de um documento e a sua eliminação real.

Na figura 10, pode ver que esta métrica fornece uma distribuição do tempo em segundos que o Firestore demorou a eliminar documentos com políticas de TTL. Demora menos de 0,5 segundos a eliminar documentos com TTL expirado no percentil 99. Isto implica que o sistema está a funcionar normalmente. Normalmente, o Firestore elimina os documentos expirados no prazo de 24 horas, mas isto não é garantido. Se vir que o processo demora mais de 24 horas, contacte o apoio técnico.
O que se segue
- Saiba como usar o painel de controlo do Cloud Monitoring para ver métricas.
- Monitorize a utilização para identificar leituras, escritas e eliminações de documentos ao longo do tempo.