

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Gestisci le notifiche di avviso
<a name="v9-alerting-managenotifications"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

La scelta di come, quando e dove inviare le notifiche di avviso è una parte importante della configurazione del sistema di avviso. Queste decisioni avranno un impatto diretto sulla capacità di risolvere rapidamente i problemi e di non perdere nulla di importante.

Come primo passo, definisci i tuoi *punti di contatto*; a chi inviare le notifiche di avviso. Un punto di contatto può essere un insieme di destinazioni per le notifiche corrispondenti. Aggiungi modelli di notifica ai punti di contatto per riutilizzarli e inviare messaggi coerenti nelle notifiche.

Successivamente, crea una *politica di notifica*, che è un insieme di regole per stabilire dove, quando e come gli avvisi vengono indirizzati ai punti di contatto. In una politica di notifica, definisci dove inviare le notifiche di avviso scegliendo uno dei punti di contatto che hai creato. Aggiungi tempi di silenziamento alla tua politica di notifica. Un *periodo di silenziamento* è un intervallo di tempo ricorrente durante il quale non desideri che vengano inviate notifiche.

*Quando viene valutata una regola di avviso, il righello di avviso invia istanze di avviso all'Alertmanager: una regola di avviso può attivare più istanze di avviso individuali.*

L'Alertmanager riceve queste istanze di avviso e quindi gestisce gli orari di silenziamento, raggruppa gli avvisi e invia notifiche ai punti di contatto come definito nella politica di notifica.

**Topics**
+ [Gestore degli avvisi](v9-alerting-managenotifications-alertmanager.md)
+ [Lavorare con i punti di contatto](v9-alerting-contact-points.md)
+ [Utilizzo delle politiche di notifica](v9-alerting-notification-policies.md)
+ [Personalizza le notifiche](v9-alerting-notifications.md)
+ [Silenziamento delle notifiche di avviso per le fonti di dati Prometheus](v9-alerting-silences.md)
+ [Tempi di silenziamento](v9-alerting-notification-muting.md)
+ [Visualizza e filtra per gruppi di avvisi](v9-alerting-viewfiltergroups.md)
+ [Visualizza gli errori di notifica](v9-alerting-viewnotificationerrors.md)

# Gestore degli avvisi
<a name="v9-alerting-managenotifications-alertmanager"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Alertmanager consente di gestire e rispondere agli avvisi in modo rapido ed efficiente. Riceve avvisi, gestisce le disattivazioni, l'inibizione, il raggruppamento e il routing inviando notifiche tramite il canale prescelto, ad esempio e-mail o Slack.

In Grafana, puoi usare Grafana Alertmanager o un Alertmanager esterno. Puoi anche eseguire più gestori di avvisi; la tua decisione dipende dalla configurazione e da dove vengono generati gli avvisi.

**Gestore avvisi Grafana**

Grafana Alertmanager è un Alertmanager interno preconfigurato e disponibile per la selezione di default se si esegue Grafana on-premise o open source.

Grafana Alertmanager può ricevere avvisi da Grafana, ma non può ricevere avvisi dall'esterno di Grafana, ad esempio da Mimir o Loki.

**Nota**  
Le regole di inibizione non sono supportate in Grafana Alertmanager.

**Gestore di avvisi esterno**

Se desideri utilizzare un unico gestore di avvisi per ricevere tutti gli avvisi Grafana, Loki, Mimir e Prometheus, puoi configurare Grafana per utilizzare un Alertmanager esterno. Questo Alertmanager esterno può essere configurato e amministrato dall'interno di Grafana stessa.

Ecco due esempi di quando potresti voler configurare il tuo alertmanager esterno e inviare i tuoi avvisi lì invece di Grafana Alertmanager:

1. Disponi già di gestori di avvisi in sede nella tua infrastruttura Cloud che hai configurato e desideri continuare a utilizzare, perché hai altri generatori di avvisi, come Prometheus.

1. Desideri utilizzare sia Prometheus on-premise che Grafana ospitato per inviare avvisi allo stesso gestore di avvisi che funziona nella tua infrastruttura Cloud.

I gestori degli avvisi sono visibili dal menu a discesa delle pagine Avvisi, punti di contatto e Politiche di notifica.

Se stai effettuando il provisioning della tua fonte di dati, imposta il flag `handleGrafanaManagedAlerts` nel `jsonData` campo per inviare avvisi gestiti da Grafana `true` a questo Alertmanager.

# Lavorare con i punti di contatto
<a name="v9-alerting-contact-points"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Utilizza i punti di contatto per definire in che modo i tuoi contatti vengono avvisati quando viene avviato un avviso. Un punto di contatto può avere una o più integrazioni di punti di contatto, ad esempio Amazon Simple Notification Service o Slack. Quando viene avviato un avviso, viene inviata una notifica a tutte le integrazioni dei punti di contatto elencate per un punto di contatto. Facoltativamente, utilizza i [modelli di notifica](v9-alerting-create-templates.md) per personalizzare i messaggi di notifica per i tipi di punti di contatto.

**Nota**  
Puoi creare e modificare punti di contatto per gli avvisi gestiti da Grafana. I punti di contatto per gli avvisi di Alertmanager sono di sola lettura.

## Lavorare con i punti di contatto
<a name="v9-alerting-working-contact-points"></a>

Le seguenti procedure descrivono in dettaglio come aggiungere, modificare, testare ed eliminare i punti di contatto.

**Per aggiungere un punto di contatto**

1. **Dalla console Grafana, nel menu Grafana, scegli l'icona Avvisi (campanella) per **aprire la pagina Avvisi**.**

1. **Scegli **Punti di contatto**, quindi Aggiungi punto di contatto.**

1. Dal menu a discesa **Alertmanager**, seleziona un Alertmanager. Il Grafana Alertmanager è selezionato per impostazione predefinita.

1. Inserite un **nome per il punto** di contatto.

1. Da **Integrazione con i punti di contatto**, scegli un tipo e i campi obbligatori in base a quel tipo. Ad esempio, se scegli Slack, inserisci i canali Slack e gli utenti che devono essere contattati.

1. Se disponibile per il punto di contatto selezionato, scegli le **impostazioni opzionali desiderate per specificare impostazioni** aggiuntive.

1. In **Impostazioni di notifica**, seleziona facoltativamente **Disabilita messaggio risolto** se non desideri ricevere una notifica quando si risolve un avviso.

1. Se il tuo punto di contatto necessita di più tipi di punti di contatto, puoi scegliere **Aggiungi integrazione dei punti di contatto** e ripetere i passaggi per ogni tipo di punto di contatto necessario.

1. Scegli **Salva punto di contatto** per salvare le modifiche.

**Per modificare un punto di contatto**

1. Scegli **Punti di contatto** per visualizzare un elenco di punti di contatto esistenti.

1. Seleziona il punto di contatto da modificare, quindi scegli l'icona **Modifica** (penna).

1. Apporta le modifiche necessarie, quindi scegli **Salva punto di contatto** per salvare le modifiche.

Dopo aver creato il punto di contatto, puoi inviare una notifica di prova per verificare che sia configurato correttamente.

**Per inviare una notifica di prova**

1. Scegli **Punti di contatto** per aprire l'elenco dei punti di contatto esistenti.

1. Seleziona il punto di contatto da testare, quindi scegli l'icona **Modifica** (penna).

1. Seleziona l'icona **Test** (aeroplano di carta).

1. Scegli se inviare una notifica di test predefinita o scegli **Personalizzata** per aggiungere annotazioni ed etichette personalizzate nella notifica di test.

1. Scegli **Invia notifica di test** per testare l'avviso con i punti di contatto indicati.

È possibile eliminare i punti di contatto che non sono utilizzati in base a una politica di notifica.

**Per eliminare un punto di contatto**

1. Scegliete **Punti di contatto** per aprire l'elenco dei punti di contatto esistenti.

1. Seleziona il punto di contatto da eliminare, quindi scegli l'icona **Elimina** (cestino).

1. Nella finestra di dialogo di conferma, scegli **Sì, elimina**.

**Nota**  
Se il punto di contatto è utilizzato in base a una politica di notifica, è necessario eliminare la politica di notifica o modificarla per utilizzare un punto di contatto diverso prima di eliminare il punto di contatto.

## Elenco dei notificanti supportati
<a name="v9-alerting-contactpoint-supported-notifiers"></a>


|  Name  |  Tipo  | 
| --- | --- | 
| Amazon SNS  |  sns  | 
|  OpsGenie  |  opsgenie  | 
| Pager Duty  |  pagerduty  | 
| Slack  |  slack  | 
|  VictorOps  |  victorops  | 

# Utilizzo delle politiche di notifica
<a name="v9-alerting-notification-policies"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Le politiche di notifica determinano il modo in cui gli avvisi vengono indirizzati ai punti di contatto. Le politiche hanno una struttura ad albero, in cui ciascuna politica può avere una o più politiche secondarie. Ogni politica, ad eccezione della politica principale, può anche corrispondere a etichette di avviso specifiche. Ogni avviso viene valutato in base alla politica principale e quindi a ciascuna politica secondaria. Se si abilita l'`Continue matching subsequent sibling nodes`opzione per una politica specifica, la valutazione continua anche dopo una o più corrispondenze. Le impostazioni di configurazione e le informazioni sui punti di contatto di una politica principale regolano il comportamento di un avviso che non corrisponde a nessuna delle politiche secondarie. Una politica principale regola qualsiasi avviso che non corrisponde a una politica specifica.

**Nota**  
È possibile creare e modificare politiche di notifica per gli avvisi gestiti da Grafana. Le politiche di notifica per gli avvisi di Alertmanager sono di sola lettura.

**Raggruppamento delle notifiche**

Il raggruppamento classifica le notifiche di avviso di natura simile in un'unica canalizzazione. Ciò consente di controllare le notifiche di avviso durante interruzioni più ampie, quando più parti di un sistema si guastano contemporaneamente, provocando l'avvio simultaneo di un numero elevato di avvisi.

**Esempio di raggruppamento**

Supponiamo di avere 100 servizi connessi a un database in ambienti diversi. Questi servizi sono differenziati dall'etichetta. `env=environmentname` È in vigore una regola di avviso per monitorare se i servizi possono raggiungere il database. La regola di avviso crea avvisi `alertname=DatabaseUnreachable` denominati.

Se si verifica una partizione di rete in cui metà dei servizi non riesce più a raggiungere il database, vengono avviati 50 avvisi diversi. In questa situazione, si desidera ricevere una notifica a pagina singola (anziché 50) con un elenco degli ambienti interessati.

È possibile configurare il raggruppamento in modo che sia `group_by: [alertname]` (senza utilizzare l'`env`etichetta, che è diversa per ogni servizio). Con questa configurazione, Grafana invia un'unica notifica compatta che contiene tutti gli ambienti interessati da questa regola di avviso.

**Gruppi speciali**

Grafana ha due gruppi speciali. Il gruppo predefinito, `group_by: null` raggruppa *tutti gli* avvisi in un unico gruppo. È inoltre possibile utilizzare un'etichetta speciale denominata `...` per raggruppare gli avvisi in base a tutte le etichette, disabilitando efficacemente il raggruppamento e inviando ogni avviso nel proprio gruppo.

## Utilizzo delle notifiche
<a name="v9-alerting-notification-policies-working"></a>

Le procedure seguenti mostrano come creare e gestire le politiche di notifica.

**Per modificare la politica di notifica principale**

1. **Dalla console Grafana, nel menu Grafana, scegli l'icona Avvisi (campanella) per **aprire la pagina Avvisi**.**

1. **Scegli Politiche di notifica.**

1. Dal menu a discesa **Alertmanager**, seleziona il gestore degli avvisi che desideri modificare.

1. Nella sezione **Root policy**, scegli l'icona **Modifica** (penna).

1. Nel **Punto di contatto predefinito**, aggiorna il punto di contatto a cui devono essere inviate le notifiche relative alle regole quando le regole di avviso non corrispondono a nessuna politica specifica.

1. In **Raggruppa per**, scegli le etichette (o i gruppi speciali) in base ai quali raggruppare gli avvisi.

1. Nelle **opzioni di temporizzazione**, seleziona una delle seguenti opzioni.
   + **Attesa di gruppo**: tempo necessario per memorizzare nel buffer gli avvisi dello stesso gruppo prima di inviare una notifica iniziale. Il valore predefinito è 30 secondi.
   + Intervallo di **gruppo: intervallo** di tempo minimo tra due notifiche per un gruppo. Il valore predefinito è 5 minuti.
   + Intervallo di **ripetizione: intervallo** di tempo minimo prima di inviare nuovamente una notifica se non sono stati aggiunti nuovi avvisi al gruppo. L'impostazione predefinita è 4 ore.

1. Scegli **Salva** per salvare le modifiche.

**Per aggiungere una nuova politica specifica di primo livello**

1. **Dalla console Grafana, nel menu Grafana, scegli l'icona Avvisi (campanella) per **aprire la pagina Avvisi**.**

1. **Scegli Politiche di notifica.**

1. Dal menu a discesa **Alertmanager**, seleziona il gestore degli avvisi che desideri modificare.

1. **Nella sezione **Routing specifico**, scegli Nuova politica specifica.**

1. Nella sezione **Etichette corrispondenti**, aggiungi una o più etichette di avviso corrispondenti. Ulteriori informazioni sulla corrispondenza delle etichette sono disponibili più avanti in questo argomento.

1. In **Punto di contatto**, aggiungi il punto di contatto a cui inviare notifiche se l'avviso corrisponde a questa politica specifica. Le politiche annidate hanno la precedenza su questo punto di contatto.

1. Facoltativamente, abilita **Continua a far corrispondere i nodi di pari livello successivi** per continuare a far corrispondere le politiche di pari livello anche dopo che l'avviso corrisponde alla politica corrente. Quando questo criterio è abilitato, puoi ricevere più di una notifica per lo stesso avviso.

1. Facoltativamente, seleziona **Ignora raggruppamento** per specificare un raggruppamento diverso dalla politica principale.

1. Facoltativamente, seleziona Ignora gli **orari generali per sovrascrivere le opzioni di temporizzazione** nella politica di notifica di gruppo.

1. Scegli **Salva** per salvare le modifiche.

**Per aggiungere una politica annidata**

1. Espandi la politica specifica in base alla quale desideri creare una politica annidata.

1. Scegli **Aggiungi politica annidata**, quindi aggiungi i dettagli (come quando aggiungi una politica specifica di primo livello).

1. Scegli **Salva** per salvare le modifiche.

**Per modificare una politica specifica**

1. Dalla pagina **Avvisi**, scegli **Criteri di notifica** per aprire la pagina che elenca le politiche esistenti.

1. Seleziona la politica che desideri modificare, quindi scegli l'icona **Modifica** (penna).

1. Apporta eventuali modifiche (come quando aggiungi una politica specifica di primo livello).

1. Scegli **Salva policy**.

**Ricerca di politiche**

Puoi cercare nell'albero delle politiche per *Label Matchers* o per *punti di contatto*.
+ Per effettuare la ricerca per punto di contatto, inserisci un nome parziale o completo di un punto di contatto nel campo **Cerca per punto di contatto**.
+ Per effettuare la ricerca per etichetta, inserisci un abbinatore di etichette valido nel campo **Cerca per etichetta**. È possibile inserire più abbinatori, separati da una virgola. Ad esempio, un input matcher valido potrebbe essere. `severity=high, region=~EMEA|NA`
**Nota**  
Durante la ricerca per etichetta, tutte le politiche corrispondenti corrisponderanno esattamente. Le corrispondenze parziali e le corrispondenze in stile regex non sono supportate.

**Come funziona la corrispondenza delle etichette**

Una politica corrisponde a un avviso se le etichette dell'avviso corrispondono a tutte le *etichette corrispondenti* specificate nella politica.
+ **Etichetta**: il nome dell'etichetta da abbinare. Deve corrispondere esattamente al nome dell'etichetta dell'avviso.
+ **Operatore**: l'operatore utilizzato per confrontare il valore dell'etichetta con il valore dell'etichetta corrispondente. Gli operatori disponibili sono:
  + `=`Seleziona le etichette il cui valore corrisponde esattamente alla stringa fornita.
  + `!=`Seleziona le etichette il cui valore non corrisponde alla stringa fornita.
  + `=~`Seleziona le etichette il cui valore corrisponde al valore interpretato dall'espressione regolare della stringa fornita (la stringa fornita viene interpretata come un'espressione regolare).
  + `!=`Seleziona le etichette che non corrispondono all'espressione regolare fornita.
+ **Valore**: il valore a cui abbinare il valore dell'etichetta. Può corrispondere come stringa o come espressione regolare, a seconda dell'operatore scelto.

# Personalizza le notifiche
<a name="v9-alerting-notifications"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Personalizza le tue notifiche con i modelli di notifica.

Puoi utilizzare i modelli di notifica per modificare il titolo, il messaggio e il formato del messaggio nelle notifiche.

I modelli di notifica non sono legati a integrazioni di punti di contatto specifiche, come email o Slack. Tuttavia, puoi scegliere di creare modelli di notifica separati per diverse integrazioni di punti di contatto.

Puoi utilizzare i modelli di notifica per:
+ Aggiungere, rimuovere o riordinare le informazioni nella notifica, tra cui riepilogo, descrizione, etichette e annotazioni, valori e link
+ Formatta il testo in grassetto e corsivo e aggiungi o rimuovi interruzioni di riga

Non è possibile utilizzare i modelli di notifica per:
+ Modifica il design delle notifiche nei servizi di messaggistica istantanea come Slack e Microsoft Teams

**Topics**
+ [Usare il linguaggio di template di Go](v9-alerting-notifications-go-templating.md)
+ [Crea modelli di notifica](v9-alerting-create-templates.md)
+ [Riferimento modello](v9-alerting-template-reference.md)

# Usare il linguaggio di template di Go
<a name="v9-alerting-notifications-go-templating"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

[Scrivi modelli di notifica nel linguaggio di template di Go, text/template.](https://pkg.go.dev/text/template)

Questa sezione fornisce una panoramica del linguaggio di template di Go e dei modelli di scrittura in text/template.

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

 text/template C'è un cursore speciale chiamato punto, ed è scritto come`.`. Puoi pensare a questo cursore come a una variabile il cui valore cambia a seconda del punto del modello in cui viene utilizzato. Ad esempio, all'inizio di un modello di notifica `.` si fa riferimento all'`ExtendedData`oggetto, che contiene una serie di campi tra cui `Alerts``Status`, `GroupLabels``CommonLabels`, `CommonAnnotations` e`ExternalURL`. Tuttavia, dot potrebbe fare riferimento a qualcos'altro quando viene utilizzato in un `range` elenco completo, all'interno di un `with` o quando si scrivono modelli di funzionalità da utilizzare in altri modelli. Puoi vedere esempi di ciò in[Crea modelli di notifica](v9-alerting-create-templates.md), e tutti i dati e le funzioni in[Riferimento modello](v9-alerting-template-reference.md).

## Tag di apertura e chiusura
<a name="v9-go-openclosetags"></a>

In text/template, i modelli iniziano `{{` e finiscono con `}}` indipendentemente dal fatto che il modello stampi una variabile o esegua strutture di controllo come le istruzioni if. Questo è diverso da altri linguaggi di template come Jinja, dove la stampa di una variabile utilizza `{{` e e le strutture di controllo utilizzano e`}}`. `{%` `%}`

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

Per stampare il valore di qualcosa usa e. `{{` `}}` È possibile stampare il valore di un punto, un campo di punti, il risultato di una funzione e il valore di una [variabile](#v9-go-variables). Ad esempio, per stampare il `Alerts` campo a cui si riferisce il punto `ExtendedData` devi scrivere quanto segue:

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

## Esegui iterazioni sugli avvisi
<a name="v9-go-iterate-alerts"></a>

Per stampare solo le etichette di ogni avviso, anziché tutte le informazioni sull'avviso, puoi utilizzare `range` a per iterare gli avvisi in: `ExtendedData`

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

All'interno dell'intervallo il punto non si riferisce più a`ExtendedData`, ma a un. `Alert` È possibile utilizzare `{{ .Labels }}` per stampare le etichette di ogni avviso. Funziona perché `{{ range .Alerts }}` cambia il punto per fare riferimento all'avviso corrente nell'elenco degli avvisi. Quando l'intervallo è terminato, il punto viene ripristinato al valore che aveva prima dell'inizio dell'intervallo, che in questo esempio è`ExtendedData`:

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

## Esegui iterazioni su annotazioni ed etichette
<a name="v9-go-iterate-labels"></a>

Scriviamo un modello per stampare le etichette di ogni avviso nel formato`The name of the label is $name, and the value is $value`, dove `$name` e `$value` contiene il nome e il valore di ogni etichetta.

Come nell'esempio precedente, utilizzate un intervallo per scorrere gli avvisi in `.Alerts` modo che il punto si riferisca all'avviso corrente nell'elenco degli avvisi, quindi utilizzate un secondo intervallo sulle etichette ordinate in modo che dot venga aggiornato una seconda volta per fare riferimento all'etichetta corrente. All'interno del secondo intervallo usa `.Name` e stampa `.Value` il nome e il valore di ogni etichetta:

```
{{ 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 }}
```

## Dichiarazioni If
<a name="v9-go-if"></a>

È possibile utilizzare le istruzioni if nei modelli. Ad esempio, per stampare `There are no alerts` se non sono presenti avvisi, `.Alerts` è necessario scrivere quanto segue:

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

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

With è simile alle istruzioni if, tuttavia a differenza delle istruzioni if, `with` aggiorna dot per fare riferimento al valore di with:

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

## Variabili
<a name="v9-go-variables"></a>

Le variabili in text/template devono essere create all'interno del modello. Ad esempio, per creare una variabile chiamata `$variable` con il valore corrente di dot devi scrivere quanto segue:

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

Puoi usare `$variable` all'interno di un intervallo o `with` e farà riferimento al valore di dot nel momento in cui la variabile è stata definita, non al valore corrente di dot.

Ad esempio, non puoi scrivere un modello da utilizzare `{{ .Labels }}` nel secondo intervallo perché qui il punto si riferisce all'etichetta corrente, non all'avviso corrente:

```
{{ 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 }}
```

Puoi risolvere questo problema definendo una variabile chiamata `$alert` nel primo intervallo e prima del secondo intervallo:

```
{{ 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 }}
```

## Intervallo con indice
<a name="v9-go-rangeindex"></a>

È possibile ottenere l'indice di ogni avviso all'interno di un intervallo definendo le variabili di indice e valore all'inizio dell'intervallo:

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

## Definire i modelli
<a name="v9-go-define"></a>

È possibile definire modelli che possono essere utilizzati all'interno di altri modelli, utilizzando `define` e il nome del modello tra virgolette doppie. Non è necessario definire modelli con lo stesso nome di altri modelli, inclusi modelli predefiniti come `__subject``__text_values_list`,`__text_alert_list`, `default.title` e`default.message`. Se è stato creato un modello con lo stesso nome di un modello predefinito o un modello in un altro modello di notifica, Grafana potrebbe utilizzare entrambi i modelli. Grafana non impedisce o mostra un messaggio di errore quando ci sono due o più modelli con lo stesso nome.

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

## Incorpora modelli
<a name="v9-go-embed"></a>

È possibile incorporare un modello definito all'interno del modello utilizzando `template` il nome del modello tra virgolette doppie e il cursore da passare al modello:

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

## Passa i dati ai modelli
<a name="v9-go-passdata"></a>

All'interno di un modello, il punto si riferisce al valore passato al modello.

Ad esempio, se a un modello viene passato un elenco di avvisi di attivazione, dot si riferisce a quell'elenco di avvisi di attivazione:

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

Se al modello vengono passate le etichette ordinate per un avviso, dot si riferisce all'elenco di etichette ordinate:

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

Questo è utile quando si scrivono modelli riutilizzabili. Ad esempio, per stampare tutti gli avvisi potresti scrivere quanto segue:

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

Quindi, per stampare solo gli avvisi di attivazione, puoi scrivere questo:

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

Funziona perché entrambi `.Alerts` `.Alerts.Firing` sono elenchi di avvisi.

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

## Commenti
<a name="v9-go-comments"></a>

Puoi aggiungere commenti con `{{/*` e`*/}}`:

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

Per evitare che i commenti aggiungano interruzioni di riga, usa:

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

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

Puoi usare l'indentazione, sia di tabulazioni che di spazi, e le interruzioni di riga, per rendere i modelli più leggibili:

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

Tuttavia, l'indentazione nel modello sarà presente anche nel testo. Successivamente vedremo come rimuoverlo.

## Rimuovi spazi e interruzioni di riga
<a name="v9-go-removespace"></a>

In text/template uso `{{-` e `-}}` per rimuovere gli spazi iniziali e finali e le interruzioni di riga.

Ad esempio, quando si utilizzano indentazioni e interruzioni di riga per rendere un modello più leggibile:

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

L'indentazione e le interruzioni di riga saranno presenti anche nel testo:

```
    alertname = "Test"

    grafana_folder = "Test alerts"
```

Puoi rimuovere i rientri e le interruzioni di riga dal testo cambiando la posizione `}}` `-}}` all'inizio di ogni intervallo:

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

I rientri e le interruzioni di riga nel modello sono ora assenti dal testo:

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

# Crea modelli di notifica
<a name="v9-alerting-create-templates"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Crea modelli di notifica riutilizzabili da inviare ai tuoi punti di contatto.

Puoi aggiungere uno o più modelli al tuo modello di notifica.

Il nome del modello di notifica deve essere univoco. Non è possibile avere due modelli con lo stesso nome nello stesso modello di notifica o in modelli di notifica diversi. Evita di definire modelli con lo stesso nome dei modelli predefiniti, ad esempio: `__subject``__text_values_list`,`__text_alert_list`, `default.title` e`default.message`.

Nella scheda Punti di contatto, puoi visualizzare un elenco dei tuoi modelli di notifica.

## Creazione di modelli di notifica
<a name="v9-alerting-creating-templates"></a>

**Per creare un modello di notifica**

1. Fai clic su **Aggiungi modello**.

1. Scegli un nome per il modello di notifica, ad esempio`email.subject`.

1. Scrivi il contenuto del modello nel campo del contenuto.

   Esempio:

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

1. Fai clic su Salva.

   `{{ define "email.subject" }}`(`email.subject`dov'è il nome del modello) e `{{ end }}` viene aggiunto automaticamente all'inizio e alla fine del contenuto.

**Per creare un modello di notifica che contenga più di un modello:**

1. Fai clic su **Aggiungi modello**.

1. Inserisci un nome per il modello di notifica generale. Ad esempio, `email`.

1. Scrivi ogni modello nel campo Contenuto, incluso `{{ define "name-of-template" }}` e `{{ end }}` all'inizio e alla fine di ogni modello. È possibile utilizzare nomi descrittivi per ciascuno dei modelli nel modello di notifica, ad esempio, `email.subject` o`email.message`. In questo caso, non riutilizzare il nome del modello di notifica inserito in precedenza.

   Le sezioni seguenti mostrano esempi dettagliati di modelli che potresti creare.

1. Fai clic su Salva.

## Creazione di un modello per l'oggetto di un'e-mail
<a name="v9-alerting-create-template-subject"></a>

Crea un modello per l'oggetto di un'e-mail che contenga il numero di avvisi di attivazione e risolti, come in questo esempio:

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

**Per creare un modello per l'oggetto di un'e-mail**

1. Crea un modello chiamato `email.subject` con il seguente contenuto:

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

1. Usa il modello quando crei l'integrazione del punto di contatto inserendolo nel campo **Oggetto** con la `template` parola chiave.

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

## Creazione di un modello per il messaggio di un'e-mail
<a name="v9-alerting-create-template-message"></a>

Crea un modello per il messaggio di un'e-mail che contenga un riepilogo di tutti gli avvisi di attivazione e risolti, come in questo esempio:

```
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
```

**Per creare un modello per il messaggio di un'e-mail**

1. Crea un modello di notifica chiamato `email` con due modelli nel contenuto: `email.message_alert` e`email.message`.

   Il `email.message_alert` modello viene utilizzato per stampare le etichette e i valori per ogni avviso di attivazione e risolto, mentre il `email.message` modello contiene la struttura dell'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. Utilizza il modello per creare l'integrazione del punto di contatto inserendolo nel campo **Text Body** con la `template` parola chiave.

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

## Creazione di un modello per il titolo di un messaggio Slack
<a name="v9-alerting-create-template-slack-title"></a>

Crea un modello per il titolo di un messaggio Slack che contenga il numero di avvisi attivati e risolti, come nell'esempio seguente:

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

**Per creare un modello per il titolo di un messaggio Slack**

1. Crea un modello chiamato `slack.title` con il seguente contenuto:

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

1. Usa il modello quando crei l'integrazione del tuo punto di contatto inserendolo nel campo **Titolo** con la `template` parola chiave.

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

## Creazione di un modello per il contenuto di un messaggio Slack
<a name="v9-alerting-create-template-slack-message"></a>

Crea un modello per il contenuto di un messaggio Slack che contenga una descrizione di tutti gli avvisi attivati e risolti, comprese le etichette, le annotazioni e l'URL della 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
```

**Per creare un modello per il contenuto di un messaggio Slack**

1. Crea un modello chiamato `slack` con due modelli nel contenuto: `slack.print_alert` e`slack.message`.

   Il `slack.print_alert` modello viene utilizzato per stampare le etichette, le annotazioni e DashboardURL mentre il `slack.message` modello contiene la struttura della notifica.

   ```
   {{ 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. Usa il modello quando crei l'integrazione del punto di contatto inserendolo nel campo **Text Body con la parola chiave**. `template`

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

## Crea modelli sia per email che per Slack con modelli condivisi
<a name="v9-alerting-create-shared-templates"></a>

Invece di creare modelli di notifica separati per ogni punto di contatto, come email e Slack, puoi condividere lo stesso modello.

Ad esempio, se desideri inviare un'email con questo oggetto e un messaggio Slack con questo titolo`1 firing alerts, 0 resolved alerts`, puoi creare un modello condiviso.

**Per creare un modello condiviso**

1. Crea un modello chiamato `common.subject_title` con il seguente contenuto:

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

1. Per le e-mail, esegui il modello dal campo dell'oggetto nell'integrazione del punto di contatto e-mail:

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

1. Per Slack, esegui il modello dal campo del titolo nell'integrazione con i punti di contatto Slack:

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

## Utilizzo dei modelli di notifica
<a name="v9-alerting-use-notification-templates"></a>

Utilizza i modelli nei punti di contatto per personalizzare le notifiche.

**Per utilizzare un modello durante la creazione di un punto di contatto**

1. Dal menu **Avvisi**, scegli **Punti di contatto** per visualizzare un elenco di punti di contatto esistenti.

1. Scegli **Aggiungi punto di contatto**. In alternativa, puoi modificare un punto di contatto esistente scegliendo l'icona **Modifica** (penna) accanto al punto di contatto che desideri modificare.

1. Inserisci i modelli che desideri utilizzare in uno o più campi, come **Messaggio** o **Oggetto**. Per inserire un modello, usa il modulo`{{ template "template_name" . }}`, sostituendolo *template\$1name* con il nome del modello che desideri utilizzare.

1. Fai clic su **Salva punto di contatto**.

# Riferimento modello
<a name="v9-alerting-template-reference"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Questa sezione fornisce informazioni di riferimento per la creazione dei modelli.

## Dati del modello
<a name="v9-alerting-template-data"></a>

I seguenti dati vengono passati ai modelli di messaggio.


| Name | Tipo | Note | 
| --- | --- | --- | 
|  `Receiver`  |  stringa  |  Nome del punto di contatto a cui viene inviata la notifica.  | 
|  `Status`  |  stringa  |  attivazione se viene attivato almeno un avviso, altrimenti risolto.  | 
|  `Alerts`  |  Alert  |  Elenco degli oggetti di avviso inclusi in questa notifica (vedi sotto).  | 
|  `GroupLabels`  |  KeyValue  |  Etichette in base alle quali questi avvisi sono stati raggruppati.  | 
|  `CommonLabels`  |  KeyValue  |  Etichette comuni a tutti gli avvisi inclusi in questa notifica.  | 
|  `CommonAnnotations`  |  KeyValue  |  Annotazioni comuni a tutti gli avvisi inclusi in questa notifica.  | 
|  `ExternalURL`  |  stringa  |  Link di ritorno al Grafana che ha inviato la notifica. Se si utilizza un Alertmanager esterno, ricollega a questo Alertmanager.  | 

Il `Alerts` tipo espone due funzioni per filtrare gli avvisi restituiti.
+ `Alerts.Firing`— Restituisce un elenco di avvisi di attivazione.
+ `Alerts.Resolved`— Restituisce un elenco di avvisi risolti.

**Avviso (tipo)**

Il tipo di avviso contiene i seguenti dati.


| Name | Tipo | Note | 
| --- | --- | --- | 
|  Status  |  stringa  |  `firing` o `resolved`.  | 
|  Etichette  |  KeyValue  |  Un set di etichette allegate all'avviso.  | 
|  Annotazioni  |  KeyValue  |  Un insieme di annotazioni allegate all'avviso.  | 
| Valori | KeyValue | I valori di tutte le espressioni, incluse le condizioni classiche | 
|  StartsAt  |  Time.time  |  L'ora in cui l'allarme ha iniziato a scattare.  | 
|  EndsAt  |  Tempo. Tempo  |  Impostato solo se è nota l'ora di fine di un avviso. Altrimenti impostato su un periodo di timeout configurabile dal momento in cui è stato ricevuto l'ultimo avviso.  | 
|  URL del generatore  |  stringa  |  Un link a Grafana o un gestore di avvisi esterno.  | 
|  URL silenzioso  |  stringa  |  Un link per silenziare l'avviso (con le etichette precompilate per questo avviso). Solo per gli avvisi gestiti da Grafana.  | 
|  URL del pannello di controllo  |  stringa  |  Collegamento alla dashboard di Grafana, se la regola di avviso appartiene a una di esse. Solo per gli avvisi gestiti da Grafana.  | 
|  URL del pannello  |  stringa  |  Collegamento al pannello di dashboard di Grafana, se la regola di avviso appartiene a uno. Solo per gli avvisi gestiti da Grafana.  | 
|  Impronta digitale  |  stringa  |  Impronta digitale che può essere utilizzata per identificare l'avviso.  | 
|  ValueString  |  stringa  |  Una stringa che contiene le etichette e il valore di ogni espressione ridotta nell'avviso.  | 

 **ExtendedData**

L' ExtendedData oggetto contiene le seguenti proprietà.


| Name | Tipo | Description | Esempio | 
| --- | --- | --- | --- | 
|  Ricevitore  |  `string`  |  Il nome del punto di contatto che invia la notifica.  |  `{{ .Receiver }}`  | 
|  Status  |  `string`  |  Lo stato è `firing if at least one alert is firing, otherwise resolved.`  |  `{{ .Status }}`  | 
|  Avvisi  |  `[]Alert`  |  Elenco di tutti gli allarmi attivi e risolti in questa notifica.  |  `There are {{ len .Alerts }} alerts`  | 
|  Avvisi di attivazione  |  `[]Alert`  |  Elenco di tutti gli allarmi di attivazione contenuti in questa notifica.  |  `There are {{ len .Alerts.Firing }} firing alerts`  | 
|  Avvisi risolti  |  `[]Alert`  |  Elenco di tutti gli avvisi risolti in questa notifica.  |  `There are {{ len .Alerts.Resolved }} resolved alerts`  | 
|  GroupLabels  |  `KeyValue`  |  Le etichette che raggruppano questi avvisi in questa notifica.  |  `{{ .GroupLabels }}`  | 
|  CommonLabels  |  `KeyValue`  |  Le etichette comuni a tutti gli avvisi di questa notifica.  |  `{{ .CommonLabels }}`  | 
|  CommonAnnotations  |  `KeyValue`  |  Le annotazioni comuni a tutti gli avvisi di questa notifica.  |  `{{ .CommonAnnotations }}`  | 
|  URL esterno  |  `string`  |  Un collegamento all'area di lavoro Grafana o Alertmanager che ha inviato questa notifica.  |  `{{ .ExternalURL }}`  | 

**KeyValue tipo**

Il `KeyValue` tipo è un insieme di coppie di key/value stringhe che rappresentano etichette e annotazioni.

Oltre all'accesso diretto ai dati archiviati come file`KeyValue`, esistono anche metodi per ordinare, rimuovere e trasformare i dati.


| Name | Arguments (Argomenti) | Valori restituiti | Note | Esempio | 
| --- | --- | --- | --- | --- | 
|  SortedPairs  |    |  Elenco ordinato di coppie di stringhe di chiavi e valori  |    | `{{ .Annotations.SortedPairs }}` | 
|  Rimuovi  |  [] stringa  |  KeyValue  |  Restituisce una copia della Key/Value mappa senza le chiavi fornite.  | `{{ .Annotations.Remove "summary" }}` | 
|  Nomi  |    |  [] stringa  |  Elenco dei nomi delle etichette  | `{{ .Names }}` | 
|  Valori  |    |  [] stringa  |  Elenco dei valori delle etichette  | `{{ .Values }}` | 

**Time** (Orario)

L'ora proviene dal [https://pkg.go.dev/time#Time](https://pkg.go.dev/time#Time)pacchetto Go. È possibile stampare un orario in diversi formati. Ad esempio, per stampare l'ora di attivazione di un avviso nel formato`Monday, 1st January 2022 at 10:00AM`, scrivi il seguente modello:

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

Puoi trovare un riferimento per il formato orario di Go [qui](https://pkg.go.dev/time#pkg-constants).

## Funzioni del modello
<a name="v9-alerting-template-functions"></a>

Utilizzando le funzioni del modello è possibile elaborare etichette e annotazioni per generare notifiche dinamiche. Sono disponibili le seguenti funzioni.


| Name | Tipo di argomento | Tipo restituito | Description | 
| --- | --- | --- | --- | 
|  `humanize`  |  numero o stringa  |  stringa  |  Converte un numero in un formato più leggibile, utilizzando prefissi metrici.  | 
|  `humanize1024`  |  numero o stringa  |  stringa  |  Come humanize, ma usa 1024 come base anziché 1000.  | 
|  `humanizeDuration`  |  numero o stringa  |  stringa  |  Converte una durata in secondi in un formato più leggibile.  | 
|  `humanizePercentage`  |  numero o stringa  |  stringa  |  Converte un valore del rapporto in una frazione di 100.  | 
|  `humanizeTimestamp`  |  numero o stringa  |  stringa  |  Converte un timestamp Unix in pochi secondi in un formato più leggibile.  | 
|  `title`  |  stringa  |  stringa  |  Strings.title, mette in maiuscolo il primo carattere di ogni parola.  | 
|  `toUpper`  |  stringa  |  stringa  |  stringhe. ToUpper, converte tutti i caratteri in lettere maiuscole.  | 
|  `toLower`  |  stringa  |  stringa  |  stringhe. ToLower, converte tutti i caratteri in minuscolo.  | 
|  `match`  |  motivo, testo  |  Booleano  |  espressione regolare. MatchString Verifica una corrispondenza regexp non ancorata.  | 
|  `reReplaceAll`  |  modello, sostituzione, testo  |  stringa  |  Regexp. ReplaceAllString Sostituzione Regexp, non ancorata.  | 
|  `graphLink`  |  string - Oggetto JSON con e campi `expr` `datasource`  |  stringa  |  Restituisce il percorso della visualizzazione grafica in Explore per l'espressione e l'origine dati specificate.  | 
|  `tableLink`  |  string - Oggetto JSON con `expr` e campi `datasource`  |  stringa  |  Restituisce il percorso della vista tabulare in Explore per l'espressione e l'origine dati specificate.  | 
|  `args`  |  [] interfaccia \$1\$1  |  mappa [stringa] interfaccia \$1\$1  |  Converte un elenco di oggetti in una mappa con chiavi, ad esempio arg0, arg1. Utilizzate questa funzione per passare più argomenti ai modelli.  | 
|  `externalURL`  |  nulla  |  stringa  |  Restituisce una stringa che rappresenta l'URL esterno.  | 
|  `pathPrefix`  |  nulla  |  stringa  |  Restituisce il percorso dell'URL esterno.  | 

La tabella seguente mostra esempi di utilizzo di ciascuna funzione.


| Funzione | TemplateString | Input | Expected (Atteso) | 
| --- | --- | --- | --- | 
|  umanizzare  |  \$1umanizza \$1value\$1  |  1234567,0  |  1,235 M  | 
|  umanizza 1024  |  \$1humanize1024 \$1value\$1  |  1048576,0  |  1 Mi  | 
|  Durata umanizzata  |  \$1UmanizeDuration \$1value\$1  |  899,99  |  14 m 59 s  | 
|  Umanizza la percentuale  |  \$1humanizePercentage \$1value\$1  |  0,1234567  |  12,35%  | 
|  Umanizza il timestamp  |  \$1humanizeTimestamp \$1value\$1  |  1435065584,128  |  2015-06-23 13:19:44.128 \$10000 UTC  | 
|  titolo  |  \$1\$1valore \$1 titolo\$1  |  un B C  |  Aa Bb Cc  | 
|  toUpper  |  \$1\$1valore \$1 toUpper\$1  |  un dB C  |  A B C  | 
|  toLower  |  \$1\$1valore \$1 toLower\$1  |  un B C  |  a b c  | 
|  match  |  \$1match «a\$1» \$1labels.instance\$1  |  aa  |  true  | 
|  reReplaceAll  |  \$1\$1 reReplaceAll «localhost :( .\$1)» «my.domain: \$11" \$1labels.instance\$1\$1  |  host locale: 3000  |  mio.domain:3000  | 
|  GraphLink  |  \$1\$1graphLink «\$1\$1" expr\$1»:\$1 "up\$1»,\$1 "fonte dati\$1»:\$1 "gdev-prometheus\$1"\$1»\$1\$1  |    |  /esplorare? left= ["ora-1h», "adesso», "gdev-prometheus», \$1"datasource» :"gdev-prometheus», "expr» :"up», "instant» :false, "range» :true\$1]  | 
|  TableLink  |  \$1\$1tableLink «\$1\$1" expr\$1»:\$1 "up\$1»,\$1 "fonte dati\$1»:\$1 "gdev-prometheus\$1"\$1»\$1\$1  |    |  /esplorare? left= ["ora-1h», "adesso», "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  | 
|  URL esterno  |  \$1URL esterno\$1  |    |  http://localhost/path/prefix  | 
|  Prefisso del percorso  |  \$1PathPrefix\$1  |    |  /percorso/prefisso  | 

# Silenziamento delle notifiche di avviso per le fonti di dati Prometheus
<a name="v9-alerting-silences"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

*Per le fonti di dati esterne di Alert Manager (incluso Amazon Managed Service for Prometheus), puoi sopprimere le notifiche di avviso con un silenzio.* Un silenzio impedisce solo la creazione di notifiche: i silenzi non impediscono la valutazione delle regole di avviso e non impediscono la visualizzazione delle istanze di avviso nell'interfaccia utente. Quando si silenzia un avviso, si specifica un intervallo di tempo entro il quale tale avviso deve essere soppresso.

È possibile configurare i silenzi per un'origine dati esterna di Alertmanager.

**Nota**  
Per sopprimere le notifiche di avviso a intervalli di tempo regolari o per altre fonti di dati (ad esempio, durante i normali periodi di manutenzione), utilizza anziché i silenzi. [Tempi di silenziamento](v9-alerting-notification-muting.md)

**Per aggiungere un silenzio**

1. **Dalla console Grafana, nel menu Grafana, scegli l'icona Avvisi (campanella) per **aprire la pagina Avvisi**.**

1. Scegli **Silences per aprire un elenco** di pagine esistenti. [Lavorare con i punti di contatto](v9-alerting-contact-points.md)

1. **Scegli il gestore di avvisi esterno dal menu a discesa Alertmanager.**

1. **Seleziona** Aggiungi silenzio.

1. Seleziona la data di inizio e di fine in **Silenzio inizio e fine** per indicare quando il silenzio deve entrare in vigore e quando dovrebbe finire.

   In alternativa all'impostazione di un'ora di fine, in **Durata**, specifica per quanto tempo viene applicato il silenzio. Questo aggiorna automaticamente l'ora di fine nel campo di **inizio e fine del silenzio**.

1. Nei campi **Nome** e **Valore**, inserisci una o più *etichette corrispondenti*. Gli abbinatori determinano a quali regole si applica il silenzio. La corrispondenza delle etichette viene discussa più dettagliatamente seguendo questa procedura.

1. Facoltativamente, aggiungi un **commento** o modifica il **Creatore** per impostare il proprietario del silenzio.

1. Scegli **Crea** per creare il silenzio.

Puoi modificare un silenzio esistente scegliendo l'icona **Modifica** (penna).

**Corrispondenza delle etichette per la soppressione degli avvisi**

Quando si crea un silenzio, si crea una serie di *etichette corrispondenti* come parte del silenzio. Si tratta di un insieme di regole sulle etichette che devono corrispondere affinché l'avviso venga soppresso. Le etichette corrispondenti sono costituite da tre parti:
+ **Etichetta**: il nome dell'etichetta da abbinare. Deve corrispondere esattamente al nome dell'etichetta dell'avviso.
+ **Operatore**: l'operatore utilizzato per confrontare il valore dell'etichetta con il valore dell'etichetta corrispondente. Gli operatori disponibili sono:
  + `=`Seleziona le etichette il cui valore corrisponde esattamente alla stringa fornita.
  + `!=`Seleziona le etichette il cui valore non corrisponde alla stringa fornita.
  + `=~`Seleziona le etichette il cui valore corrisponde al valore interpretato dall'espressione regolare della stringa fornita (la stringa fornita viene interpretata come un'espressione regolare).
  + `!=`Seleziona le etichette che non corrispondono all'espressione regolare fornita.
+ **Valore**: il valore a cui abbinare il valore dell'etichetta. Può corrispondere come stringa o come espressione regolare, a seconda dell'operatore scelto.

Un silenzio termina alla data di fine indicata, ma è possibile terminare manualmente la soppressione in qualsiasi momento.

**Per terminare un silenzio manualmente**

1. Nella pagina **Avvisi**, scegli **Silenzi** per visualizzare l'elenco dei silenzi esistenti.

1. **Seleziona il silenzio che vuoi terminare e scegli Annulla silenzio.** Questo termina la soppressione degli avvisi.
**Nota**  
La disattivazione del silenzio interrompe la soppressione degli avvisi, come se l'ora di fine fosse impostata per l'ora corrente. I silenzi terminati (automaticamente o manualmente) vengono conservati ed elencati per cinque giorni. Non è possibile rimuovere manualmente un silenzio dall'elenco.

**Creazione di un collegamento al modulo per la creazione del silenzio**

È possibile creare un URL per il modulo di creazione del silenzio con i dettagli già compilati. Gli operatori possono utilizzarlo per sopprimere rapidamente un allarme durante un evento operativo.

Quando create un collegamento a un modulo di silenzio, utilizzate un parametro di `matchers` query per specificare le etichette corrispondenti e un parametro di `comment` query per specificare un commento. Il `matchers` parametro richiede uno o più valori nel modulo`[label][operator][value]`, separati da virgole.

**URL di esempio**

Per creare un collegamento a un modulo silenzioso, con etichette corrispondenti `severity=critical` e`cluster!~europe-.*`, con un commento che dice`Silencing critical EU alerts`, usa un URL come il seguente. Sostituisci *mygrafana* con il nome host dell'istanza Grafana.

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

Per creare un collegamento a una nuova pagina silenziosa per un Alertmanager esterno, aggiungi un parametro di `alertmanager` query con il nome dell'origine dati Alertmanage, ad esempio. `alertmanager=myAlertmanagerdatasource`

# Tempi di silenziamento
<a name="v9-alerting-notification-muting"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Una tempistica di silenziamento è un intervallo di tempo ricorrente in cui non vengono generate o inviate nuove notifiche relative a una policy. Utilizzali per evitare che gli avvisi si attivino in un periodo specifico e ricorrente, ad esempio un periodo di manutenzione regolare.

Analogamente ai silenzi, i tempi di disattivazione dell'audio non impediscono la valutazione delle regole di avviso né impediscono la visualizzazione delle istanze di avviso nell'interfaccia utente. Impediscono solo la creazione di notifiche.

È possibile configurare i tempi di silenziamento gestiti da Grafana e i tempi di silenziamento per un'origine dati Alertmanager esterna.

**Tempi di silenziamento rispetto ai silenzi**

La tabella seguente evidenzia le differenze tra i tempi di silenziamento e i silenzi.


| Tempistica del silenziamento | Silenzio | 
| --- | --- | 
|  Utilizza definizioni di intervalli di tempo che possono ripetersi.  |  Ha un'ora di inizio e di fine fisse.  | 
|  Viene creato e quindi aggiunto alle politiche di notifica.  |  Utilizza le etichette per confrontarle con un avviso per determinare se silenziarlo o meno.  | 
|  Funziona con avvisi Grafana e gestori di avvisi esterni.  |  Funziona solo con gestori di avvisi esterni.  | 

**Per creare una tempistica di silenziamento**

1. **Dalla console Grafana, nel menu Grafana, scegli l'icona Avvisi (campanella) per **aprire la pagina Avvisi**.**

1. **Scegli Politiche di notifica.**

1. Dal menu a discesa **Alertmanager**, seleziona il gestore degli avvisi che desideri modificare.

1. **Nella sezione Tempi di **silenziamento, scegli il pulsante Aggiungi tempi di** silenziamento.**

1. Scegli l'intervallo di tempo a cui desideri applicare la tempistica di silenziamento.

1. Scegli **Invia per creare la tempistica** del silenziamento.

**Per aggiungere una tempistica di silenziamento a una politica di notifica**

1. **Seleziona la politica di notifica a cui desideri aggiungere la tempistica di silenziamento e scegli il pulsante Modifica.**

1. Dal menu a discesa **Tempi di silenziamento, seleziona gli** orari di silenziamento che desideri aggiungere alla politica.

   **Scegli il pulsante Salva politica.**

**Intervalli di tempo**

Un intervallo di tempo è una definizione per un intervallo di tempo. Se un avviso viene avviato durante questo intervallo, viene soppresso. Gli intervalli sono supportati utilizzando `:` (ad esempio,). `monday:thursday` Una temporizzazione di silenziamento può contenere più intervalli di tempo. Un intervallo di tempo è costituito da più campi (i dettagli sono riportati nell'elenco seguente), che devono corrispondere tutti per eliminare gli avvisi. Ad esempio, se si specificano i giorni della settimana `monday:friday` e l'intervallo di orario dalle 8:00 alle 9:00, gli avvisi vengono eliminati dalle 8:00 alle 9:00, dal lunedì al venerdì, ma non, ad esempio, dalle 8:00 alle 9 il sabato.
+ **Intervallo di tempo**: l'ora del giorno in cui sopprimere le notifiche. È composto da due sottocampi, Ora di **inizio e Ora** di **fine**. Un esempio di ora è`14:30`. L'ora è espressa nella notazione di 24 ore, in UTC.
+ **Giorni della settimana**: i giorni della settimana. Può essere un singolo giorno, ad esempio un intervallo`monday`, ad esempio`monday:friday`, o un elenco di giorni separati da virgole, ad esempio. `monday, tuesday, wednesday`
+ **Mesi**: i mesi da selezionare. È possibile specificare i mesi con designazioni numeriche o con il nome completo del mese, ad esempio, `1` oppure `january` entrambi specificano gennaio. È possibile specificare un solo mese, un intervallo di mesi o un elenco di mesi separati da virgole.
+ **Giorni del mese**: le date entro un mese. I valori possono variare da `1` -`31`. I valori negativi specificano i giorni del mese in ordine inverso, quindi `-1` rappresentano l'ultimo giorno del mese. I giorni del mese possono essere specificati come un singolo giorno, un intervallo di giorni o un elenco di giorni separato da virgole.
+ **Anni**: l'anno o gli anni per l'intervallo. Ad esempio, `2023:2025`.

Ciascuno di questi elementi può essere un elenco e almeno un elemento nell'elemento deve essere soddisfatto per avere una corrispondenza. Quindi, se imposti gli anni`2023:2025, 2027`, allora sarebbe vero nel 2023, 2024, 2025 e 2027 (ma non nel 2026).

Se un campo viene lasciato vuoto, qualsiasi momento corrisponderà al campo. Un momento deve corrispondere a tutti i campi per corrispondere a un intervallo di tempo completo.

Se desideri specificare una durata esatta, specifica tutte le opzioni necessarie per tale durata. Ad esempio, se desideri creare un intervallo di tempo per il primo lunedì del mese, per marzo, giugno, settembre e dicembre, tra le 12:00 e le 24:00 UTC, la specifica dell'intervallo di tempo potrebbe essere:
+ Intervallo di tempo:
  + Ora di inizio: `12:00`
  + Ora di fine: `24:00`
+ Giorni della settimana: `monday`
+ Mesi: `3, 6, 9, 12`
+ Giorni del mese: `1:7`

# Visualizza e filtra per gruppi di avvisi
<a name="v9-alerting-viewfiltergroups"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

I gruppi di avvisi mostrano avvisi raggruppati provenienti da un'istanza di Alertmanager. Per impostazione predefinita, le regole di avviso sono raggruppate in base alle chiavi di etichetta per la politica principale nelle politiche di notifica. Il raggruppamento delle regole di avviso comuni in un unico gruppo di avvisi impedisce l'attivazione di regole di avviso duplicate.

È possibile visualizzare i gruppi di avvisi e anche filtrare le regole di avviso che corrispondono a criteri specifici.

**Per visualizzare i gruppi di avvisi**

1. Nel menu Grafana, fai clic sull'icona **Avvisi** (campana) per aprire la pagina Avvisi che elenca gli avvisi esistenti.

1. Fai clic su **Gruppi di avvisi** per aprire la pagina che elenca i gruppi esistenti.

1. Dal menu a discesa **Alertmanager**, seleziona un Alertmanager esterno come fonte di dati.

1. Dal menu a discesa **personalizzato raggruppa per**, seleziona una combinazione di etichette per visualizzare un raggruppamento diverso da quello predefinito. Ciò è utile per eseguire il debug e verificare il raggruppamento delle politiche di notifica.

Se un avviso non contiene le etichette specificate nel raggruppamento della policy principale o nel raggruppamento personalizzato, l'avviso viene aggiunto a un gruppo catch all con un'intestazione di. `No grouping`

**Per filtrare per etichetta**
+ In **Cerca**, inserisci un'etichetta esistente per visualizzare gli avvisi corrispondenti all'etichetta.

  Ad esempio, `environment=production,region=~US|EU,severity!=warning`.

**Per filtrare per stato**
+ In **Stati**, seleziona gli stati Attivo, Soppresso o Non elaborato per visualizzare gli avvisi corrispondenti allo stato selezionato. Tutti gli altri avvisi sono nascosti.

# Visualizza gli errori di notifica
<a name="v9-alerting-viewnotificationerrors"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 9.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. [Funzionamento nella versione 10 di Grafana](using-grafana-v10.md)  
Per le aree di lavoro Grafana che supportano la versione 8.x di Grafana, vedere. [Funzionamento in Grafana versione 8](using-grafana-v8.md)

Visualizza gli errori di notifica e scopri perché non sono stati inviati o non sono stati ricevuti.

**Nota**  
Questa funzionalità è supportata solo per Grafana Alertmanager.

**Per visualizzare gli errori di notifica**

1. Nel menu Grafana, fai clic sull'icona **Avvisi** (campana) per aprire la pagina Avvisi che elenca gli avvisi esistenti.

1. Scegli **Punti di contatto** per visualizzare un elenco dei punti di contatto esistenti.

   Se qualche punto di contatto non funziona, un messaggio nell'angolo destro dello schermo avvisa l'utente del fatto che ci sono errori e quanti sono.

1. Fai clic su un punto di contatto per visualizzare i dettagli degli errori relativi a quel punto di contatto.

   I dettagli dell'errore vengono visualizzati se si posiziona il puntatore del mouse sull'icona Errore.

   Se un punto di contatto ha più di un'integrazione, vengono visualizzati tutti gli errori per ciascuna delle integrazioni elencate.

1. Nella colonna Health, controlla lo stato della notifica.

   Può essere OK, Nessun tentativo o Errore.