

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Gerenciar as notificações de alerta
<a name="v9-alerting-managenotifications"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

Escolher como, quando e para onde enviar as notificações de alerta é uma parte importante da configuração do sistema de alertas. Essas decisões terão um impacto direto na capacidade de resolver problemas rapidamente e não perder nada importante.

Como uma primeira etapa, defina os *pontos de contato*, para onde enviar suas notificações de alerta. Um ponto de contato pode ser um conjunto de destinos para notificações correspondentes. Adicione modelos de notificação aos pontos de contato para reutilização e mensagens consistentes nas notificações.

Em seguida, crie uma *política de notificação*, que é um conjunto de regras para onde, quando e como seus alertas são roteados para os pontos de contato. Em uma política de notificação, você define para onde enviar as notificações de alerta escolhendo um dos pontos de contato que você criou. Adicione tempos de desativação de áudio à política de notificação. O *tempo de desativação de áudio* é um intervalo de tempo recorrente durante o qual você não deseja que nenhuma notificação seja enviada.

Quando uma regra de alerta é avaliada, a régua de alerta envia instâncias de alerta para o Alertmanager. Uma regra de alerta pode acionar várias *instâncias de alerta* individuais.

O Alertmanager recebe essas instâncias de alerta e, em seguida, gerencia os tempos de desativação de áudio, agrupa os alertas e envia as notificações aos seus pontos de contato, conforme definido na política de notificação.

**Topics**
+ [Alertmanager](v9-alerting-managenotifications-alertmanager.md)
+ [Trabalhar com pontos de contato](v9-alerting-contact-points.md)
+ [Trabalhar com políticas de notificação](v9-alerting-notification-policies.md)
+ [Personalizar notificações](v9-alerting-notifications.md)
+ [Silenciar notificações de alerta de fontes de dados do Prometheus](v9-alerting-silences.md)
+ [Tempos de desativação de áudio](v9-alerting-notification-muting.md)
+ [Visualizar e filtrar por grupos de alertas](v9-alerting-viewfiltergroups.md)
+ [Visualizar erros de notificação](v9-alerting-viewnotificationerrors.md)

# Alertmanager
<a name="v9-alerting-managenotifications-alertmanager"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

O Alertmanager permite que você gerencie e responda aos alertas de forma rápida e eficiente. Ele recebe alertas, lida com desativação de áudios, inibição, agrupamento e roteamento enviando notificações pelo canal de sua escolha, por exemplo, e-mail ou Slack.

No Grafana, você pode usar o Grafana Alertmanager ou um Alertmanager externo. Você também pode executar vários alertmanagers. Sua decisão depende da configuração e de onde os alertas estão sendo gerados.

**Grafana Alertmanager**

O Grafana Alertmanager é um Alertmanager interno pré-configurado e disponível para seleção por padrão caso execute o Grafana on-premises ou de código aberto.

O Grafana Alertmanager pode receber alertas do Grafana, mas não pode receber alertas externos ao Grafana, por exemplo, do Mimir ou Loki.

**nota**  
As regras de inibição não são compatíveis com o Grafana Alertmanager.

**Alertmanager externo**

Se você quiser usar um único alertmanager para receber todos os alertas do Grafana, Loki, Mimir e Prometheus, você pode configurar o Grafana para usar um Alertmanager externo. Esse Alertmanager externo pode ser configurado e administrado no próprio Grafana.

Veja abaixo dois exemplos de quando você pode querer configurar seu próprio alertmanager externo e enviar os alertas para ele em vez de para o Grafana Alertmanager:

1. Você já tem alertmanagers on-premises em sua própria infraestrutura de nuvem que configurou e ainda deseja usar, porque você tem outros geradores de alertas, como o Prometheus.

1. Você deseja usar o Prometheus on-premises e o Grafana hospedado para enviar alertas para o mesmo alertmanager que é executado em sua infraestrutura de nuvem.

Os alertmanagers estão visíveis no menu suspenso nas páginas Pontos de contato de alertas e Políticas de notificação.

Se você estiver provisionando a fonte de dados, defina o sinalizador `handleGrafanaManagedAlerts` no campo `jsonData` como `true` para enviar alertas gerenciados pelo Grafana para esse Alertmanager.

# Trabalhar com pontos de contato
<a name="v9-alerting-contact-points"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

Use pontos de contato para definir como os contatos serão notificados quando um alerta for iniciado. Um ponto de contato pode ter uma ou mais integrações de pontos de contato, por exemplo, Amazon Simple Notification Service ou Slack. Quando um alerta é iniciado, uma notificação é enviada para todas as integrações de pontos de contato listadas para um ponto de contato. Opcionalmente, use [modelos de notificação](v9-alerting-create-templates.md) para personalizar as mensagens de notificação para os tipos de pontos de contato.

**nota**  
Você pode criar e editar pontos de contato para alertas gerenciados pelo Grafana. Os pontos de contato dos alertas do Alertmanager são somente leitura.

## Trabalhar com pontos de contato
<a name="v9-alerting-working-contact-points"></a>

Os procedimentos a seguir detalham como adicionar, editar, testar e excluir pontos de contato.

**Para adicionar um ponto de contato**

1. No console do Grafana, no menu do Grafana, escolha o ícone de **Alertas** (sino) para abrir a página **Alertas**.

1. Escolha **Pontos de contato** e, em seguida, **Adicionar ponto de contato**.

1. No menu suspenso do **Alertmanager**, selecione um Alertmanager. O Grafana Alertmanager é selecionado por padrão.

1. Insira um **Nome** para o ponto de contato.

1. Em **Integração de ponto de contato**, escolha um tipo e os campos obrigatórios com base nesse tipo. Por exemplo, se você escolher o Slack, insira os canais e os usuários do Slack que devem ser contatados.

1. Se disponível para o ponto de contato selecionado, escolha as ** configurações opcionais** desejadas para especificar configurações adicionais.

1. Em **Configurações de notificação**, selecione opcionalmente **Desabilitar mensagem resolvida** se não quiser ser notificado quando um alerta for resolvido.

1. Se o ponto de contato precisar de mais tipos de pontos de contato, você pode escolher **Adicionar integração de ponto de contato** e repetir as etapas para cada tipo de ponto de contato necessário.

1. Escolha **Salvar ponto de contato** para salvar as alterações.

**Para editar um ponto de contato**

1. Escolha **Pontos de contato** para ver uma lista dos pontos de contato existentes.

1. Selecione o ponto de contato a ser editado e, em seguida, escolha o ícone de **Editar** (caneta).

1. Faça as alterações necessárias e escolha **Salvar ponto de contato** para salvar as alterações.

Depois que seu ponto de contato for criado, você poderá enviar uma notificação de teste para verificar se ele está configurado corretamente.

**Para enviar uma notificação de teste**

1. Escolha **Pontos de contato** para abrir a lista de pontos de contato existentes.

1. Selecione o ponto de contato a ser testado e, em seguida, escolha o ícone de **Editar** (caneta).

1. Selecione o ícone de **Teste** (avião de papel).

1. Escolha se deseja enviar uma notificação de teste predefinida ou escolha **Personalizado** para adicionar suas próprias anotações e rótulos personalizados na notificação de teste.

1. Escolha **Enviar notificação de teste** para testar o alerta com os pontos de contato fornecidos.

Você pode excluir pontos de contato que não estão sendo usados por uma política de notificação.

**Para excluir um ponto de contato**

1. Escolha **Pontos de contato** para abrir a lista de pontos de contato existentes.

1. Selecione o ponto de contato a ser excluído e escolha o ícone de **Excluir** (lixeira).

1. Na caixa de diálogo de confirmação, escolha **Sim, excluir**.

**nota**  
Se o ponto de contato estiver sendo usado por uma política de notificação, você deverá excluir ou editar a política de notificação para usar outro ponto de contato antes de excluí-lo.

## Lista de notificadores compatíveis
<a name="v9-alerting-contactpoint-supported-notifiers"></a>


|  Nome  |  Tipo  | 
| --- | --- | 
| Amazon SNS  |  sns  | 
|  OpsGenie  |  opsgenie  | 
| PagerDuty  |  pagerduty  | 
| Slack  |  slack  | 
|  VictorOps  |  victorops  | 

# Trabalhar com políticas de notificação
<a name="v9-alerting-notification-policies"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

As políticas de notificação determinam como os alertas são roteados para os pontos de contato. As políticas têm uma estrutura em árvore, em que cada política pode ter uma ou mais políticas secundárias. Cada política, exceto a política raiz, também pode corresponder a rótulos de alerta específicos. Cada alerta é avaliado pela política raiz e depois por cada política secundária. Se você habilitar a opção `Continue matching subsequent sibling nodes` para uma política específica, a avaliação continuará mesmo após uma ou mais correspondências. As configurações de uma política principal e as informações do ponto de contato controlam o comportamento de um alerta que não corresponde a nenhuma das políticas secundárias. Uma política raiz controla qualquer alerta que não corresponda a uma política específica.

**nota**  
Você pode criar e editar políticas de notificação para alertas gerenciados pelo Grafana. As políticas de notificação para alertas do Alertmanager são somente leitura.

**Notificações de agrupamento**

O agrupamento categoriza as notificações de alerta de natureza semelhante em um único funil. Isso permite que você controle as notificações de alerta durante interrupções maiores, quando muitas partes de um sistema falham ao mesmo tempo, fazendo com que um grande número de alertas seja iniciado simultaneamente.

**Exemplo de agrupamento**

Suponha que você tenha cem serviços conectados a um banco de dados em diferentes ambientes. Esses serviços são diferenciados pelo rótulo `env=environmentname`. Existe uma regra de alerta para monitorar se os serviços podem acessar o banco de dados. A regra de alerta cria alertas denominados `alertname=DatabaseUnreachable`.

Se ocorrer uma partição de rede, em que metade dos serviços não consiga mais acessar o banco de dados, 50 alertas diferentes serão iniciados. Para essa situação, você deseja receber uma notificação de uma única página (em vez de 50) com uma lista dos ambientes afetados.

Você pode configurar o agrupamento para ser `group_by: [alertname]` (sem usar o rótulo `env`, que é diferente para cada serviço). Com essa configuração em vigor, o Grafana envia uma única notificação compacta que contém todos os ambientes afetados por essa regra de alerta.

**Grupos especiais**

O Grafana tem dois grupos especiais. O grupo padrão, `group_by: null` agrupa *todos* os alertas em um único grupo. Você também pode usar um rótulo especial denominado `...` para agrupar alertas por todos os rótulos, desabilitando efetivamente o agrupamento e enviando cada alerta para seu próprio grupo.

## Trabalhar com notificações
<a name="v9-alerting-notification-policies-working"></a>

Os procedimentos a seguir mostram como criar e gerenciar políticas de notificação.

**Para editar a política de notificação raiz**

1. No console do Grafana, no menu do Grafana, escolha o ícone de **Alertas** (sino) para abrir a página **Alertas**.

1. Escolha **Políticas de notificação**.

1. No menu suspenso do **Alertmanager**, selecione o Alertmanager que deseja editar.

1. Na seção **Política raiz**, escolha o ícone de **Editar** (caneta).

1. Em **Ponto de contato padrão**, atualize o ponto de contato para o qual as notificações devem ser enviadas para as regras quando as regras de alerta não corresponderem a nenhuma política específica.

1. Em **Agrupar por**, escolha os rótulos (ou grupos especiais) pelos quais agrupar os alertas.

1. Em **Opções de tempo**, selecione uma das opções a seguir.
   + **Espera em grupo**: tempo de espera para armazenar em buffer alertas do mesmo grupo antes de enviar uma notificação inicial. O padrão é 30 segundos.
   + **Intervalo de grupo**: intervalo mínimo de tempo entre duas notificações para um grupo. O padrão é 5 minutos.
   + **Intervalo de repetição**: intervalo mínimo de tempo antes de reenviar uma notificação, caso nenhum novo alerta tenha sido adicionado ao grupo. O padrão é quatro horas.

1. Escolha **Salvar** para salvar as alterações.

**Para adicionar uma nova política específica de alto nível**

1. No console do Grafana, no menu do Grafana, escolha o ícone de **Alertas** (sino) para abrir a página **Alertas**.

1. Escolha **Políticas de notificação**.

1. No menu suspenso do **Alertmanager**, selecione o Alertmanager que deseja editar.

1. Na seção **Roteamento específico**, escolha **Nova política específica**.

1. Na seção **Rótulos correspondentes**, adicione um ou mais rótulos de alerta correspondentes. Veja outras informações sobre correspondência de rótulos mais adiante neste tópico.

1. Em **Ponto de contato**, adicione o ponto de contato para o qual enviar notificações se o alerta corresponder a essa política específica. As políticas aninhadas substituem esse ponto de contato.

1. Opcionalmente, habilite **Continuar correspondendo os nós irmãos subsequentes** para continuar correspondendo as políticas irmãs mesmo depois que o alerta tiver correspondido à política atual. Quando essa política está habilitada, você pode receber mais de uma notificação para o mesmo alerta.

1. Opcionalmente, selecione **Substituir agrupamento** para especificar um agrupamento diferente da política raiz.

1. Opcionalmente, selecione **Substituir tempos gerais** para substituir as opções de tempo na política de notificação de grupo.

1. Para salvar suas alterações, selecione **Salvar política**.

**Para adicionar uma política aninhada**

1. Expanda a política específica na qual você deseja criar uma política aninhada.

1. Escolha **Adicionar política aninhada** e, em seguida, adicione os detalhes (como ao adicionar uma política específica de nível superior).

1. Para salvar suas alterações, selecione **Salvar política**.

**Para editar uma política específica**

1. Na página **Alertas**, escolha **Políticas de notificação** para abrir a página que lista as políticas existentes.

1. Selecione a política que deseja editar e depois escolha o ícone de **Editar** (caneta).

1. Faça qualquer alteração (como ao adicionar uma política específica de nível superior).

1. Escolha **Salvar política**.

**Pesquisar políticas**

Você pode pesquisar na árvore de políticas por *Matchers de rótulos* ou *pontos de contato*.
+ Para pesquisar por ponto de contato, insira um nome parcial ou completo de um ponto de contato no campo **Pesquisar por ponto de contato**.
+ Para pesquisar por rótulo, insira um matcher de rótulos válido no campo **Pesquisar por rótulo**. Vários matchers podem ser inseridos, separados por uma vírgula. Por exemplo, uma entrada de matcher válida pode ser `severity=high, region=~EMEA|NA`.
**nota**  
Ao pesquisar por rótulo, todas as políticas correspondentes serão exatamente iguais. Correspondências parciais e correspondências no estilo regex não são compatíveis.

**Como funciona a correspondência de rótulos**

Uma política corresponderá a um alerta se os rótulos do alerta corresponderem a todos os *rótulos correspondentes* especificados na política.
+ **Rótulo**: o nome do rótulo correspondente. Ele deve corresponder exatamente ao nome do rótulo do alerta.
+ **Operador**: o operador usado para comparar o valor do rótulo com o valor do rótulo correspondente. Os operadores disponíveis são:
  + `=` Selecione rótulos cujo valor corresponda exatamente à string fornecida.
  + `!=` Selecione rótulos cujo valor não corresponda à string fornecida.
  + `=~` Selecione rótulos cujo valor corresponda ao valor interpretado pelo regex da string fornecida (a string fornecida é interpretada como uma expressão regular).
  + `!=` Selecione rótulos que não correspondam à expressão regular fornecida.
+ **Valor**: o valor ao qual corresponder ao valor do rótulo. Pode corresponder como uma string ou como uma expressão regular, dependendo do operador escolhido.

# Personalizar notificações
<a name="v9-alerting-notifications"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

Personalize suas notificações com modelos de notificações.

Você pode usar modelos de notificação para alterar o título, a mensagem e o formato da mensagem em suas notificações.

Os modelos de notificação não estão vinculados a integrações específicas de pontos de contato, como e-mail ou Slack. Porém, você pode optar por criar modelos de notificação separados para diferentes integrações de pontos de contato.

Você pode usar modelos de notificação para:
+ Adicionar, remover ou reordenar informações na notificação, incluindo o resumo, a descrição, os rótulos e anotações, os valores e os links
+ Formatar texto em negrito e itálico e adicionar ou remover quebras de linha

Você não pode não usar modelos de notificação para:
+ Alterar o design das notificações em serviços de mensagens instantâneas, como o Slack e o Microsoft Teams

**Topics**
+ [Usar a linguagem de modelos do Go](v9-alerting-notifications-go-templating.md)
+ [Criar modelos de notificações](v9-alerting-create-templates.md)
+ [Referência do modelo](v9-alerting-template-reference.md)

# Usar a linguagem de modelos do Go
<a name="v9-alerting-notifications-go-templating"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

Você escreve modelos de notificação na linguagem de modelos do Go, [texto/modelo](https://pkg.go.dev/text/template).

Esta seção fornece uma visão geral da linguagem de modelos e dos modelos de escrita do Go em texto/modelo.

## Ponto
<a name="v9-go-dot"></a>

 text/template Há um cursor especial chamado ponto e é escrito como`.`. Você pode pensar nesse cursor como uma variável cujo valor muda dependendo de onde ele é usado no modelo. Por exemplo, no início de um modelo de notificação, `.` refere-se ao objeto `ExtendedData`, que contém vários campos, incluindo `Alerts`, `Status`, `GroupLabels`, `CommonLabels`, `CommonAnnotations` e `ExternalURL`. No entanto, ponto pode se referir a outra coisa quando usado em um `range` em uma lista, quando usado dentro de um `with` ou ao escrever modelos de recursos para serem usados em outros modelos. Você pode ver exemplos disso em [Criar modelos de notificações](v9-alerting-create-templates.md), e todos os dados e funções na [Referência do modelo](v9-alerting-template-reference.md).

## Tags de abertura e fechamento
<a name="v9-go-openclosetags"></a>

Em texto/modelo, os modelos começam com `{{` e terminam com `}}`, independentemente de o modelo imprimir uma variável ou executar estruturas de controle, como instruções if. Isso é diferente de outras linguagens de modelos, como Jinja, em que a impressão de uma variável usa `{{` e `}}` e as estruturas de controle usam `{%` e `%}`.

## Print (Imprimir)
<a name="v9-go-print"></a>

Para imprimir o valor de algo, use `{{` e `}}`. Você pode imprimir o valor do ponto, um campo do ponto, o resultado de uma função e o valor de uma [variável](#v9-go-variables). Por exemplo, para imprimir o campo `Alerts` em que o ponto se refere a `ExtendedData`, você escreve o seguinte:

```
{{ .Alerts }}
```

## Iterar em alertas
<a name="v9-go-iterate-alerts"></a>

Para imprimir apenas os rótulos de cada alerta, em vez de todas as informações sobre o alerta, você pode usar um `range` para iterar os alertas em`ExtendedData`:

```
{{ range .Alerts }}
{{ .Labels }}
{{ end }}
```

Dentro do intervalo, o ponto não mais se refere a `ExtendedData`, mas a um `Alert`. Você pode usar `{{ .Labels }}` para imprimir os rótulos de cada alerta. Isso funciona porque `{{ range .Alerts }}` altera o ponto para se referir ao alerta atual na lista de alertas. Quando o intervalo termina, o ponto é redefinido para o valor que tinha antes do início do intervalo, que neste exemplo é `ExtendedData`:

```
{{ range .Alerts }}
{{ .Labels }}
{{ end }}
{{/* does not work, .Labels does not exist here */}}
{{ .Labels }}
{{/* works, cursor was reset */}}
{{ .Status }}
```

## Iterar em anotações e rótulos
<a name="v9-go-iterate-labels"></a>

Vamos escrever um modelo para imprimir os rótulos de cada alerta no formato `The name of the label is $name, and the value is $value`, em que `$name` e `$value` contêm o nome e o valor de cada rótulo.

Como no exemplo anterior, use um intervalo para iterar nos alertas em `.Alerts` de forma que o ponto se refira ao alerta atual na lista de alertas e, em seguida, use um segundo intervalo nos rótulos classificados para que o ponto seja atualizado uma segunda vez para se referir ao rótulo atual. Dentro do segundo intervalo, use `.Name` e `.Value` para imprimir o nome e o valor de cada rótulo:

```
{{ range .Alerts }}
{{ range .Labels.SortedPairs }}
The name of the label is {{ .Name }}, and the value is {{ .Value }}
{{ end }}
{{ range .Annotations.SortedPairs }}
The name of the annotation is {{ .Name }}, and the value is {{ .Value }}
{{ end }}
{{ end }}
```

## Instruções If
<a name="v9-go-if"></a>

Você pode usar instruções if em modelos. Por exemplo, para imprimir `There are no alerts` se não houver alertas em `.Alerts`, você escreve o seguinte:

```
{{ if .Alerts }}
There are alerts
{{ else }}
There are no alerts
{{ end }}
```

## With
<a name="v9-go-with"></a>

With é semelhante às instruções if, porém, diferentemente das instruções if, o `with` atualiza o ponto para se referir ao valor do with:

```
{{ with .Alerts }}
There are {{ len . }} alert(s)
{{ else }}
There are no alerts
{{ end }}
```

## Variáveis
<a name="v9-go-variables"></a>

As variáveis em text/template devem ser criadas dentro do modelo. Por exemplo, para criar uma variável chamada `$variable` com o valor atual de ponto, você escreve o seguinte:

```
{{ $variable := . }}
```

Você pode usar `$variable` dentro de um intervalo ou `with` e vai se referir ao valor do ponto no momento em que a variável foi definida, não ao valor atual do ponto.

Por exemplo, você não pode escrever um modelo que use `{{ .Labels }}` no segundo intervalo porque aqui o ponto se refere ao rótulo atual, não ao alerta atual:

```
{{ range .Alerts }}
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{/* does not work because in the second range . is a label not an alert */}}
There are {{ len .Labels }}
{{ end }}
{{ end }}
```

Você pode corrigir isso definindo uma variável chamada `$alert` no primeiro intervalo e antes do segundo intervalo:

```
{{ range .Alerts }}
{{ $alert := . }}
{{ range .Labels.SortedPairs }}
{{ .Name }} = {{ .Value }}
{{/* works because $alert refers to the value of dot inside the first range */}}
There are {{ len $alert.Labels }}
{{ end }}
{{ end }}
```

## Intervalo com índice
<a name="v9-go-rangeindex"></a>

Você pode obter o índice de cada alerta em um intervalo definindo variáveis de índice e valor no início do intervalo:

```
{{ $num_alerts := len .Alerts }}
{{ range $index, $alert := .Alerts }}
This is alert {{ $index }} out of {{ $num_alerts }}
{{ end }}
```

## Definir modelos
<a name="v9-go-define"></a>

Você pode definir modelos que podem ser usados em outros modelos, usando `define` e o nome do modelo entre aspas duplas. Você não deve definir modelos com o mesmo nome de outros modelos, incluindo modelos padrão, como `__subject`, `__text_values_list`, `__text_alert_list`, `default.title` e `default.message`. Quando um modelo foi criado com o mesmo nome de um modelo padrão, ou um modelo em outro modelo de notificação, o Grafana pode usar qualquer um dos modelos. O Grafana não impossibilita nem mostra uma mensagem de erro quando há dois ou mais modelos com o mesmo nome.

```
{{ define "print_labels" }}
{{ end }}
```

## Incorporar modelos
<a name="v9-go-embed"></a>

Você pode incorporar um modelo definido em seu modelo usando `template`, o nome do modelo entre aspas duplas e o cursor que deve ser passado para o modelo:

```
{{ template "print_labels" . }}
```

## Passar dados para modelos
<a name="v9-go-passdata"></a>

Em um modelo, o ponto refere-se ao valor que é passado para o modelo.

Por exemplo, se um modelo receber uma lista de alertas disparados, o ponto então vai se referir a essa lista de alertas disparados:

```
{{ template "print_alerts" .Alerts }}
```

Se o modelo receber os rótulos classificados para um alerta, o ponto então vai se referir à lista de rótulos classificados:

```
{{ template "print_labels" .SortedLabels }}
```

Isso é útil ao escrever modelos reutilizáveis. Por exemplo, para imprimir todos os alertas, você pode escrever o seguinte:

```
{{ template "print_alerts" .Alerts }}
```

Depois, para imprimir apenas os alertas disparados, você pode escrever o seguinte:

```
{{ template "print_alerts" .Alerts.Firing }}
```

Isso funciona porque tanto `.Alerts` como `.Alerts.Firing` são listas de alertas.

```
{{ define "print_alerts" }}
{{ range . }}
{{ template "print_labels" .SortedLabels }}
{{ end }}
{{ end }}
```

## Comentários
<a name="v9-go-comments"></a>

Você pode adicionar comentários com `{{/*` e `*/}}`:

```
{{/* This is a comment */}}
```

Para evitar que comentários adicionem quebras de linha, use:

```
{{- /* This is a comment with no leading or trailing line breaks */ -}}
```

## Recuo
<a name="v9-go-indentation"></a>

Você pode usar recuo, tabs e espaços e quebras de linha para tornar os modelos mais legíveis:

```
{{ range .Alerts }}
  {{ range .Labels.SortedPairs }}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

No entanto, o recuo no modelo também estará presente no texto. A seguir, veremos como removê-lo.

## Remover espaços e quebras de linha
<a name="v9-go-removespace"></a>

Em text/template uso `{{-` e `-}}` para remover espaços à esquerda e à direita e quebras de linha.

Por exemplo, ao usar recuo e quebras de linha para tornar um modelo mais legível:

```
{{ range .Alerts }}
  {{ range .Labels.SortedPairs }}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

O recuo e as quebras de linha também estarão presentes no texto:

```
    alertname = "Test"

    grafana_folder = "Test alerts"
```

Você pode remover o recuo e as quebras de linha do texto, alterando `}}` para `-}}` no início de cada intervalo:

```
{{ range .Alerts -}}
  {{ range .Labels.SortedPairs -}}
    {{ .Name }} = {{ .Value }}
  {{ end }}
{{ end }}
```

O recuo e as quebras de linha no modelo agora estão ausentes do texto:

```
alertname = "Test"
grafana_folder = "Test alerts"
```

# Criar modelos de notificações
<a name="v9-alerting-create-templates"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

Crie modelos de notificação reutilizáveis para enviar aos pontos de contato.

Você pode adicionar um ou mais modelos ao modelo de notificação.

O nome do modelo de notificação deve ser exclusivo. Você não pode ter dois modelos com o mesmo nome no mesmo modelo de notificação ou em modelos de notificação diferentes. Evite definir modelos com o mesmo nome dos modelos padrão, como: `__subject`, `__text_values_list`, `__text_alert_list`, `default.title` e `default.message`.

Na guia Pontos de contato, você pode ver uma lista dos modelos de notificação.

## Criar modelos de notificação
<a name="v9-alerting-creating-templates"></a>

**Para criar um modelo de notificação**

1. Clique em **Adicionar modelo**.

1. Escolha um nome para o modelo de notificação, como `email.subject`.

1. Escreva o conteúdo do modelo no campo de conteúdo.

   Por exemplo:

   ```
   {{ if .Alerts.Firing -}}
      {{ len .Alerts.Firing }} firing alerts
      {{ end }}
      {{ if .Alerts.Resolved -}}
      {{ len .Alerts.Resolved }} resolved alerts
      {{ end }}
   ```

1. Clique em Salvar.

   `{{ define "email.subject" }}` (em que `email.subject` é o nome do seu modelo) e `{{ end }}` é automaticamente adicionado ao início e ao final do conteúdo.

**Para criar um modelo de notificação que contenha mais de um modelo:**

1. Clique em **Adicionar modelo**.

1. Insira um nome para o modelo geral de notificação. Por exemplo, .`email`

1. Escreva cada modelo no campo Conteúdo, incluindo `{{ define "name-of-template" }}` e `{{ end }}` no início e no final de cada modelo. Você pode usar nomes descritivos para cada um dos modelos no modelo de notificação, por exemplo, `email.subject` ou `email.message`. Nesse caso, não reutilize o nome do modelo de notificação inserido acima.

   As seções a seguir mostram exemplos detalhados de modelos que você pode criar.

1. Clique em Salvar.

## Criar um modelo para o assunto de um e-mail
<a name="v9-alerting-create-template-subject"></a>

Crie um modelo para o assunto de um e-mail que contenha o número de alertas disparados e resolvidos, como neste exemplo:

```
1 firing alerts, 0 resolved alerts
```

**Para criar um modelo para o assunto de um e-mail**

1. Crie um arquivo denominado `email.subject` com o seguinte conteúdo:

   ```
   {{ define "email.subject" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. Use o modelo ao criar sua integração de ponto de contato, colocando-a no campo **Assunto** com a palavra-chave `template`.

   ```
   {{ template "email.subject" . }}
   ```

## Criar um modelo para a mensagem de um e-mail
<a name="v9-alerting-create-template-message"></a>

Crie um modelo para a mensagem de um e-mail que contenha um resumo de todos os alertas disparados e resolvidos, como neste exemplo:

```
There are 2 firing alerts, and 1 resolved alerts

Firing alerts:

- alertname=Test 1 grafana_folder=GrafanaCloud has value(s) B=1
- alertname=Test 2 grafana_folder=GrafanaCloud has value(s) B=2

Resolved alerts:

- alertname=Test 3 grafana_folder=GrafanaCloud has value(s) B=0
```

**Para criar um modelo para a mensagem de um e-mail**

1. Crie um modelo de notificação denominado `email` com dois modelos no conteúdo: `email.message_alert` e `email.message`.

   O modelo `email.message_alert` é usado para imprimir os rótulos e os valores de cada alerta disparado e resolvido, enquanto o modelo `email.message` contém a estrutura do e-mail.

   ```
   {{- define "email.message_alert" -}}
   {{- range .Labels.SortedPairs }}{{ .Name }}={{ .Value }} {{ end }} has value(s)
   {{- range $k, $v := .Values }} {{ $k }}={{ $v }}{{ end }}
   {{- end -}}
   
   {{ define "email.message" }}
   There are {{ len .Alerts.Firing }} firing alerts, and {{ len .Alerts.Resolved }} resolved alerts
   
   {{ if .Alerts.Firing -}}
   Firing alerts:
   {{- range .Alerts.Firing }}
   - {{ template "email.message_alert" . }}
   {{- end }}
   {{- end }}
   
   {{ if .Alerts.Resolved -}}
   Resolved alerts:
   {{- range .Alerts.Resolved }}
   - {{ template "email.message_alert" . }}
   {{- end }}
   {{- end }}
   
   {{ end }}
   ```

1. Use o modelo ao criar a integração de ponto de contato, colocando-a no campo **Corpo do texto** com a palavra-chave `template`.

   ```
   {{ template "email.message" . }}
   ```

## Criar um modelo para o título de uma mensagem do Slack
<a name="v9-alerting-create-template-slack-title"></a>

Crie um modelo para o título de uma mensagem do Slack que contenha o número de alertas disparados e resolvidos, como no seguinte exemplo:

```
1 firing alerts, 0 resolved alerts
```

**Para criar um modelo para o título de uma mensagem do Slack**

1. Crie um arquivo denominado `slack.title` com o seguinte conteúdo:

   ```
   {{ define "slack.title" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. Use o modelo ao criar a integração de ponto de contato, colocando-a no campo **Título** com a palavra-chave `template`.

   ```
   {{ template "slack.title" . }}
   ```

## Criar um modelo para o conteúdo de uma mensagem do Slack
<a name="v9-alerting-create-template-slack-message"></a>

Crie um modelo para o conteúdo de uma mensagem do Slack que contenha uma descrição de todos os alertas disparados e resolvidos, incluindo os rótulos, as anotações e o URL do dashboard:

```
1 firing alerts:

[firing] Test1
Labels:
- alertname: Test1
- grafana_folder: GrafanaCloud
Annotations:
- description: This is a test alert
Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1

1 resolved alerts:

[firing] Test2
Labels:
- alertname: Test2
- grafana_folder: GrafanaCloud
Annotations:
- description: This is another test alert
Go to dashboard: https://example.com/d/dlhdLqF4z?orgId=1
```

**Para criar um modelo para o conteúdo de uma mensagem do Slack**

1. Crie um modelo denominado `slack` com dois modelos no conteúdo: `slack.print_alert` e `slack.message`.

   O modelo `slack.print_alert` é usado para imprimir os rótulos, as anotações e o DashboardURL, enquanto o modelo `slack.message` contém a estrutura da notificação.

   ```
   {{ define "slack.print_alert" -}}
   [{{.Status}}] {{ .Labels.alertname }}
   Labels:
   {{ range .Labels.SortedPairs -}}
   - {{ .Name }}: {{ .Value }}
   {{ end -}}
   {{ if .Annotations -}}
   Annotations:
   {{ range .Annotations.SortedPairs -}}
   - {{ .Name }}: {{ .Value }}
   {{ end -}}
   {{ end -}}
   {{ if .DashboardURL -}}
     Go to dashboard: {{ .DashboardURL }}
   {{- end }}
   {{- end }}
   
   {{ define "slack.message" -}}
   {{ if .Alerts.Firing -}}
   {{ len .Alerts.Firing }} firing alerts:
   {{ range .Alerts.Firing }}
   {{ template "slack.print_alert" . }}
   {{ end -}}
   {{ end }}
   {{ if .Alerts.Resolved -}}
   {{ len .Alerts.Resolved }} resolved alerts:
   {{ range .Alerts.Resolved }}
   {{ template "slack.print_alert" .}}
   {{ end -}}
   {{ end }}
   {{- end }}
   ```

1. Use o modelo ao criar a integração de ponto de contato, colocando-a no campo **Corpo do texto** com a palavra-chave `template`.

   ```
   {{ template "slack.message" . }}
   ```

## Criar modelos para o e-mail e Slack com modelos compartilhados
<a name="v9-alerting-create-shared-templates"></a>

Em vez de criar modelos de notificação separados para cada ponto de contato, como e-mail e Slack, você pode compartilhar o mesmo modelo.

Por exemplo, se você quiser enviar um e-mail com esse assunto e uma mensagem do Slack com este título `1 firing alerts, 0 resolved alerts`, você pode criar um modelo compartilhado.

**Para criar um modelo compartilhado**

1. Crie um arquivo denominado `common.subject_title` com o seguinte conteúdo:

   ```
   {{ define "common.subject_title" }}
   {{ len .Alerts.Firing }} firing alerts, {{ len .Alerts.Resolved }} resolved alerts
   {{ end }}
   ```

1. Para e-mail, execute o modelo no campo de assunto na integração do ponto de contato de e-mail:

   ```
   {{ template "common.subject_title" . }}
   ```

1. Para o Slack, execute o modelo no campo de título na integração do ponto de contato do Slack:

   ```
   {{ template "common.subject_title" . }}
   ```

## Usar modelos de notificações
<a name="v9-alerting-use-notification-templates"></a>

Use modelos em pontos de contato para personalizar as notificações.

**Para usar um modelo ao criar um ponto de contato**

1. No menu **Alertas**, escolha **Pontos de contato** para ver uma lista dos pontos de contato existentes.

1. Escolha **Adicionar ponto de contato**. Como alternativa, você pode editar um ponto de contato existente escolhendo o ícone de **Editar** (caneta) ao lado do ponto de contato que você deseja editar.

1. Insira os modelos que você deseja usar em um ou mais campos, como **Mensagem** ou **Assunto**. Para inserir um modelo, use o formulário`{{ template "template_name" . }}`, *template\$1name* substituindo-o pelo nome do modelo que você deseja usar.

1. Clique em **Salvar ponto de contato**.

# Referência do modelo
<a name="v9-alerting-template-reference"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

Esta seção fornece informações de referência para criar os modelos.

## Dados do modelo
<a name="v9-alerting-template-data"></a>

Os dados a seguir são passados para os modelos de mensagem.


| Nome | Tipo | Observações | 
| --- | --- | --- | 
|  `Receiver`  |  string  |  Nome do ponto de contato para o qual a notificação está sendo enviada.  | 
|  `Status`  |  string  |  disparado se pelo menos um alerta estiver sendo disparado, caso contrário, resolvido.  | 
|  `Alerts`  |  Alerta  |  Lista de objetos de alerta incluídos nessa notificação (veja abaixo).  | 
|  `GroupLabels`  |  KeyValue  |  Rótulos pelos quais esses alertas foram agrupados.  | 
|  `CommonLabels`  |  KeyValue  |  Rótulos comuns a todos os alertas incluídos nessa notificação.  | 
|  `CommonAnnotations`  |  KeyValue  |  Anotações comuns a todos os alertas incluídos nessa notificação.  | 
|  `ExternalURL`  |  string  |  Link de retorno para o Grafana que enviou a notificação. Se estiver usando o Alertmanager externo, volte para ele.  | 

O tipo `Alerts` expõe duas funções para filtrar os alertas retornados.
+ `Alerts.Firing`: retorna uma lista de alertas disparados.
+ `Alerts.Resolved`: retorna uma lista de alertas resolvidos.

**Alerta (tipo)**

O tipo de alerta contém os dados a seguir.


| Nome | Tipo | Observações | 
| --- | --- | --- | 
|  Status  |  string  |  `firing` ou `resolved`.  | 
|  Rótulos  |  KeyValue  |  Um conjunto de rótulos anexados ao alerta.  | 
|  Anotações  |  KeyValue  |  Um conjunto de anotações anexadas ao alerta.  | 
| Valores | KeyValue | Os valores de todas as expressões, incluindo as condições clássicas | 
|  StartsAt  |  time.Time  |  Hora em que o alerta começou a disparar.  | 
|  EndsAt  |  time.Time  |  Definido somente se a hora de término de um alerta for conhecida. Caso contrário, defina um período de tempo limite configurável a partir do momento em que o último alerta foi recebido.  | 
|  GeneratorURL  |  string  |  Um link de retorno para o Grafana ou para o Alertmanager externo.  | 
|  SilenceURL  |  string  |  Um link para silenciar o alerta (com rótulos para esse alerta pré-preenchidos). Somente para alertas gerenciados pelo Grafana.  | 
|  DashboardURL  |  string  |  Link para o dashboard do Grafana, se a regra de alerta pertencer a um. Somente para alertas gerenciados pelo Grafana.  | 
|  PanelURL  |  string  |  Link para o painel do dashboard do Grafana, se a regra de alerta pertencer a um. Somente para alertas gerenciados pelo Grafana.  | 
|  Impressão digital  |  string  |  Impressão digital que pode ser usada para identificar o alerta.  | 
|  ValueString  |  string  |  Uma string que contém os rótulos e o valor de cada expressão reduzida no alerta.  | 

 **ExtendedData**

O ExtendedData objeto contém as seguintes propriedades.


| Nome | Tipo | Description | Exemplo | 
| --- | --- | --- | --- | 
|  Receptor  |  `string`  |  O nome do ponto de contato que envia a notificação.  |  `{{ .Receiver }}`  | 
|  Status  |  `string`  |  O status é `firing if at least one alert is firing, otherwise resolved.`  |  `{{ .Status }}`  | 
|  Alertas  |  `[]Alert`  |  Lista de todos os alertas disparados e resolvidos nesta notificação.  |  `There are {{ len .Alerts }} alerts`  | 
|  Alertas disparados  |  `[]Alert`  |  Lista de todos os alertas disparados nesta notificação.  |  `There are {{ len .Alerts.Firing }} firing alerts`  | 
|  Alertas resolvidos  |  `[]Alert`  |  Lista de todos os alertas resolvidos nesta notificação.  |  `There are {{ len .Alerts.Resolved }} resolved alerts`  | 
|  GroupLabels  |  `KeyValue`  |  Os rótulos que agrupam esses alertas nesta notificação.  |  `{{ .GroupLabels }}`  | 
|  CommonLabels  |  `KeyValue`  |  Os rótulos comuns a todos os alertas nesta notificação.  |  `{{ .CommonLabels }}`  | 
|  CommonAnnotations  |  `KeyValue`  |  As anotações comuns a todos os alertas nesta notificação.  |  `{{ .CommonAnnotations }}`  | 
|  ExternalURL  |  `string`  |  Um link para o espaço de trabalho do Grafana ou para o Alertmanager que enviou esta notificação.  |  `{{ .ExternalURL }}`  | 

**KeyValue tipo**

O `KeyValue` tipo é um conjunto de pares de key/value strings que representam rótulos e anotações.

Além do acesso direto aos dados armazenados como um `KeyValue`, também existem métodos para classificar, remover e transformar os dados.


| Nome | Argumentos | Retornos | Observações | Exemplo | 
| --- | --- | --- | --- | --- | 
|  SortedPairs  |    |  Lista ordenada de pares de strings de chave e valor  |    | `{{ .Annotations.SortedPairs }}` | 
|  Remover  |  []string  |  KeyValue  |  Retorna uma cópia do Key/Value mapa sem as chaves fornecidas.  | `{{ .Annotations.Remove "summary" }}` | 
|  Nomes  |    |  []string  |  Lista de nomes de rótulos  | `{{ .Names }}` | 
|  Valores  |    |  []string  |  Lista de valores de rótulos  | `{{ .Values }}` | 

**Tempo**

A hora vem do pacote [https://pkg.go.dev/time#Time](https://pkg.go.dev/time#Time) do Go. Você pode imprimir uma hora em vários formatos diferentes. Por exemplo, para imprimir a hora em que um alerta foi disparado no formato `Monday, 1st January 2022 at 10:00AM`, você escreve o seguinte modelo:

```
{{ .StartsAt.Format "Monday, 2 January 2006 at 3:04PM" }}
```

Você pode encontrar uma referência para o formato de hora do Go [aqui](https://pkg.go.dev/time#pkg-constants).

## Funções de modelo
<a name="v9-alerting-template-functions"></a>

Ao usar funções de modelo, você pode processar rótulos e anotações para gerar notificações dinâmicas. As funções a seguir estão disponíveis.


| Nome | Tipo de argumento | Tipo de retorno | Description | 
| --- | --- | --- | --- | 
|  `humanize`  |  número ou string  |  string  |  Converte um número em um formato mais legível, usando prefixos de métricas.  | 
|  `humanize1024`  |  número ou string  |  string  |  Como o humanize, mas usa 1024 como base em vez de 1000.  | 
|  `humanizeDuration`  |  número ou string  |  string  |  Converte uma duração em segundos em um formato mais legível.  | 
|  `humanizePercentage`  |  número ou string  |  string  |  Converte um valor de proporção em uma fração de 100.  | 
|  `humanizeTimestamp`  |  número ou string  |  string  |  Converte um carimbo de data e hora do Unix em segundos em um formato mais legível.  | 
|  `title`  |  string  |  string  |  strings.Title, coloca em maiúscula o primeiro caractere de cada palavra.  | 
|  `toUpper`  |  string  |  string  |  cordas. ToUpper, converte todos os caracteres em maiúsculas.  | 
|  `toLower`  |  string  |  string  |  cordas. ToLower, converte todos os caracteres em minúsculas.  | 
|  `match`  |  padrão, texto  |  Booleano  |  regexp. MatchString Testes para uma correspondência de expressão regular não ancorada.  | 
|  `reReplaceAll`  |  padrão, substituição, texto  |  string  |  Regexp. ReplaceAllString Substituição Regexp, não ancorada.  | 
|  `graphLink`  |  string: objeto JSON com os campos `expr` e `datasource`  |  string  |  Retorna o caminho para a visualização gráfica no Explore para a expressão e a fonte de dados fornecidas.  | 
|  `tableLink`  |  string: objeto JSON com os campos `expr` e `datasource`  |  string  |  Retorna o caminho para a visualização tabular no Explore para a expressão e a fonte de dados fornecidas.  | 
|  `args`  |  []interface\$1\$1  |  map[string]interface\$1\$1  |  Converte uma lista de objetos em um mapa com chaves, por exemplo, arg0, arg1. Use essa função para passar vários argumentos para modelos.  | 
|  `externalURL`  |  nothing  |  string  |  Retorna uma string representando o URL externo.  | 
|  `pathPrefix`  |  nothing  |  string  |  Retorna o caminho do URL externo.  | 

A tabela a seguir mostra exemplos do uso de cada função.


| Função | TemplateString | Input | Esperados | 
| --- | --- | --- | --- | 
|  humanize  |  \$1 humanize \$1value \$1  |  1234567,0  |  1,235M  | 
|  humanize1024  |  \$1 humanize1024 \$1value \$1  |  1048576,0  |  1Mi  | 
|  humanizeDuration  |  \$1 humanizeDuration \$1value \$1  |  899,99  |  14m 59s  | 
|  humanizePercentage  |  \$1 humanizePercentage \$1value \$1  |  0,1234567  |  12,35%  | 
|  humanizeTimestamp  |  \$1 humanizeTimestamp \$1value \$1  |  1435065584.128  |  2015-06-23 13:19:44.128 \$10000 UTC  | 
|  título  |  \$1 \$1value \$1 title \$1  |  aa bB CC  |  Aa Bb Cc  | 
|  toUpper  |  \$1 \$1value \$1 toUpper \$1  |  aa bB CC  |  AA BB CC  | 
|  toLower  |  \$1 \$1value \$1 toLower \$1  |  aa bB CC  |  aa bb cc  | 
|  match  |  \$1 match "a\$1" \$1labels.instance \$1  |  aa  |  true  | 
|  reReplaceAll  |  \$1\$1 reReplaceAll “localhost :( .\$1)” “meu.domínio: \$11" \$1labels.instance\$1\$1  |  localhost:3000  |  my.domain:3000  | 
|  graphLink  |  \$1\$1 graphLink "\$1\$1"expr\$1": \$1"up\$1", \$1"datasource\$1": \$1"gdev-prometheus\$1"\$1" \$1\$1  |    |  /explore?left=["now-1h","now","gdev-prometheus",\$1"datasource":"gdev-prometheus","expr":"up","instant":false,"range":true\$1]  | 
|  tableLink  |  \$1\$1 tableLink "\$1\$1"expr\$1":\$1"up\$1", \$1"datasource\$1":\$1"gdev-prometheus\$1"\$1" \$1\$1  |    |  /explore?left=["now-1h","now","gdev-prometheus",\$1"datasource":"gdev-prometheus","expr":"up","instant":true,"range":false\$1]  | 
|  args  |  \$1\$1define "x"\$1\$1\$1\$1.arg0\$1\$1 \$1\$1.arg1\$1\$1\$1\$1end\$1\$1\$1\$1template "x" (args 1 "2")\$1\$1  |    |  1 2  | 
|  externalURL  |  \$1 externalURL \$1  |    |  http://localhost/path/prefix  | 
|  pathPrefix  |  \$1 pathPrefix \$1  |    |  /path/prefix  | 

# Silenciar notificações de alerta de fontes de dados do Prometheus
<a name="v9-alerting-silences"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

Para fontes de dados externas do Alertmanager (incluindo o Amazon Managed Service for Prometheus), você pode suprimir as notificações de alerta com um *silêncio*. Um silêncio só impede a criação de notificações: os silêncios não impedem que as regras de alerta sejam avaliadas e não impedem que as instâncias de alerta sejam mostradas na interface do usuário. Ao silenciar um alerta, você especifica uma janela de tempo para que ele seja suprimido.

Você pode configurar silêncios para uma fonte de dados externa do Alertmanager.

**nota**  
Para suprimir as notificações de alerta em intervalos regulares ou para outras fontes de dados (por exemplo, durante períodos regulares de manutenção), use [Tempos de desativação de áudio](v9-alerting-notification-muting.md) em vez de silêncios.

**Para adicionar um silêncio**

1. No console do Grafana, no menu do Grafana, escolha o ícone de **Alertas** (sino) para abrir a página **Alertas**.

1. Escolha **Silêncios** para abrir uma página que lista os [Trabalhar com pontos de contato](v9-alerting-contact-points.md) existentes.

1. Escolha o Alertmanager externo no menu suspenso **Alertmanager**.

1. Selecione **Adicionar silêncio**.

1. Selecione a data de início e de término em **Início e término do silêncio** para indicar quando o silêncio deve entrar em vigor e quando deve terminar.

   Como alternativa à definição de um horário de término, em **Duração**, especifique por quanto tempo o silêncio será aplicado. Isso atualiza automaticamente a hora de término no campo **Início e término do silêncio**.

1. Nos campos **Nome** e **Valor**, insira um ou mais *rótulos correspondentes*. Os matchers determinam a quais regras o silêncio se aplica. A correspondência do rótulo é discutida em mais detalhes após este procedimento.

1. Opcionalmente, adicione um **comentário** ou modifique o **Criador** para definir o proprietário do silêncio.

1. Escolha **Criar** para criar o silêncio.

Você pode editar um silêncio existente escolhendo o ícone de **Editar** (caneta).

**Correspondência de rótulos para supressão de alertas**

Ao criar um silêncio, você cria um conjunto de *rótulos correspondentes* como parte do silêncio. Esse é um conjunto de regras sobre rótulos que devem corresponder para que o alerta seja suprimido. Os rótulos correspondentes consistem em três partes:
+ **Rótulo**: o nome do rótulo correspondente. Ele deve corresponder exatamente ao nome do rótulo do alerta.
+ **Operador**: o operador usado para comparar o valor do rótulo com o valor do rótulo correspondente. Os operadores disponíveis são:
  + `=` Selecione rótulos cujo valor corresponda exatamente à string fornecida.
  + `!=` Selecione rótulos cujo valor não corresponda à string fornecida.
  + `=~` Selecione rótulos cujo valor corresponda ao valor interpretado pelo regex da string fornecida (a string fornecida é interpretada como uma expressão regular).
  + `!=` Selecione rótulos que não correspondam à expressão regular fornecida.
+ **Valor**: o valor ao qual corresponder ao valor do rótulo. Pode corresponder como uma string ou como uma expressão regular, dependendo do operador escolhido.

O silêncio termina na data de término indicada, mas você pode encerrar manualmente a supressão a qualquer momento.

**Para finalizar um silêncio manualmente**

1. Na página **Alertas**, escolha **Silêncios** para ver a lista de silêncios existentes.

1. Selecione o silêncio que você deseja encerrar e escolha **Cancelar silêncio**. Isso encerra a supressão do alerta.
**nota**  
O cancelamento do silêncio encerra a supressão do alerta, como se o horário de término estivesse definido para o horário atual. Os silêncios que terminaram (automática ou manualmente) são retidos e listados por cinco dias. Você não pode remover um silêncio da lista manualmente.

**Criar um link para o formulário de criação de silêncio**

Você pode criar uma URL para o formulário de criação de silêncio com os detalhes já preenchidos. Os operadores podem usar isso para suprimir rapidamente um alarme durante um evento operacional.

Ao criar um link para um formulário de silêncio, use um parâmetro de consulta `matchers` para especificar os rótulos correspondentes e um parâmetro de consulta `comment` para especificar um comentário. O parâmetro `matchers` requer um ou mais valores no formulário `[label][operator][value]`, separados por vírgulas.

**Exemplo de URL**

Para criar um link para um formulário de silêncio, com os rótulos correspondentes `severity=critical` e`cluster!~europe-.*`, com um comentário que diga `Silencing critical EU alerts`, use um URL como a seguir. *mygrafana*Substitua pelo nome do host da sua instância Grafana.

```
https://mygrafana/alerting/silence/new?matchers=severity%3Dcritical%2Ccluster!~europe-*&comment=Silence%20critical%20EU%20alert
```

Para vincular a uma nova página de silêncio para um Alertmanager externo, adicione um parâmetro de consulta `alertmanager` com o nome da fonte de dados Alertmanager, como `alertmanager=myAlertmanagerdatasource`.

# Tempos de desativação de áudio
<a name="v9-alerting-notification-muting"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

O tempo de desativação de áudio é um intervalo de tempo recorrente em que nenhuma nova notificação de uma política é gerada ou enviada. Use-o para evitar que os alertas sejam disparados por um período específico e recorrente, por exemplo, um período de manutenção regular.

Assim como os silêncios, os tempos de desativação de áudio não impedem que as regras de alerta sejam avaliadas nem impedem que as instâncias de alerta sejam mostradas na interface do usuário. Eles apenas impedem que as notificações sejam criadas.

Você pode configurar os tempos de desativação de áudio gerenciados do Grafana bem como os horários de desativação de áudio para uma fonte de dados externa do Alertmanager.

**Tempos de desativação de áudio em comparação com silêncios**

A tabela a seguir destaca as diferenças entre tempos de silêncio e de desativação de áudio.


| Tempo de desativação de áudio | Silêncio | 
| --- | --- | 
|  Usa definições de intervalo de tempo que podem ocorrer novamente.  |  Tem um horário de início e término fixo.  | 
|  É criado e, em seguida, adicionado às políticas de notificação.  |  Usa rótulos para fazer correspondência com um alerta para determinar se deve ser silenciado ou não.  | 
|  Funciona com o Grafana Alerting e Alertmanagers externos.  |  Funciona somente com Alertmanagers externos.  | 

**Para criar um tempo de desativação de áudio**

1. No console do Grafana, no menu do Grafana, escolha o ícone de **Alertas** (sino) para abrir a página **Alertas**.

1. Escolha **Políticas de notificação**.

1. No menu suspenso do **Alertmanager**, selecione o Alertmanager que deseja editar.

1. Na seção **Tempos de desativação de áudio**, escolha o botão **Adicionar tempo de desativação de áudio**.

1. Escolha o intervalo de tempo ao qual você deseja aplicar o tempo de desativação de áudio.

1. Escolha **Enviar** para criar um tempo de desativação de áudio.

**Para adicionar um tempo de desativação de áudio a uma política de notificação**

1. Selecione a política de notificação à qual você gostaria de adicionar o tempo de desativação de áudio e escolha o botão **Editar**.

1. No menu suspenso **Tempos de desativação de áudio**, selecione os tempos de desativação de áudio que você gostaria de adicionar à política.

   Escolha o botão **Salvar política**.

**Intervalos de tempo**

Um intervalo de tempo é uma definição para um período de tempo. Se um alerta for iniciado durante esse intervalo, ele será suprimido. Os períodos são compatíveis usando `:` (por exemplo, `monday:thursday`). Um tempo de desativação de áudio pode conter vários intervalos de tempo. Um intervalo de tempo consiste em vários campos (detalhes na lista a seguir), todos os quais devem coincidir para suprimir os alertas. Por exemplo, se você especificar os dias da semana `monday:friday` e o intervalo de tempo das 8h às 9h, os alertas serão suprimidos das 8h às 9h, de segunda a sexta-feira, mas não, por exemplo, das 8h às 9h no sábado.
+ **Intervalo de tempo**: a hora do dia para suprimir as notificações. Consiste em dois subcampos, **Hora de início** e **Hora de término**. Um tempo de exemplo é `14:30`. A hora está em notação de 24 horas, em UTC.
+ **Dias da semana**: os dias da semana. Pode ser um único dia, como `monday`, um período, como `monday:friday`, ou uma lista de dias separada por vírgula, como `monday, tuesday, wednesday`.
+ **Meses**: os meses a serem selecionados. Você pode especificar os meses com designações numéricas ou com o nome completo do mês, por exemplo, `1` ou `january`, ambos especificam janeiro. Você pode especificar um único mês, um intervalo de meses ou uma lista de meses separada por vírgula.
+ **Dias do mês**: as datas em um mês. Os valores de podem variar de `1` a `31`. Valores negativos especificam os dias do mês na ordem inversa, então `-1` representa o último dia do mês. Os dias do mês podem ser especificados como um único dia, um intervalo de dias ou uma lista de dias separada por vírgula.
+ **Anos**: o ano ou os anos do intervalo. Por exemplo, .`2023:2025`

Cada um desses elementos pode ser uma lista, e pelo menos um item no elemento deve ser satisfeito para corresponder. Portanto, se você definir anos como `2023:2025, 2027`, isso seria verdade em 2023, 2024, 2025 e 2027 (mas não em 2026).

Se um campo for deixado em branco, qualquer instante de tempo corresponderá ao campo. Um instante de tempo deve corresponder a todos os campos para corresponder a um intervalo de tempo completo.

Se você quiser especificar uma duração exata, especifique todas as opções necessárias para essa duração. Por exemplo, caso queira criar um intervalo de tempo para a primeira segunda-feira do mês, para março, junho, setembro e dezembro, entre 12h e 24h UTC, sua especificação de intervalo de tempo pode ser:
+ Intervalo de tempo:
  + Horário de início: `12:00`
  + Horário de término: `24:00`
+ Dia da semana: `monday`
+ Meses: `3, 6, 9, 12`
+ Dias do mês: `1:7`

# Visualizar e filtrar por grupos de alertas
<a name="v9-alerting-viewfiltergroups"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

Os grupos de alertas mostram alertas agrupados de uma instância do Alertmanager. Por padrão, as regras de alerta são agrupadas pelas chaves de rótulo da política raiz nas políticas de notificação. O agrupamento de regras de alerta comuns em um único grupo de alerta evita que regras de alerta duplicadas sejam disparadas.

Você pode visualizar grupos de alertas e também filtrar as regras de alerta que correspondam a critérios específicos.

**Para visualizar grupos de alertas**

1. No menu do Grafana, clique no ícone de **Alertas** (sino) para abrir a página Alertas que lista os alertas existentes.

1. Clique em **Grupos de alertas** para abrir a página que lista os grupos existentes.

1. No menu suspenso **Alertmanager**, selecione um Alertmanager externo como sua fonte de dados.

1. No menu suspenso **Agrupar por personalizado**, selecione uma combinação de rótulos para visualizar um agrupamento diferente do padrão. Isso é útil para depurar e verificar o agrupamento de políticas de notificação.

Se um alerta não contiver rótulos especificados no agrupamento da política raiz ou no agrupamento personalizado, então o alerta será adicionado a um grupo universal com o cabeçalho de `No grouping`.

**Para filtrar por rótulo**
+ Em **Pesquisar**, insira um rótulo existente para visualizar os alertas que correspondam ao rótulo.

  Por exemplo, .`environment=production,region=~US|EU,severity!=warning`

**Para filtrar por estado**
+ Em **Estados**, selecione entre os estados Ativo, Suprimido ou Não processado para visualizar alertas que correspondam ao estado selecionado. Todos os outros alertas estão ocultos.

# Visualizar erros de notificação
<a name="v9-alerting-viewnotificationerrors"></a>

****  
Este tópico de documentação foi desenvolvido para espaços de trabalho do Grafana compatíveis com o **Grafana versão 9.x**.  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 10.x, consulte [Trabalhar no Grafana versão 10](using-grafana-v10.md).  
Para espaços de trabalho do Grafana compatíveis com o Grafana versão 8.x, consulte [Trabalhar no Grafana versão 8](using-grafana-v8.md).

Visualize os erros de notificação e saiba por que eles não foram enviados ou não foram recebidos.

**nota**  
Esse recurso é compatível apenas com o Grafana Alertmanager.

**Para visualizar os erros de notificação**

1. No menu do Grafana, clique no ícone de **Alertas** (sino) para abrir a página Alertas que lista os alertas existentes.

1. Escolha **Pontos de contato** para ver uma lista dos pontos de contato existentes.

   Se algum ponto de contato estiver falhando, uma mensagem no canto direito da tela alertará o usuário sobre o fato de que há erros e a quantidade.

1. Clique em um ponto de contato para ver os detalhes dos erros dele.

   Os detalhes do erro são exibidos se você passar o mouse sobre o ícone de erro.

   Se um ponto de contato tiver mais de uma integração, você verá todos os erros de cada uma das integrações listadas.

1. Na coluna Integridade, verifique o status da notificação.

   Pode estar OK, Nenhuma tentativa ou Erro.