Monitor e de depuração com métricas na Azure Cosmos DBMonitor and debug with metrics in Azure Cosmos DB

O Azure Cosmos DB fornece as métricas de débito, armazenamento, consistência, disponibilidade e latência.Azure Cosmos DB provides metrics for throughput, storage, consistency, availability, and latency. O portal do Azure fornece uma exibição agregada destas métricas.The Azure portal provides an aggregated view of these metrics. Também pode ver as métricas do Azure Cosmos DB a partir da API do Azure Monitor.You can also view Azure Cosmos DB metrics from Azure Monitor API. Para saber mais sobre como ver as métricas do monitor do Azure, consulte a obter métricas do Azure Monitor artigo.To learn about how to view metrics from Azure monitor, see the Get metrics from Azure Monitor article.

Este artigo explica-casos de utilização comuns e como as métricas do Azure Cosmos DB podem ser usadas para analisar e depurar esses problemas.This article walks through common use cases and how Azure Cosmos DB metrics can be used to analyze and debug these issues. As métricas são recolhidas a cada cinco minutos e são mantidas durante sete dias.Metrics are collected every five minutes and are kept for seven days.

Ver métricas no portal do AzureView metrics from Azure portal

  1. Inicie sessão no portal do AzureSign into Azure portal

  2. Abra o métricas painel.Open the Metrics pane. Por predefinição, o painel de métricas mostra o armazenamento de índice, as métricas de unidades de pedido para todas as bases de dados na sua conta do Cosmos do Azure.By default, the metrics pane shows the storage, index, request units metrics for all the databases in your Azure Cosmos account. Pode filtrar estas métricas por base de dados, contentor ou uma região.You can filter these metrics per database, container, or a region. Também pode filtrar as métricas com uma granularidade de tempo específico.You can also filter the metrics at a specific time granularity. Obter mais detalhes sobre o débito, armazenamento, disponibilidade, latência e métricas de consistência são fornecidas nos separadores separados.More details on the throughput, storage, availability, latency, and consistency metrics are provided on separate tabs.

    Métricas de desempenho do cosmos DB no portal do Azure

As métricas seguintes estão disponíveis a partir da métricas painel:The following metrics are available from the Metrics pane:

  • Métricas de débito -esta métrica mostra o número de pedidos consumidos ou falhou (código de resposta 429), porque excedeu a capacidade de armazenamento ou débito para o contentor.Throughput metrics - This metric shows the number of requests consumed or failed (429 response code) because the throughput or storage capacity provisioned for the container has exceeded.

  • Métricas de armazenamento -esta métrica mostra o tamanho da utilização de dados e índice.Storage metrics - This metric shows the size of data and index usage.

  • As métricas de disponibilidade -esta métrica mostra a percentagem de pedidos com êxito ao longo do total de pedidos por hora.Availability metrics - This metric shows the percentage of successful requests over the total requests per hour. A taxa de êxito é definida pelos SLAs do Azure Cosmos DB.The success rate is defined by the Azure Cosmos DB SLAs.

  • As métricas de latência -esta métrica mostra a latência de leitura e escrita foi observada pelo Azure Cosmos DB na região em que sua conta está a funcionar.Latency metrics - This metric shows the read and write latency observed by Azure Cosmos DB in the region where your account is operating. É possível visualizar a latência em várias regiões para uma conta georreplicado.You can visualize latency across regions for a geo-replicated account. Esta métrica não representa a latência de pedido de ponto-a-ponto.This metric doesn't represent the end-to-end request latency.

  • Métricas de consistência -esta métrica mostra como eventual é a consistência para o modelo de consistência que escolher.Consistency metrics - This metric shows how eventual is the consistency for the consistency model you choose. Para contas de várias regiões, esta métrica mostra também a latência de replicação entre regiões do que selecionou.For multi-region accounts, this metric also shows the replication latency between the regions you have selected.

  • As métricas do sistema -esta métrica mostra o número de pedidos de metadados é servido pela partição principal.System metrics - This metric shows how many metadata requests are served by the master partition. Ele também ajuda a identificar os pedidos limitados.It also helps to identify the throttled requests.

As secções seguintes explicam os cenários comuns em que pode utilizar as métricas do Azure Cosmos DB.The following sections explain common scenarios where you can use Azure Cosmos DB metrics.

Compreender o número de pedidos está a ter êxito ou a que está causando errosUnderstand how many requests are succeeding or causing errors

Para começar, vá para o portal do Azure e navegue para o métricas painel.To get started, head to the Azure portal and navigate to the Metrics blade. No painel, localize a * * número de pedidos excedeu a capacidade por 1 minuto gráfico.In the blade, find the **Number of requests exceeded capacity per 1-minute chart. Este gráfico mostra um minuto a minuto total de pedidos segmentados pelo código de estado.This chart shows a minute by minute total requests segmented by the status code. Para obter mais informações sobre códigos de estado HTTP, consulte códigos de estado HTTP para o Azure Cosmos DB.For more information about HTTP status codes, see HTTP status codes for Azure Cosmos DB.

O código de estado de erro mais comuns é 429 (limitação/limitação da taxa de).The most common error status code is 429 (rate limiting/throttling). Este erro significa que os pedidos ao Azure Cosmos DB são mais do que o débito aprovisionado.This error means that requests to Azure Cosmos DB are more than the provisioned throughput. A solução mais comuns para esse problema é aumentar verticalmente o RUs para determinada coleção.The most common solution to this problem is to scale up the RUs for the given collection.

Número de pedidos por minuto

Determinar a distribuição de débito entre partiçõesDetermine the throughput distribution across partitions

Ter uma boa cardinalidade das suas chaves de partição é essencial para qualquer aplicação dimensionável.Having a good cardinality of your partition keys is essential for any scalable application. Para determinar a distribuição de taxa de transferência de qualquer contentor particionado dividida por partições, navegue para o painel de métricas no portal do Azure.To determine the throughput distribution of any partitioned container broken down by partitions, navigate to the Metrics blade in the Azure portal. Na débito separador, a divisão de armazenamento é mostrada na RU/segundo máximos consumidos por cada partição física gráfico.In the Throughput tab, the storage breakdown is shown in the Max consumed RU/second by each physical partition chart. O gráfico seguinte ilustra um exemplo de uma distribuição fraco de dados, conforme exibido a partição distorcida mais à esquerda.The following graphic illustrates an example of a poor distribution of data as shown by the skewed partition on the far left.

Ver o uso intenso às 15:00: 05 de partição única

Pode fazer com que uma distribuição desigual de débito frequente partições, que podem resultar em pedidos limitados e podem exigir a repartição.An uneven throughput distribution may cause hot partitions, which can result in throttled requests and may require repartitioning. Para obter mais informações sobre a criação de partições no Azure Cosmos DB, consulte particionar e dimensionar no Azure Cosmos DB.For more information about partitioning in Azure Cosmos DB, see Partition and scale in Azure Cosmos DB.

Determinar a distribuição de armazenamento em várias partiçõesDetermine the storage distribution across partitions

Ter uma boa cardinalidade da sua partição é essencial para qualquer aplicação dimensionável.Having a good cardinality of your partition is essential for any scalable application. Para determinar a distribuição de armazenamento de qualquer contentor particionado dividida por partições, vá para o painel de métricas no portal do Azure.To determine the storage distribution of any partitioned container broken down by partitions, head to the Metrics blade in the Azure portal. No separador de armazenamento, a divisão de armazenamento é mostrada nos dados + armazenamento consumido pelo gráfico de chaves de partição principais de índice.In the Storage tab, the storage breakdown is shown in the Data + Index storage consumed by top partition keys chart. O gráfico seguinte ilustra uma distribuição fraco de armazenamento de dados, conforme exibido a partição distorcida mais à esquerda.The following graphic illustrates a poor distribution of data storage as shown by the skewed partition on the far left.

Exemplo de distribuição de dados fraca

Pode causa ao qual chave de partição é a inclinação a distribuição clicando numa partição no gráfico.You can root cause which partition key is skewing the distribution by clicking on the partition in the chart.

Chave de partição é a inclinação de distribuição

Depois de identificar qual chave de partição está a causar a distorção na distribuição, poderá ter de criar novas partições seu contentor com uma chave de partição mais distribuída.After identifying which partition key is causing the skew in distribution, you may have to repartition your container with a more distributed partition key. Para obter mais informações sobre a criação de partições no Azure Cosmos DB, consulte particionar e dimensionar no Azure Cosmos DB.For more information about partitioning in Azure Cosmos DB, see Partition and scale in Azure Cosmos DB.

Comparar o tamanho dos dados contra o tamanho do índiceCompare data size against index size

No Azure Cosmos DB, o armazenamento total consumido é a combinação do tamanho dos dados e o tamanho do índice.In Azure Cosmos DB, the total consumed storage is the combination of both the Data size and Index size. Normalmente, o tamanho do índice é uma fração do tamanho dos dados.Typically, the index size is a fraction of the data size. No painel de métricas a portal do Azure, separador armazenamento demonstra a divisão do consumo de armazenamento com base nos dados e índice.In the Metrics blade in the Azure portal, the Storage tab showcases the breakdown of storage consumption based on data and index.

// Measure the document size usage (which includes the index size)  
ResourceResponse<DocumentCollection> collectionInfo = await client.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri("db", "coll"));
 Console.WriteLine("Document size quota: {0}, usage: {1}", collectionInfo.DocumentQuota, collectionInfo.DocumentUsage);

Se desejar conservar espaço de índice, pode ajustar os política de indexação.If you would like to conserve index space, you can adjust the indexing policy.

Depuração, por que consultas estão lentasDebug why queries are running slow

Os SDKs de API de SQL do Azure Cosmos DB fornece estatísticas de execução de consulta.In the SQL API SDKs, Azure Cosmos DB provides query execution statistics.

IDocumentQuery<dynamic> query = client.CreateDocumentQuery(
 UriFactory.CreateDocumentCollectionUri(DatabaseName, CollectionName),
 "SELECT * FROM c WHERE c.city = 'Seattle'",
 new FeedOptions
 {
 PopulateQueryMetrics = true,
 MaxItemCount = -1,
 MaxDegreeOfParallelism = -1,
 EnableCrossPartitionQuery = true
 }).AsDocumentQuery();
FeedResponse<dynamic> result = await query.ExecuteNextAsync();

// Returns metrics by partition key range Id
IReadOnlyDictionary<string, QueryMetrics> metrics = result.QueryMetrics;

QueryMetrics fornece detalhes sobre cada componente da consulta de quanto tempo demorou a execução.QueryMetrics provides details on how long each component of the query took to execution. A causa mais comum para consultas de execução longa é análises, que significa que a consulta não foi possível ao tirar partido de índices.The most common root cause for long running queries is scans, meaning the query was unable to leverage the indexes. Esse problema pode ser resolvido com uma condição de filtro melhor.This problem can be resolved with a better filter condition.

Passos SeguintesNext steps

Agora já aprendeu como monitorizar e problemas de depuração com as métricas fornecidas no portal do Azure.You've now learned how to monitor and debug issues using the metrics provided in the Azure portal. Pode querer saber mais sobre como melhorar o desempenho da base de dados ao ler os artigos seguintes:You may want to learn more about improving database performance by reading the following articles: