Serviço gerido do Azure Monitor para grupos de regras do Prometheus (pré-visualização)
As regras no Prometheus atuam sobre os dados à medida que são recolhidos. Estão configurados como parte de um grupo de regras prometheus, que está armazenado na área de trabalho do Azure Monitor. As regras são executadas sequencialmente pela ordem em que são definidas no grupo.
Tipos de regras
Existem dois tipos de regras prometheus, conforme descrito na tabela seguinte.
Tipo | Descrição |
---|---|
Alerta | As regras de alerta permitem-lhe criar um alerta do Azure Monitor com base nos resultados de uma consulta prometheus Query Language (Prom QL). |
Gravação | As regras de gravação permitem-lhe pré-calcular expressões frequentemente necessárias ou computacionalmente extensas e armazenar o resultado como um novo conjunto de séries temporísticas. A consulta do resultado pré-concluído será, muitas vezes, muito mais rápida do que executar a expressão original sempre que for necessária. Isto é especialmente útil para dashboards, que precisam de consultar a mesma expressão repetidamente sempre que atualizam ou para utilização em regras de alerta, em que várias regras de alerta podem basear-se na mesma consulta complexa. As séries de tempo criadas pelas regras de gravação são ingeridas novamente na área de trabalho do Azure Monitor como novas métricas do Prometheus. |
Ver grupos de regras do Prometheus
Pode ver os grupos de regras e as respetivas regras incluídas no portal do Azure ao selecionar Grupos de regras na área de trabalho do Azure Monitor.
Ativar regras
Para ativar ou desativar uma regra, clique na regra no portal do Azure. Selecione Ativar ou Desativar para alterar o respetivo estado.
Nota
Depois de desativar ou reativar uma regra ou um grupo de regras, a lista de grupos de regras pode demorar alguns minutos a refletir o estado atualizado da regra ou do grupo.
Criar regras do Prometheus
Na pré-visualização pública, os grupos de regras, as regras de gravação e as regras de alerta são configurados com modelos, API e ferramentas de aprovisionamento do Azure Resource Manager (ARM). Esta ação utiliza um novo recurso denominado Grupo de Regras do Prometheus. Pode criar e configurar recursos do grupo de regras onde as regras de alerta e as regras de gravação são definidas como parte das propriedades do grupo de regras. Os grupos de regras do Azure Prometheus são definidos com um âmbito de uma área de trabalho específica do Azure Monitor.
Pode utilizar um modelo de Resource Manager para criar e configurar grupos de regras do Prometheus, regras de alerta e regras de gravação. Resource Manager modelos permitem-lhe configurar programaticamente regras de alerta e gravação de forma consistente e reproduzível nos seus ambientes.
Os passos básicos são os seguintes:
- Utilize os modelos abaixo como um ficheiro JSON que descreve como criar o grupo de regras.
- Implemente o modelo com qualquer método de implementação, como portal do Azure, CLI do Azure, Azure PowerShell ou API Rest.
Limitar regras a um cluster específico
Opcionalmente, pode limitar as regras num grupo de regras para consultar dados provenientes de um cluster específico, utilizando a propriedade do grupo clusterName
de regras.
Deve tentar limitar as regras a um único cluster se a área de trabalho de monitorização contiver uma grande escala de dados de vários clusters e existir uma preocupação de que a execução de um único conjunto de regras em todos os dados possa causar problemas de desempenho ou limitação. Com a clusterName
propriedade, pode criar vários grupos de regras, cada um configurado com as mesmas regras, limitando cada grupo para abranger um cluster diferente.
- O
clusterName
valor tem de ser idêntico àcluster
etiqueta que é adicionada às métricas de um cluster específico durante a recolha de dados. - Se
clusterName
não for especificado para um grupo de regras específico, as regras no grupo consultarão todos os dados na área de trabalho de todos os clusters.
Exemplo de modelo para um grupo de regras do Prometheus
Segue-se um modelo de exemplo que cria um grupo de regras prometheus, incluindo uma regra de gravação e uma regra de alerta. Isto cria um recurso do tipo Microsoft.AlertsManagement/prometheusRuleGroups
. As regras são executadas pela ordem em que aparecem num grupo.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"name": "sampleRuleGroup",
"type": "Microsoft.AlertsManagement/prometheusRuleGroups",
"apiVersion": "2021-07-22-preview",
"location": "northcentralus",
"properties": {
"description": "Sample Prometheus Rule Group",
"scopes": [
"/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.monitor/accounts/<azure-monitor-workspace-name>"
],
"enabled": true,
"clusterName": "<myCLusterName>",
"interval": "PT1M",
"rules": [
{
"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
},
{
"alert": "KubeCPUQuotaOvercommit",
"expression": "sum(min without(resource) (kube_resourcequota{job=\"kube-state-metrics\", type=\"hard\", resource=~\"(cpu|requests.cpu)\"})) / sum(kube_node_status_allocatable{resource=\"cpu\", job=\"kube-state-metrics\"}) > 1.5",
"for": "PT5M",
"labels": {
"team": "prod"
},
"annotations": {
"description": "Cluster has overcommitted CPU resource requests for Namespaces.",
"runbook_url": "https://github.com/kubernetes-monitoring/kubernetes-mixin/tree/master/runbook.md#alert-name-kubecpuquotaovercommit",
"summary": "Cluster has overcommitted CPU resource requests."
},
"enabled": true,
"severity": 3,
"resolveConfiguration": {
"autoResolved": true,
"timeToResolve": "PT10M"
},
"actions": [
{
"actionGroupId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.insights/actiongroups/<action-group-name>"
}
]
}
]
}
}
]
}
As tabelas seguintes descrevem cada uma das propriedades na definição da regra.
Grupo de regras
O grupo de regras terá as seguintes propriedades, quer inclua a regra de alerta, a regra de gravação ou ambas.
Name | Necessário | Tipo | Descrição |
---|---|---|---|
name |
Verdadeiro | string | Nome do grupo de regras prometheus |
type |
Verdadeiro | string | Microsoft.AlertsManagement/prometheusRuleGroups |
apiVersion |
Verdadeiro | string | 2021-07-22-preview |
location |
Verdadeiro | string | Localização de recursos de regiões suportadas na pré-visualização |
properties.description |
Falso | string | Descrição do grupo de regras |
properties.scopes |
Verdadeiro | cadeia[] | Área de trabalho do Azure Monitor de destino. Apenas um âmbito atualmente suportado |
properties.ebabled |
Falso | boolean | Ativar/desativar grupo. A predefinição é verdadeiro. |
properties.clusterName |
Falso | string | Aplicar regra a dados de um cluster específico. A predefinição aplica-se a todos os dados na área de trabalho. |
properties.interval |
Falso | string | Intervalo de avaliação do grupo. Predefinição = PT1M |
Regras de gravação
A rules
secção terá as seguintes propriedades para regras de gravação.
Name | Necessário | Tipo | Descrição |
---|---|---|---|
record |
Verdadeiro | string | Nome da regra de gravação. Este é o nome que será utilizado para a nova série temporal. |
expression |
Verdadeiro | string | Expressão PromQL para calcular o novo valor de série temporal. |
labels |
Verdadeiro | string | As etiquetas de regras prometheus dos pares chave-valor serão adicionadas à série temporal gravada. |
enabled |
Falso | boolean | Ativar/desativar grupo. A predefinição é verdadeiro. |
Regras de alerta
A rules
secção terá as seguintes propriedades para regras de alerta.
Name | Necessário | Tipo | Descrição | Notas |
---|---|---|---|---|
alert |
Falso | string | Nome da regra de alerta | |
expression |
Verdadeiro | string | Expressão PromQL a avaliar. | |
for |
Falso | string | Tempo limite de acionamento de alertas. Valores – "PT1M", "PT5M", etc. | |
labels |
Falso | objeto | etiquetas de pares chave-valor | As etiquetas das regras de alerta do Prometheus serão adicionadas ao alerta acionado. |
rules.annotations |
Falso | objeto | Anota pares chave-valor para adicionar ao alerta. | |
enabled |
Falso | boolean | Ativar/desativar grupo. A predefinição é verdadeiro. | |
rules.severity |
Falso | número inteiro | Gravidade do alerta. 0-4, predefinição é 3 (informativo) | |
rules.resolveConfigurations.autoResolved |
Falso | boolean | Quando ativado, o alerta é resolvido automaticamente quando a condição já não é verdadeira. Predefinição = verdadeiro | |
rules.resolveConfigurations.timeToResolve |
Falso | string | Tempo limite de resolução automática de alertas. Predefinição = "PT5M" | |
rules.action[].actionGroupId |
false | string | Um ou mais IDs de recursos do grupo de ações. Cada um é ativado quando um alerta é acionado. |