Modelli e variabili - Grafana gestito da Amazon

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à.

Modelli e variabili

Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 8.x di Grafana.

Per le aree di lavoro Grafana che supportano la versione 10.x di Grafana, vedere. Funzionamento nella versione 10 di Grafana

Per le aree di lavoro Grafana che supportano la versione 9.x di Grafana, vedere. Lavorare nella versione 9 di Grafana

Una variabile è un segnaposto per un valore. È possibile utilizzare le variabili nelle query metriche e nei titoli dei pannelli. Le variabili ti danno la possibilità di creare dashboard più interattive e dinamiche. Invece di inserire elementi come nomi di server, applicazioni e sensori nelle query metriche, puoi utilizzare variabili al loro posto.

Le variabili vengono visualizzate come elenchi a discesa nella parte superiore della dashboard. Quando modifichi il valore utilizzando l'elenco a discesa nella parte superiore della dashboard, le query metriche del pannello riflettono il nuovo valore.

Queste possono essere particolarmente utili per gli amministratori che desiderano consentire agli spettatori di modificare rapidamente le visualizzazioni ma non vogliono concedere loro autorizzazioni di modifica complete. I visualizzatori Grafana possono utilizzare variabili.

Utilizzando variabili e modelli, puoi creare dashboard da un'unica fonte. Se disponi di più sorgenti di dati o server identici, puoi creare un'unica dashboard e utilizzare le variabili per modificare ciò che stai visualizzando. Questo semplifica la manutenzione e la manutenzione.

Per un elenco dei tipi di variabili supportati e le istruzioni per aggiungere ogni tipo di variabile, vedere Tipi di variabili

Modelli

Un modello è qualsiasi interrogazione che contiene una variabile.

Ad esempio, se stavi amministrando una dashboard per monitorare diversi server, potresti creare una dashboard per ogni server. In alternativa, è possibile creare una dashboard e utilizzare pannelli con query basate su modelli, come illustrato nell'esempio seguente.

wmi_system_threads{instance=~"$server"}

I valori delle variabili vengono sempre sincronizzati con l'URL utilizzando la sintassi. var-<varname>=value

Procedure ottimali variabili

Gli elenchi a discesa delle variabili vengono visualizzati nell'ordine in cui sono elencati nell'elenco delle variabili nelle impostazioni della dashboard.

Metti le variabili che cambierai spesso in alto, in modo che vengano mostrate per prime, all'estrema sinistra della dashboard.

Sintassi variabile

I titoli dei pannelli e le query metriche possono visualizzare le variabili utilizzando due diverse sintassi:

  • $varnameQuesta sintassi è più facile da leggere, come nell'esempio seguente:. apps.frontend.$server.requests.count Tuttavia, non è possibile utilizzare una variabile al centro di una parola.

  • ${var_name}Utilizzate questa sintassi quando desiderate interpolare una variabile al centro di un'espressione.

  • ${var_name:<format>}Questo formato offre un maggiore controllo sul modo in cui Grafana interpola i valori. Per ulteriori informazioni, consulta Opzioni avanzate di formato variabile.

Prima che le query vengano inviate alla fonte di dati, la query viene interpolata, il che significa che la variabile viene sostituita con il suo valore corrente. Durante l'interpolazione, è possibile che il valore della variabile venga ignorato per renderlo conforme alla sintassi del linguaggio di interrogazione e del luogo in cui viene utilizzato. Ad esempio, una variabile utilizzata in un'espressione regex in una query Prometheus verrà escapata da regex. Leggi l'argomento della documentazione specifico sulla fonte di dati per i dettagli sulla fuga di valore durante l'interpolazione.

Per informazioni sulla sintassi avanzata per sovrascrivere la formattazione predefinita dell'origine dati, consulta. Opzioni avanzate di formato variabile

Altre opzioni variabili

Questa sezione spiega le altre opzioni variabili disponibili.

Inserimento delle opzioni di selezione delle variabili

È possibile utilizzare le opzioni di selezione per gestire le selezioni di opzioni variabili. Tutte le opzioni di selezione sono opzionali e sono disattivate per impostazione predefinita.

Valore multiplo

Se attivi questa opzione, l'elenco a discesa delle variabili supporta la selezione di più opzioni contemporaneamente. Per ulteriori informazioni, consulta Formattazione di variabili multivalore.

Opzione Includi tutto

L'area di lavoro Grafana aggiunge un'Allopzione all'elenco a discesa delle variabili. Se un utente finale seleziona questa opzione, vengono selezionate tutte le opzioni variabili.

Personalizza tutti i valori

Questa opzione è visibile solo se è selezionata l'opzione Includi tutto.

Per definire il valore dell'Allopzione, inserisci la sintassi regex, glob o Lucene nel campo Custom all value.

Per impostazione predefinita, il All valore include tutte le opzioni nell'espressione combinata. Questa operazione può diventare molto lunga e causare problemi di prestazioni. A volte può essere meglio specificare un valore all personalizzato, ad esempio un'espressione regolare di tipo wild card.

Quando utilizzi la sintassi personalizzata regex, glob o Lucene nell'opzione Custom all value, non viene mai ignorata, quindi devi considerare quale sia un valore valido per la tua origine dati.

Opzioni avanzate di formato variabile

La formattazione dell'interpolazione delle variabili dipende dall'origine dei dati, ma ci sono alcune situazioni in cui potresti voler modificare la formattazione predefinita.

Ad esempio, l'impostazione predefinita per l'origine dati MySQL consiste nell'unire più valori separati da virgole da virgole:. 'server01','server02' In alcuni casi, potresti voler avere una stringa separata da virgole senza virgolette:. server01,server02 Per fare ciò, usa le seguenti opzioni avanzate di formattazione delle variabili.

Sintassi generale

Sintassi: ${var_name:option}

Se viene specificata un'opzione di formattazione non valida, glob è l'opzione predefinita o di riserva.

CSV

Formatta le variabili con più valori come una stringa separata da virgole.

servers = ['test1', 'test2'] String to interpolate: '${servers:csv}' Interpolation result: 'test1,test2'

Distribuito - OpenTSDB

Formatta le variabili con più valori in formato personalizzato per OpenTSDB.

servers = ['test1', 'test2'] String to interpolate: '${servers:distributed}' Interpolation result: 'test1,servers=test2'

Virgolette doppie

Formatta le variabili a valore singolo e multivalore in una stringa separata da virgole, scappa " in ogni valore da e cita ogni valore con\". "

servers = ['test1', 'test2'] String to interpolate: '${servers:doublequote}' Interpolation result: '"test1","test2"'

Glob - Grafite

Formatta le variabili con più valori in un glob (per le query Graphite).

servers = ['test1', 'test2'] String to interpolate: '${servers:glob}' Interpolation result: '{test1,test2}'

JSON

Formatta le variabili con più valori come una stringa separata da virgole.

servers = ['test1', 'test2'] String to interpolate: '${servers:json}' Interpolation result: '["test1", "test2"]'

Lucene - OpenSearch

Formatta le variabili con più valori in formato Lucene per. OpenSearch

servers = ['test1', 'test2'] String to interpolate: '${servers:lucene}' Interpolation result: '("test1" OR "test2")'

Codice percentuale

Formatta le variabili a valore singolo e multivalore da utilizzare nei parametri URL.

servers = ['foo()bar BAZ', 'test2'] String to interpolate: '${servers:percentencode}' Interpolation result: 'foo%28%29bar%20BAZ%2Ctest2'

Pipeline

Formatta le variabili con più valori in una stringa separata da un tubo.

servers = ['test1.', 'test2'] String to interpolate: '${servers:pipe}' Interpolation result: 'test1.|test2'

Raw

Disattiva la formattazione specifica dell'origine dati, ad esempio le virgolette singole in una query SQL.

servers = ['test1.', 'test2'] String to interpolate: '${var_name:raw}' Interpolation result: '{test.1,test2}'

Espressione regolare

Formatta le variabili con più valori in una stringa regex.

servers = ['test1.', 'test2'] String to interpolate: '${servers:regex}' Interpolation result: '(test1\.|test2)'

Citazione singola

Formatta le variabili a valore singolo e multiplo in una stringa separata da virgole, scade ' in ogni valore per e cita ogni valore con. \' '

servers = ['test1', 'test2'] String to interpolate: '${servers:singlequote}' Interpolation result: "'test1','test2'"

Sqlstring

Formatta le variabili a valore singolo e multivalore in una stringa separata da virgole, scade ' in ogni valore per e cita ogni valore con. '' '

servers = ["test'1", "test2"] String to interpolate: '${servers:sqlstring}' Interpolation result: "'test''1','test2'"

Testo

Formatta le variabili a valore singolo e multivalore nella loro rappresentazione testuale. Per una singola variabile, restituirà solo la rappresentazione del testo. Per le variabili multivalore, restituirà la rappresentazione del testo combinata con+.

servers = ["test1", "test2"] String to interpolate: '${servers:text}' Interpolation result: "test1 + test2"

Formattazione di variabili multivalore

L'interpolazione di una variabile con più valori selezionati è complicata in quanto non è semplice formattare i valori multipli in una stringa valida nel contesto dato in cui viene utilizzata la variabile. Grafana cerca di risolvere questo problema abilitando ogni plug-in di origine dati a comunicare al motore di interpolazione dei modelli quale formato utilizzare per più valori.

Nota

L'opzione Personalizza tutti i valori sulla variabile deve essere vuota affinché Grafana formatti tutti i valori in un'unica stringa. Se lo lasci vuoto, la Grafana concatena (somma) tutti i valori della query. value1,value2,value3Qualcosa del genere. Se viene utilizzato un all valore personalizzato, il valore sarà invece qualcosa come * oall.

Variabili multivalore con una fonte di dati Graphite

Graphite utilizza espressioni globulari. Una variabile con più valori, in questo caso, verrebbe interpolata come {host1,host2,host3} se il valore della variabile corrente fosse host1, host2 e host3.

Variabili multivalore con un'origine dati Prometheus o InfluxDB

InfluxDB e Prometheus utilizzano espressioni regex, quindi la stessa variabile verrebbe interpolata di. (host1|host2|host3) Ogni valore verrebbe inoltre escluso dall'espressione regolare. In caso contrario, un valore con un carattere di controllo regex interromperebbe l'espressione regex.

Variabili multivalore con un'origine dati elastica

Amazon OpenSearch utilizza la sintassi delle query Lucene, quindi la stessa variabile verrebbe formattata come. ("host1" OR "host2" OR "host3") In questo caso, è necessario escludere ogni valore in modo che il valore contenga solo le parole di controllo e le virgolette di Lucene.

Risoluzione dei problemi di formattazione

L'escape e la formattazione automatici possono causare problemi. Può essere difficile comprendere la logica alla base di un problema, specialmente per InfluxDB e Prometheus, dove l'uso della sintassi regex richiede che la variabile venga utilizzata nel contesto dell'operatore regex.

Se non vuoi che Grafana esegua questa operazione di escape e formattazione automatica delle espressioni regolari, devi eseguire una delle seguenti operazioni:

  • Disattiva le opzioni dell'opzione Multivalore Includi tutto.

  • Usa il [formato variabile non elaborato] ({{< relref "advanced-variable-format-options.md #raw" >}}).

Filtrare le variabili con regex

Utilizzando l'opzione Regex Query, è possibile filtrare l'elenco di opzioni restituite dalla variabile query o modificare le opzioni restituite.

Questa sezione mostra come utilizzare regex per filtrare e modificare i valori nell'elenco a discesa delle variabili.

Utilizzando l'opzione Regex Query, si filtra l'elenco di opzioni restituite dalla query Variable o si modificano le opzioni restituite. Per ulteriori informazioni, vedete Espressioni regolari.

Esempi di filtraggio nel seguente elenco di opzioni:

backend_01 backend_02 backend_03 backend_04

Filtraggio in modo che vengano restituite solo le opzioni che terminano con 01 o 02

Regex:

/.*[01|02]/

Risultato:

backend_01 backend_02

Filtraggio e modifica delle opzioni utilizzando un gruppo di acquisizione regex per restituire parte del testo

Regex:

/.*(01|02)/

Risultato:

01 02

Filtraggio e modifica - Esempio di Prometheus

Elenco di opzioni:

up{instance="demo.robustperception.io:9090",job="prometheus"} 1 1521630638000 up{instance="demo.robustperception.io:9093",job="alertmanager"} 1 1521630638000 up{instance="demo.robustperception.io:9100",job="node"} 1 1521630638000

Regex:

/.*instance="([^"]*).*/

Risultato:

demo.robustperception.io:9090 demo.robustperception.io:9093 demo.robustperception.io:9100

Filtraggio e modifica utilizzando testo denominato e gruppi di acquisizione di valori

Utilizzando gruppi di acquisizione denominati, è possibile acquisire parti separate di «testo» e «valore» dalle opzioni restituite dalla query variabile. L'elenco a discesa delle variabili può contenere un nome descrittivo per ogni valore che può essere selezionato.

Ad esempio, quando si esegue una query sulla metrica node_hwmon_chip_names Prometheus, è più intuitivo del valore. chip_name chip Inizia con il seguente risultato della query variabile.

node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_0",chip_name="enp216s0f0np0"} 1 node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_1",chip_name="enp216s0f0np1"} 1 node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_2",chip_name="enp216s0f0np2"} 1 node_hwmon_chip_names{chip="0000:d7:00_0_0000:d8:00_3",chip_name="enp216s0f0np3"} 1

Passalo attraverso la seguente Regex.

/chip_name="(?<text>[^"]+)|chip="(?<value>[^"]+)/g

Viene prodotto il seguente elenco a discesa.

Display Name Value ------------ ------------------------- enp216s0f0np0 0000:d7:00_0_0000:d8:00_0 enp216s0f0np1 0000:d7:00_0_0000:d8:00_1 enp216s0f0np2 0000:d7:00_0_0000:d8:00_2 enp216s0f0np3 0000:d7:00_0_0000:d8:00_3

Nota: sono supportati solo text i nomi dei gruppi di value acquisizione.

Pannelli o righe ripetuti

Puoi creare dashboard dinamici utilizzando variabili modello. Tutte le variabili delle query si espandono fino al valore corrente della variabile prima che la query venga inviata al database. Con le variabili, puoi riutilizzare un'unica dashboard per tutti i tuoi servizi.

Le variabili del modello possono essere molto utili per modificare dinamicamente le query su un'intera dashboard. Se vuoi che Grafana crei dinamicamente nuovi pannelli o righe in base ai valori che hai selezionato, puoi usare la funzione Ripeti.

Pannelli ripetuti

Se hai una variabile con Multi-value o Include all value opzioni attivate, puoi scegliere un pannello e fare in modo che Grafana ripeta quel pannello per ogni valore selezionato. Puoi trovare la funzione Ripeti nella scheda Generale in modalità di modifica del pannello.

directionControlla come sono disposti i pannelli.

Se si scegliehorizontal, i pannelli vengono disposti side-by-side. Grafana regola automaticamente la larghezza di ogni pannello ripetuto in modo da riempire l'intera riga. Attualmente, non è possibile mescolare altri pannelli su una riga con un pannello ripetuto.

Imposta Max per row per indicare a Grafana quanti pannelli per riga desideri al massimo. Il valore predefinito è 4.

Se si sceglievertical, i pannelli sono disposti dall'alto verso il basso in una colonna. La larghezza dei pannelli ripetuti è la stessa del primo pannello (il modello originale) che viene ripetuto.

Apportate modifiche solo al primo pannello (il modello originale). Affinché le modifiche abbiano effetto su tutti i pannelli, devi avviare una ricostruzione dinamica della dashboard. Puoi farlo modificando il valore della variabile (ovvero la base per la ripetizione) o ricaricando la dashboard.

Nota

I pannelli ripetuti richiedono che le variabili abbiano uno o più elementi selezionati. Non è possibile ripetere un pannello zero volte per nasconderlo.

Righe ripetute

Come visto sopra, con i pannelli, puoi anche ripetere le righe se hai delle variabili impostate con Multi-value o un'opzione di Include all value selezione.

Per attivare questa funzione, devi prima aggiungere una nuova riga utilizzando il menu Aggiungi pannello. Quindi fai una pausa sul titolo della riga e scegli il pulsante a forma di ingranaggio per accedere al pannello di Row Options configurazione. È quindi possibile selezionare la variabile per la quale si desidera ripetere la riga.

È consigliabile utilizzare una variabile anche nel titolo della riga.