Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O serviço gerenciado do Azure Monitor para Prometheus permite coletar e analisar métricas em escala. As métricas do Prometheus são armazenadas nos Workspaces do Azure Monitor. O workspace dá suporte a ferramentas de análise como o Espaço Gerenciado do Azure para Grafana, o Metrics Explorer do Azure Monitor com PromQL e ferramentas de código aberto, como PromQL e Grafana.
Este artigo fornece as melhores práticas para organizar seus Workspaces do Azure Monitor para atender à escala e ao volume crescente de ingestão de dados.
Critérios de design de topologia
Um único workspace do Azure Monitor pode ser suficiente para muitos casos de uso. Algumas organizações criam vários workspaces para atender melhor às suas necessidades. À medida que você identifica os critérios certos para criar workspaces adicionais, crie o menor número de workspaces de acordo com seus requisitos, otimizando para uma sobrecarga mínima de gerenciamento administrativo.
Veja a seguir cenários que exigem a divisão de um workspace do Azure Monitor em vários workspaces:
| Cenário | Prática recomendada |
|---|---|
| Nuvens soberanas | Ao trabalhar com mais de uma nuvem soberana, crie um workspace do Azure Monitor em cada nuvem. |
| Conformidade ou requisitos regulatórios | Se você estiver sujeito a regulamentos que obrigam o armazenamento de dados em regiões específicas, crie um workspace do Azure Monitor por região de acordo com suas necessidades. |
| Dimensionamento regional | Ao gerenciar métricas para organizações regionalmente diversas, como grandes serviços ou instituições financeiras com contas regionais, crie um workspace do Azure Monitor por região. |
| Locatários do Azure | Para vários locatários do Azure, crie um workspace do Azure Monitor em cada locatário. Não há suporte para a consulta de dados entre locatários. |
| Ambientes de implantação | Crie um workspace separado para cada um de seus ambientes de implantação para manter métricas discretas para ambientes de desenvolvimento, teste, pré-produção e produção. |
| Cotas e limites de serviço | Os workspaces do Azure Monitor têm limites de ingestão padrão, que podem ser aumentados com a abertura de um tíquete de suporte. Se você estiver se aproximando do limite ou estimar que excederá o limite de ingestão, considere a possibilidade de solicitar um aumento ou dividir seu workspace em dois ou mais workspaces. |
Cotas e limites de serviço
Os workspaces do Azure Monitor têm cotas e limitações padrão para métricas de 1 milhão de eventos ingeridos por minuto. À medida que seu uso aumenta e você precisa ingerir mais métricas, você pode solicitar um aumento. Se os requisitos de capacidade forem excepcionalmente grandes e suas necessidades de ingestão de dados estiverem excedendo os limites de um único workspace do Azure Monitor, considere criar vários workspaces do Azure Monitor. Use as métricas da plataforma de workspace do Azure Monitor para monitorar a utilização e os limites. Para obter mais informações sobre limites e cotas, consulte Limites e cotas de serviço do Azure Monitor.
Considere as seguintes melhores práticas para gerenciar limites e cotas de workspace do Azure Monitor:
| Prática recomendada | Descrição |
|---|---|
| Monitore e crie um alerta sobre os limites de ingestão e a utilização. | No portal do Azure, navegue até seu Espaço de Trabalho do Azure Monitor. Vá para Métricas e verifique se as métricas % de Utilização de Série Temporal Ativa e % de Utilização de Eventos por Minuto Ingerido estão abaixo de 100%. Defina um Alerta do Azure Monitor para monitorar a utilização e acionar quando a utilização for maior que 80% do limite. Para obter mais informações sobre como monitorar a utilização e os limites, consulte Como posso monitorar os limites e cotas de serviço. |
| Solicite um aumento de limite quando a utilização exceder 80% do limite atual. | À medida que o uso do Azure aumenta, o volume de dados ingeridos provavelmente aumentará. Recomendamos que você solicite um aumento nos limites se a ingestão de dados estiver excedendo ou perto de 80% do limite de ingestão. Para solicitar um aumento de limite, consulte Solicitar um aumento no limite de ingestão. |
| Estime a escala projetada. | À medida que seu uso aumenta e você ingere mais métricas em seu workspace, faça uma estimativa da escala projetada e da taxa de crescimento. Com base em suas projeções, solicite um aumento no limite. |
| Ingestão com gravação remota usando o contêiner sidecar do Azure Monitor. | Se você estiver usando o contêiner do carro lateral do Azure Monitor e a gravação remota para ingerir métricas em um workspace do Azure Monitor, considere os seguintes limites: |
| Limites de DCR/DCE. | Os limites se aplicam às DCR (regras de coleta de dados) e aos DCE (pontos de extremidade de coleta de dados) que enviam métricas do Prometheus para seu workspace do Azure Monitor. Para monitorar esses limites, consulte Exibir e monitorar os limites de DCR. Esses limites não podem ser aumentados. Considere a criação de DCRs e DCEs adicionais para distribuir a carga de ingestão entre vários pontos de extremidade. Essa abordagem ajuda a otimizar o desempenho e garante o manuseio eficiente de dados. Para mais informações sobre como criar DCRs e DCEs, consulte Como criar um Data Collection Endpoint (DCE) personalizado e uma Data Collection Rule (DCR) personalizada para um workspace do Azure Monitor existente para ingerir métricas do Prometheus. |
Como otimizar o desempenho para grandes volumes de dados
Ingestão
Para otimizar a ingestão, considere as seguintes melhores práticas:
| Prática recomendada | Descrição |
|---|---|
| Identificar Métricas de Alta Cardinalidade. | Identifique as métricas que têm alta cardinalidade ou métricas que estão gerando muitas séries temporais. O Azure Monitor Workspace Metrics Usage Insights fornece insights sobre as oportunidades de uso de métricas e otimização de custos fornecendo informações sobre série temporal e uso de eventos. Depois de identificar métricas de alta cardinalidade, otimize-as para reduzir o número de séries temporais, descartando rótulos desnecessários. |
| Use a configuração do Prometheus para otimizar a ingestão. | O Prometheus Gerenciado do Azure fornece Configmaps, que têm configurações que podem ser definidas e usadas para otimizar a ingestão. Para obter mais informações, consulte ama-metrics-settings-configmap e ama-metrics-prometheus-configmap. Essas configurações seguem o mesmo formato do arquivo de configuração do Prometheus. Para obter informações sobre como personalizar a coleta, consulte Personalizar a coleta de métricas do Prometheus no serviço gerenciado do Azure Monitor para Prometheus. Por exemplo, considere o seguinte: scrape_interval e o scrape_timeout com base na criticidade das métricas.metric_relabel_configs para remover rótulos específicos da ingestão. Para obter mais informações, consulte Configuração do Prometheus. |
Use o configmap, altere as configurações conforme necessário e aplique o configmap ao namespace do sistema kube para o cluster. Se estiver usando a gravação remota e o workspace do Azure Monitor, aplique as personalizações durante a ingestão diretamente na configuração do Prometheus.
Perguntas
Para otimizar consultas, considere as seguintes melhores práticas:
Usar regras de gravação para otimizar o desempenho da consulta
As regras de gravação do Prometheus são usadas para pré-compilar consultas usadas com frequência ou computacionalmente caras, tornando-as mais eficientes e mais rápidas para consultar. As regras de gravação são especialmente úteis para métricas de alto volume em que a consulta de dados brutos pode ser lenta e com uso intensivo de recursos. Para obter mais informações, consulte Regras de Gravação. O Azure Managed Prometheus fornece uma maneira gerenciada e escalonável de criar e atualizar regras de gravação com a ajuda dos Grupos de Regras do Prometheus Gerenciados do Azure.
Depois que os grupos de regras são criados, o Azure Managed Prometheus é carregado automaticamente e começa a avaliá-los. Consultar grupos de regras do espaço de trabalho do Azure Monitor, assim como outras métricas do Prometheus.
As regras de gravação têm os seguintes benefícios:
Melhorar o desempenho da consulta As regras de gravação podem ser usadas para pré-compilar consultas complexas, tornando-as mais rápidas para consultar posteriormente. A pré-compilação de consultas complexas reduz a carga no Prometheus quando essas métricas são consultadas.
Eficiência e redução do tempo de consulta As regras de gravação pré-computam os resultados da consulta, reduzindo o tempo necessário para consultar os dados. Isso é especialmente útil para dashboards com múltiplos painéis ou métricas de alta cardinalidade.
Simplicidade As regras de gravação simplificam as consultas no Grafana ou em outras ferramentas de visualização, pois elas podem referenciar métricas pré-computadas.
O exemplo a seguir mostra uma regra de gravação conforme definido no grupo de regras prometheus gerenciado do Azure:
"record": "job:request_duration_seconds:avg ",
"expression": "avg(rate(request_duration_seconds_sum[5m])) by (job)",
"labels": { "workload_type": "job"
},
"enabled": true
Para métricas mais complexas, crie regras de gravação que agregam várias métricas ou realizem cálculos mais avançados. No exemplo a seguir, instance:node_cpu_utilisation:rate5m calcula a utilização da CPU quando a cpu não está ociosa
"record": "instance:node_cpu_utilisation:rate5m",
"expression": "1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\"node\", mode=~\"idle|iowait|steal\"}[5m])))",
"labels": {
"workload_type": "job"
},
"enabled": true
Considere as seguintes melhores práticas para otimizar as regras de gravação:
| Prática recomendada | Descrição |
|---|---|
| Identifique as métricas de alto volume. | Concentre-se nas métricas que são consultadas com frequência e têm uma cardinalidade alta. |
| Otimize o intervalo de avaliação de regra. | Para equilibrar entre a atualização de dados e a carga computacional, ajuste o intervalo de avaliação das regras de gravação. |
| Monitorar o Desempenho. | Monitore o desempenho da consulta e ajuste as regras de gravação conforme necessário. |
| Otimize as regras limitando o escopo. | Para tornar as regras de gravação mais rápidas, limite-as no escopo a um cluster específico. Para obter mais informações, consulte Como limitar regras a um cluster específico. |
Como usar filtros em consultas
Otimizar consultas do Prometheus por meio de filtros envolve refinar as consultas para retornar apenas os dados necessários, reduzindo a quantidade de dados processados e melhorando o desempenho. Veja a seguir algumas técnicas comuns para refinar consultas do Prometheus.
| Prática recomendada | Descrição |
|---|---|
| Use filtros de rótulo. | Os filtros de rótulo ajudam a restringir os dados apenas ao que você precisa. O Prometheus permite filtragem por meio da sintaxe {label_name="label_value"}. Se você tiver um grande número de métricas em vários clusters, uma maneira fácil de limitar a série temporal é usar o filtro cluster.Por exemplo, em vez de consultar container_cpu_usage_seconds_total, filtre por cluster container_cpu_usage_seconds_total{cluster="cluster1"}. |
| Aplique seletores de intervalo de tempo. | O uso de intervalos de tempo específicos pode reduzir significativamente a quantidade de dados consultados. Por exemplo, em vez de consultar todos os pontos de dados dos últimos sete dias http_requests_total{job="myapp"}, consulte a última hora usando http_requests_total{job="myapp"}[1h]. |
| Utilize agregação e agrupamento. | As funções de agregação podem ser usadas para resumir dados, que podem ser mais eficientes do que processar pontos de dados brutos. Ao agregar dados, use by para agrupar por rótulos específicos ou without para excluir rótulos específicos.Por exemplo, soma de solicitações agrupadas por trabalho: sum(rate(http_requests_total[5m])) by (job). |
| Filtre no início da consulta. | Para limitar o conjunto de dados desde o início, aplique filtros o mais cedo possível em sua consulta. Por exemplo, em vez de sum(rate(http_requests_total[5m])) by (job)filtrar primeiro, depois agregue da seguinte maneira: sum(rate(http_requests_total{job="myapp"}[5m])) by (job). |
| Evite regex sempre que possível. | Os filtros regex podem ser poderosos, mas também são computacionalmente caros. Use correspondências exatas sempre que possível. Por exemplo, em vez de http_requests_total{job=~"myapp.*"}, use http_requests_total{job="myapp"}. |
| Use o deslocamento para dados históricos. | Se você estiver comparando dados atuais com dados históricos, use o modificador offset.Por exemplo, para comparar solicitações atuais com solicitações de 24 horas atrás, use rate(http_requests_total[5m]) - rate(http_requests_total[5m] offset 24h). |
| Limite pontos de dados em gráficos. | Ao criar gráficos, limite o número de pontos de dados para melhorar o desempenho de renderização. Use o parâmetro de etapa para controlar a resolução. Por exemplo, no Grafana: defina um valor de etapa mais alto para reduzir os pontos de dados: http_requests_total{job="myapp"}[1h:10s]. |
Consultas paralelas
A execução de um alto número de consultas paralelas no Prometheus pode levar a gargalos de desempenho e pode afetar a estabilidade do servidor Prometheus. Para lidar com um grande volume de consultas paralelas com eficiência, siga as melhores práticas abaixo:
| Prática recomendada | Descrição |
|---|---|
| Distribuição de carga de consulta. | Distribua a carga de consulta espalhando as consultas em intervalos de tempo diferentes ou instâncias do Prometheus. |
| Consultas em zigue-zague. | Agende consultas a serem executadas em intervalos diferentes para evitar picos de execuções simultâneas de consulta. |
Se você ainda estiver vendo problemas com a execução de muitas consultas paralelas, crie um tíquete de suporte para solicitar um aumento nos limites de consulta.
Regras de alerta e gravação
Como otimizar alertas e regras de gravação para alta escala
Alertas e regras de gravação do Prometheus podem ser definidos como grupos de regras do Prometheus. Um grupo de regras pode conter até 20 alertas ou regras de gravação. Crie até 500 grupos de regras para cada workspace para acomodar o número de alertas/regras necessários. Para aumentar esse limite, abra um tíquete de suporte
Ao definir as regras de gravação, leve em conta o intervalo de avaliação para otimizar o número de séries temporais por regra e o desempenho das avaliações de regra. Os intervalos de avaliação podem ser entre 1 minuto e 24 horas. O padrão é 1 minuto.
Use o Resource Health para exibir consultas do status da regra de gravação
Configure o Resource Health para exibir a integridade do grupo de regras do Prometheus no portal. O Resource Health permite detectar problemas nas suas regras de gravação, como configuração incorreta ou problemas de limitação de consulta. Para obter mais informações sobre como configurar o Resource Health, consulte Exibir os estados de integridade de recursos de seus grupos de regras do Prometheus.