

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

# Funzioni di trasformazione
<a name="v10-panels-xform-functions"></a>

****  
**Questo argomento della documentazione è progettato per le aree di lavoro Grafana che supportano la versione 10.x di Grafana.**  
Per le aree di lavoro Grafana che supportano la versione 9.x di Grafana, vedere. [Lavorare nella versione 9 di Grafana](using-grafana-v9.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)

È possibile eseguire le seguenti trasformazioni sui dati.

## Aggiungi campo dal calcolo
<a name="v10-panels-xform-funcs-add"></a>

Usa questa trasformazione per aggiungere un nuovo campo calcolato da altri due campi. Ogni trasformazione consente di aggiungere un nuovo campo.
+ **Modalità**: seleziona una modalità:
  + **Riduci riga**: applica il calcolo selezionato su ciascuna riga di campi selezionati in modo indipendente.
  + **Operazione binaria**: applica operazioni binarie di base (ad esempio, somma o moltiplica) sui valori in una singola riga da due campi selezionati.
  + **Operazione unaria**: applica le operazioni unarie di base sui valori in una singola riga da un campo selezionato. Le operazioni disponibili sono:
    + **Valore assoluto (abs)**: restituisce il valore assoluto di una determinata espressione. Rappresenta la distanza da zero come numero positivo.
    + **Esponenziale naturale (exp)**: restituisce *e* elevato alla potenza di una determinata espressione.
    + **Logaritmo naturale (ln)**: restituisce il logaritmo naturale di una determinata espressione.
    + **Floor (floor)**: restituisce il numero intero più grande minore o uguale a una determinata espressione.
    + **Ceiling (ceil)**: restituisce il numero intero più piccolo maggiore o uguale a una determinata espressione.
  + Funzioni **cumulative: applica le funzioni** sulla riga corrente e su tutte le righe precedenti.
    + **Totale**: calcola il totale cumulativo fino alla riga corrente inclusa.
    + **Media**: calcola la media fino alla riga corrente inclusa.
  + **Funzioni della finestra**: applica le funzioni della finestra. La finestra può essere *trascinata* o *centrata*. Con una finestra finale, la riga corrente sarà l'ultima riga della finestra. Con una finestra centrata, la finestra sarà centrata sulla riga corrente. Per finestre di dimensioni pari, la finestra sarà centrata tra la riga corrente e la riga precedente.
    + **Media**: calcola la media mobile o la media progressiva.
    + ****— Calcola la deviazione standard mobile.
    + **Varianza**: calcola la varianza mobile.
  + **Indice di riga**: inserisce un campo con l'indice di riga.
+ **Nome campo**: seleziona i nomi dei campi che desideri utilizzare nel calcolo per il nuovo campo.
+ **Calcolo**: se si seleziona **la modalità Riduci righe**, viene visualizzato il campo **Calcolo**. Seleziona il campo per visualizzare un elenco di opzioni di calcolo che puoi utilizzare per creare il nuovo campo. Per informazioni sui calcoli disponibili, consulta [Tipi di calcolo](v10-panels-calculation-types.md).
+ **Operazione**: se si seleziona la modalità **operativa binaria** **o unaria**, vengono visualizzati i campi **Operazione**. Questi campi consentono di eseguire operazioni matematiche di base sui valori in un'unica riga da due campi selezionati. È inoltre possibile utilizzare valori numerici per operazioni binarie.
+ **Come percentile**: se si seleziona la modalità **Indice di riga**, viene visualizzato l'interruttore **Come percentile**. Questo interruttore consente di trasformare l'indice di riga come percentuale del numero totale di righe.
+ **Alias**: (Facoltativo) Inserisci il nome del nuovo campo. Se lasci questo campo vuoto, al campo verrà assegnato un nome corrispondente al calcolo.
+ **Sostituisci tutti i campi**: (Facoltativo) Seleziona questa opzione se desideri nascondere tutti gli altri campi e visualizzare solo il campo calcolato nella visualizzazione.

**Nota**  
Le funzioni **cumulative e le funzioni** **Window** sono attualmente disponibili nell'anteprima pubblica. Grafana Labs offre un supporto limitato e potrebbero verificarsi modifiche sostanziali prima che la funzionalità venga resa disponibile al pubblico.

## Concatena i campi
<a name="v10-panels-xform-funcs-concat"></a>

**Concatena i campi**

Utilizzate questa trasformazione per combinare tutti i campi di tutti i frame in un unico risultato.

Ad esempio, se avete interrogazioni separate che recuperano dati sulla temperatura e sull'operatività (query A) e sull'indice di qualità dell'aria e informazioni sugli errori (query b), applicando la trasformazione concatenata si ottiene un frame di dati consolidato con tutte le informazioni pertinenti in un'unica vista.

Considerate questi due seguenti.

*Interrogazione A:*


| Temp | Operatività | 
| --- | --- | 
| 15.4 | 1230233 | 

*Interrogazione B:*


| AQI | Errori | 
| --- | --- | 
| 3.2 | 5 | 

Dopo aver concatenato i campi, il frame di dati sarebbe:


| Temp | Operatività | AQI | Errori | 
| --- | --- | --- | --- | 
| 15,4 | 1230233 | 3.2 | 5 | 

Questa trasformazione semplifica il processo di fusione dei dati provenienti da diverse fonti, fornendo una visione completa per l'analisi e la visualizzazione.

## Config dai risultati della query
<a name="v10-panels-xform-funcs-config"></a>

**Config dai risultati della query**

Utilizzate questa trasformazione per selezionare una query ed estrarre opzioni standard come **Min**, **Max**, **Unit** e **Thresholds** e applicarle ad altri risultati della query. Ciò consente una configurazione dinamica della visualizzazione, basata sui dati restituiti da una query specifica.

**Opzioni**
+ **Interrogazione di configurazione**: seleziona la query che restituisce i dati che desideri utilizzare come configurazione.
+ **Applica a**: seleziona i campi o le serie a cui applicare la configurazione.
+ **Applica alle opzioni**: specifica un tipo di campo o usa un'espressione regolare del nome di campo, a seconda della selezione effettuata in **Applica a**.

**Tabella di mappatura dei campi**

Sotto le opzioni di configurazione, troverai la tabella di mappatura dei campi. Questa tabella elenca tutti i campi trovati nei dati restituiti dalla query di configurazione, insieme alle opzioni **Usa come** e **Seleziona**. Fornisce il controllo sulla mappatura dei campi alle proprietà di configurazione e, per più righe, consente di scegliere il valore da selezionare.

L'esempio seguente mostra una query di input e una query utilizzata come configurazione del campo.

*Query di input*


| Orario | Valore | 
| --- | --- | 
| 1626178119127 | 10 | 
| 1626178119129 | 30 | 

*Interrogazione di configurazione*


| Orario | Valore | 
| --- | --- | 
| 1626178119127 | 100 | 
| 1626178119129 | 100 | 

*Query di output (uguale a input, ma ora con configurazione nel campo del valore)*


| Orario | Valore (configurazione: Max=100) | 
| --- | --- | 
| 1626178119127 | 10 | 
| 1626178119129 | 30 | 

Ogni campo ha ora un set massimo di opzioni di configurazione. Opzioni come **Min**, **Max**, **Unit** e **Thresholds** fanno parte della configurazione del campo. Se impostate, vengono utilizzate dalla visualizzazione anziché dalle opzioni configurate manualmente nel riquadro delle opzioni dell'editor del pannello.

**Mappature dei valori**

È inoltre possibile trasformare il risultato di una query in mappature di valori. Con questa opzione, ogni riga del risultato della query di configurazione definisce una singola riga di mappatura dei valori. Guarda l'esempio seguente.

*Risultato della query di configurazione*


| Valore | Testo | Colore | 
| --- | --- | --- | 
| L | Bassa | blu | 
| M | Media | verde | 
| H | Elevata | rosso | 

*Nella mappatura del campo, specificare:*


| Campo | Usa come | Select | 
| --- | --- | --- | 
| Valore | Mappature dei valori/Valore | Tutti i valori | 
| Testo | Mappature di valori/ Testo | Tutti i valori | 
| Colore | Mappature di valori/ Colore | Tutti i valori | 

Grafana crea mappature dei valori dai risultati della query e le applica ai risultati delle query di dati reali. Dovresti vedere i valori mappati e colorati in base ai risultati della query di configurazione.

## Converti il tipo di campo
<a name="v10-panels-xform-funcs-convert"></a>

Usa questa trasformazione per modificare il tipo di campo del campo specificato.

Questa trasformazione ha le seguenti opzioni:
+ **Campo**: seleziona uno dei campi disponibili.
+ **as**: seleziona il formato in cui FieldType convertire.
  + **Numerico**: tenta di rendere numerici i valori.
  + **Stringa**: renderà i valori stringhe.
  + **Ora**: tenta di analizzare i valori come tempo.
    + Mostrerà un'opzione per specificare a DateFormat come input da una stringa, come `yyyy-mm-dd` o`DD MM YYYY hh:mm:ss`.
  + **Booleano**: renderà i valori booleani.
  + **Enum: renderà i valori enumerati**.
    + Mostrerà una tabella per gestire le enumerazioni.
  + **Altro**: tenta di analizzare i valori come json.

Ad esempio, considera la seguente query che potrebbe essere modificata selezionando il campo Time, come **Time** e Date Format as. `YYYY`


| Orario | Segna | Valore | 
| --- | --- | --- | 
| 01/07/2017 | sopra | 25 | 
| 2018-08-02 | sotto | 22 | 
| 2019-09-02 | sotto | 29 | 
| 2020-10-04 | sopra | 22 | 

Il risultato:


| Orario | Mark | Valore | 
| --- | --- | --- | 
| 2017-01-01 00:00:00 | sopra | 25 | 
| 2018-01-01 00:00:00 | sotto | 22 | 
| 2019-01-01 00:00:00 | sotto | 29 | 
| 2020-01-01 00:00:00 | sopra | 22 | 

Questa trasformazione consente di adattare in modo flessibile i tipi di dati, garantendo compatibilità e coerenza nelle visualizzazioni.

## Estrai campi
<a name="v10-panels-xform-funcs-extract"></a>

Usa questa trasformazione per selezionare una fonte di dati ed estrarne il contenuto in diversi formati. Questa trasformazione ha i seguenti campi:
+ **Origine**: seleziona il campo per l'origine dei dati.
+ **Formato**: scegli una delle seguenti opzioni:
  + **JSON**: analizza il contenuto JSON dalla fonte.
  + **Coppie chiave\$1valore**: analizza il contenuto nel formato o dalla fonte. `a=b` `c:d`
  + **Automatico**: scopri automaticamente i campi.
+ **Sostituisci tutti i campi**: (Facoltativo) Seleziona questa opzione per nascondere tutti gli altri campi e visualizzare solo il campo calcolato nella visualizzazione.
+ **Keep Time** - (Facoltativo) Disponibile solo se l'opzione **Sostituisci tutti i campi** è impostata su True. Mantiene il campo temporale nell'output.

Considerate il seguente set di dati:

**Esempio di set di dati**


| Time stamp | json\$1data | 
| --- | --- | 
| 1636678740000000000 | \$1"valore»: 1\$1 | 
| 1636678680000000000 | \$1"valore»: 5\$1 | 
| 1636678620000000000 | \$1"valore»: 12\$1 | 

È possibile preparare i dati da utilizzare da un [pannello Time series](v10-panels-time-series.md) con questa configurazione:
+ Fonte: json\$1data
+ Formato: JSON
  + Campo: valore
  + Alias: my\$1value
+ Sostituisci tutti i campi: true
+ Mantieni il tempo: vero

Questo genererà il seguente output:

**Dati trasformati**


| Time stamp | my\$1value | 
| --- | --- | 
| 1636678740000000000 | 1 | 
| 1636678680000000000 | 5 | 
| 1636678620000000000 | 12 | 

Con questa trasformazione, puoi estrarre e formattare i dati in vari modi. È possibile personalizzare il formato di estrazione in base alle esigenze specifiche dei dati.

## Cerca i campi dalla risorsa
<a name="v10-panels-xform-funcs-lookup"></a>

Usa questa trasformazione per arricchire il valore di un campo cercando campi aggiuntivi da una fonte esterna.

Questa trasformazione ha i seguenti campi:
+ **Campo**: seleziona un campo di testo dal tuo set di dati.
+ **Ricerca****: scegli tra **Paesi**, **Stati Uniti** e aeroporti.**

**Nota**  
Questa trasformazione supporta solo dati spaziali.

Ad esempio, se disponi di questi dati:

**Esempio di set di dati**


| Location (Ubicazione) | Valori | 
| --- | --- | 
| AL | 0 | 
| AK | 10 | 
| Arizona | 5 | 
| Arkansas | 1 | 
| Da qualche parte | 5 | 

Con questa configurazione:
+ Campo: posizione
+ Ricerca: Stati Uniti

Otterrai il seguente risultato:

**Dati trasformati**


| Location (Ubicazione) | ID | Name | Lng | Lat | Valori | 
| --- | --- | --- | --- | --- | --- | 
| AL | AL | Alabama | -80,891064 | 12,448457 | 0 | 
| AK | AK | Arkansas | -100,891064 | 24,448457 | 10 | 
| Arizona |  |  |  |  | 5 | 
| Arkansas |  |  |  |  | 1 | 
| Da qualche parte |  |  |  |  | 5 | 

Questa trasformazione consente di aumentare i dati recuperando informazioni aggiuntive da fonti esterne, fornendo un set di dati più completo per l'analisi e la visualizzazione.

## Filtra i dati per query RefID
<a name="v10-panels-xform-funcs-queryrefid"></a>

Utilizzate questa trasformazione per nascondere una o più interrogazioni nei pannelli con più interrogazioni.

Grafana visualizza le lettere di identificazione della query in testo grigio scuro. Scegli un identificatore di query per attivare il filtro. Se la lettera di interrogazione è bianca, vengono visualizzati i risultati. Se la lettera di interrogazione è scura, i risultati vengono nascosti.

**Nota**  
Questa trasformazione non è disponibile per Graphite perché questa fonte di dati non supporta la correlazione dei dati restituiti con le query.

## Filtra i dati per valori
<a name="v10-panels-xform-funcs-values"></a>

Usa questa trasformazione per filtrare selettivamente i punti dati direttamente all'interno della visualizzazione. Questa trasformazione offre opzioni per includere o escludere i dati in base a una o più condizioni applicate a un campo selezionato.

Questa trasformazione è molto utile se l'origine dati non filtra nativamente in base ai valori. È inoltre possibile utilizzarla per restringere i valori da visualizzare se si utilizza una query condivisa.

Le condizioni disponibili per tutti i campi sono:
+ **Regex**: corrisponde a un'espressione regex.
+ **Is Null**: corrisponde se il valore è nullo.
+ **Is Not Null**: corrisponde se il valore non è nullo.
+ **Uguale**: corrisponde se il valore è uguale al valore specificato.
+ **Diverso**: corrisponde se il valore è diverso dal valore specificato.

Le condizioni aggiuntive disponibili per i campi numerici sono:
+ **Maggiore**: corrisponde se il valore è maggiore del valore specificato.
+ **Inferiore**: corrisponde se il valore è inferiore al valore specificato.
+ **Maggiore o uguale**: corrisponde se il valore è maggiore o uguale.
+ **Minore o uguale**: corrisponde se il valore è inferiore o uguale.
+ **Intervallo**: corrisponde a un intervallo compreso tra un minimo e un massimo specificati, inclusi minimo e massimo.

Considerate il seguente set di dati:


| Orario | Temperatura | Altitude (Altitudine) | 
| --- | --- | --- | 
| 2020-07-07 11:34:23 | 32 | 101 | 
| 2020-07-07 11:34:22 | 28 | 125 | 
| 2020-07-07 11:34:21 | 26 | 110 | 
| 2020-07-07 11:34:20 | 23 | 98 | 
| 2020-07-07 10:32:24 | 31 | 95 | 
| 2020-07-07 10:31:22 | 20 | 85 | 
| 2020-07-07 09:30:57 | 19 | 101 | 

Se **includi** i punti dati con una temperatura inferiore a 30°C, la configurazione sarà la seguente:
+ Tipo di filtro: 'Includi'
+ Condizione: righe in cui «Temperatura» corrisponde a «Inferiore a» «30"

E otterrai il seguente risultato, in cui sono incluse solo le temperature inferiori a 30 °C:

**Dati trasformati**


| Orario | Temperatura | Altitude (Altitudine) | 
| --- | --- | --- | 
| 2020-07-07 11:34:22 | 28 | 125 | 
| 2020-07-07 11:34:21 | 26 | 110 | 
| 2020-07-07 11:34:20 | 23 | 98 | 
| 2020-07-07 10:31:22 | 20 | 85 | 
| 2020-07-07 09:30:57 | 19 | 101 | 

È possibile aggiungere più di una condizione al filtro. Ad esempio, potresti voler includere i dati solo se l'altitudine è maggiore di 100. A tale scopo, aggiungi tale condizione alla seguente configurazione:
+ Tipo di filtro: «Includi» le righe che «corrispondono a tutte le condizioni»
+ Condizione 1: righe in cui «Temperatura» corrisponde a «Inferiore» a «30»
+ Condizione 2: righe in cui «Altitudine» corrisponde a «Maggiore» di «100"

Quando hai più di una condizione, puoi scegliere se desideri che l'azione (includi/escludi) venga applicata alle righe che **soddisfano tutte le condizioni o corrispondono** **a una delle condizioni che hai** aggiunto.

Nell'esempio precedente, abbiamo scelto **Abbina tutto** perché volevamo includere le righe con una temperatura inferiore a 30°C *E* un'altitudine superiore a 100. Se volessimo includere invece le righe che hanno una temperatura inferiore a 30°C *O* un'altitudine superiore a 100, selezioneremmo **Match** any. Ciò includerebbe la prima riga dei dati originali, che ha una temperatura di 32°C (non corrisponde alla prima condizione) ma un'altitudine di 101 (che corrisponde alla seconda condizione), quindi è inclusa.

Le condizioni non valide o configurate in modo incompleto vengono ignorate.

Questa trasformazione versatile del filtraggio dei dati consente di includere o escludere selettivamente i punti dati in base a condizioni specifiche. Personalizza i criteri per personalizzare la presentazione dei dati in modo da soddisfare le tue esigenze analitiche uniche.

## Filtra i campi per nome
<a name="v10-panels-xform-funcs-name"></a>

Utilizza questa trasformazione per rimuovere parti dei risultati della query. Esistono tre modi per filtrare i nomi dei campi:
+ Inserisci un'espressione regolare.
+ Seleziona manualmente i campi inclusi.
+ Usa una variabile del dashboard.

*Usa un'espressione regolare*

Quando si filtra utilizzando un'espressione regolare, vengono inclusi i nomi di campo che corrispondono all'espressione regolare. Ad esempio, l'utilizzo dell'espressione regolare `'prod.*'` restituirebbe solo i campi che iniziano con `prod`

L'espressione regolare può includere una variabile di dashboard interpolata utilizzando la `${variableName}` sintassi.

*Seleziona manualmente i campi inclusi*

Seleziona o deseleziona i nomi dei campi per rimuoverli dal risultato. Se è inclusa anche un'espressione regolare, vengono inclusi i campi che corrispondono all'espressione, anche se non sono selezionati.

*Usa una variabile del pannello di controllo*

Seleziona **Dalla variabile** per selezionare una variabile del dashboard utilizzata per includere i campi. Impostando una variabile di dashboard con scelte multiple, gli stessi campi possono essere visualizzati in più visualizzazioni.

Questa trasformazione offre flessibilità nella personalizzazione dei risultati delle query per concentrarsi sui campi specifici necessari per un'analisi e una visualizzazione efficaci.

## Stringa di formato
<a name="v10-panels-xform-funcs-string"></a>

Utilizzate questa trasformazione per personalizzare l'output di un campo di stringa. Questa trasformazione ha i seguenti campi:
+ **Maiuscolo**: formatta l'intera stringa in caratteri maiuscoli.
+ **Minuscole**: formatta l'intera stringa in caratteri minuscoli.
+ **Frase maiuscola**: formatta il primo carattere della stringa in maiuscolo.
+ **Maiuscole e minuscole**: formatta il primo carattere di ogni parola nella stringa in maiuscolo.
+ **Pascal case** — Formatta il primo carattere di ogni parola nella stringa in maiuscolo e non include spazi tra le parole.
+ **Camel case**: formatta il primo carattere di ogni parola nella stringa in maiuscolo, tranne la prima parola, e non include spazi tra le parole.
+ **Snake case**: formatta tutti i caratteri della stringa in lettere minuscole e utilizza caratteri di sottolineatura anziché spazi tra le parole.
+ **Kebab case**: formatta tutti i caratteri della stringa in lettere minuscole e utilizza trattini anziché spazi tra le parole.
+ **Trim** — Rimuove tutti gli spazi iniziali e finali dalla stringa.
+ **Sottostringa** — Restituisce una sottostringa della stringa, utilizzando le posizioni iniziale e finale specificate.

Questa trasformazione offre un modo conveniente per standardizzare e personalizzare la presentazione dei dati delle stringhe per una migliore visualizzazione e analisi.

**Nota**  
Questa trasformazione è attualmente disponibile in anteprima pubblica. Grafana Labs offre un supporto limitato e potrebbero verificarsi modifiche sostanziali prima che la funzionalità venga resa disponibile al pubblico.

## Ora di formattazione
<a name="v10-panels-xform-funcs-time"></a>

Utilizzate questa trasformazione per personalizzare l'output di un campo temporale. L'output può essere formattato utilizzando [stringhe di formato Moment.js](https://momentjs.com/docs/#/displaying/). Ad esempio, se si desidera visualizzare solo l'anno di un campo orario, è possibile utilizzare la stringa di formato 'YYYY' per mostrare l'anno solare (ad esempio, 1999 o 2012).

**Prima della trasformazione:**


| Time stamp | Event | 
| --- | --- | 
| 1636678740000000000 | Avvio del sistema | 
| 1636678680000000000 | Login utente | 
| 1636678620000000000 | Dati aggiornati | 

**Dopo aver applicato 'YYYY-MM-DD HH:mm:ss':**


| Time stamp | Event | 
| --- | --- | 
| 2021-11-12 14:25:40 | Avvio del sistema | 
| 2021-11-12 14:24:40 | Login utente | 
| 2021-11-12 14:23:40 | Dati aggiornati | 

Questa trasformazione consente di personalizzare la rappresentazione del tempo nelle visualizzazioni, offrendo flessibilità e precisione nella visualizzazione dei dati temporali.

**Nota**  
Questa trasformazione è disponibile in aree di lavoro compatibili con Grafana v10 come funzionalità alfa.

## Gruppo da
<a name="v10-panels-xform-funcs-group"></a>

Questa trasformazione raggruppa i dati in base a un valore di campo (colonna) specificato ed elabora i calcoli su ciascun gruppo. Seleziona per visualizzare un elenco di scelte di calcolo.

Ecco un esempio di dati originali.


| Orario | ID del server | Temperatura della CPU | Stato del server | 
| --- | --- | --- | --- | 
| 07/07/2020 11:34:20AM | server 1 | 80 | Arresto | 
| 07/07/2020 11:34:20 | server 3 | 62 | OK | 
| 07/07/2020 10:32:20 | server 2 | 90 | Sovraccarico | 
| 07/07/2020 10:31:22 | server 3 | 55 | OK | 
| 07/07/2020 9:30:57 | server 3 | 62 | Reebooting (Riavvio in corso) | 
| 07/07/2020 9:30:05 | server 2 | 88 | OK | 
| 07/07/2020 09:28:06 | server 1 | 80 | OK | 
| 07/07/2020 09:25:05 | server 2 | 88 | OK | 
| 07/07/2020 09:23:07 | server 1 | 86 | OK | 

Questa trasformazione avviene in due fasi. Per prima cosa specificate uno o più campi in base ai quali raggruppare i dati. In questo modo verranno raggruppati tutti gli stessi valori di quei campi, come se li avessi ordinati. Ad esempio, se raggruppiamo i dati in base al campo Server ID, i dati verranno raggruppati in questo modo:


| Orario | ID del server | Temperatura della CPU | Stato del server | 
| --- | --- | --- | --- | 
| 07/07/2020 11:34:20AM | server 1 | 80 | Arresto | 
| 07/07/2020 09:28:06 | server 1 | 80 | OK | 
| 07/07/2020 09:23:07 | server 1 | 86 | OK | 
| 07/07/2020 10:32:20 | server 2 | 90 | Sovraccarico | 
| 07/07/2020 9:30:05 | server 2 | 88 | OK | 
| 07/07/2020 09:25:05 | server 2 | 88 | OK | 
| 07/07/2020 11:34:20 | server 3 | 62 | OK | 
| 07/07/2020 10:31:22 | server 3 | 55 | OK | 
| 07/07/2020 9:30:57 | server 3 | 62 | Reebooting (Riavvio in corso) | 

Tutte le righe con lo stesso valore di Server ID vengono raggruppate.

Dopo aver scelto il campo in base al quale raggruppare i dati, puoi aggiungere vari calcoli sugli altri campi e applicare il calcolo a ciascun gruppo di righe. Ad esempio, potremmo voler calcolare la temperatura media della CPU per ciascuno di questi server. Quindi possiamo aggiungere il calcolo *medio* applicato al campo della temperatura della CPU per ottenere quanto segue:


| ID del server | Temperatura della CPU (media) | 
| --- | --- | 
| server 1 | 82 | 
| server 2 | 8.6 | 
| server 3 | 59,6 | 

E possiamo aggiungere più di un calcolo. Per esempio:
+ Per il campo Time, possiamo calcolare l'*ultimo* valore, per sapere quando è stato ricevuto l'ultimo punto dati per ogni server
+ Per il campo Server Status, possiamo calcolare il valore *Last* per sapere qual è l'ultimo valore di stato per ogni server
+ Per il campo Temperature, possiamo anche calcolare l'*ultimo* valore per sapere qual è l'ultima temperatura monitorata per ogni server

Otterremmo quindi:


| ID del server | Temperatura della CPU (media) | Temperatura della CPU (ultima) | Ora (ultima) | Stato del server (ultimo) | 
| --- | --- | --- | --- | --- | 
| server 1 | 82 | 80 | 07/07/2020 11:34:20 | Arresto | 
| server 2 | 8.6 | 90 | 07/07/2020 10:32:20 | Sovraccarico | 
| server 3 | 59,6 | 62 | 07/07/2020 11:34:20 | OK | 

Questa trasformazione consente di estrarre le informazioni chiave dalle serie temporali e di visualizzarle in modo conveniente.

## Raggruppamento in matrice
<a name="v10-panels-xform-funcs-groupmatrix"></a>

Utilizzate questa trasformazione per combinare tre campi, utilizzati come input per i campi dei **valori **Colonna**, **Riga** e Cella** dall'output della query, e generare una matrice. La matrice viene calcolata come segue:

**Dati originali**


| ID del server | Temperatura della CPU | Stato del server | 
| --- | --- | --- | 
| server 1 | 82 | OK | 
| server 2 | 8.6 | OK | 
| server 3 | 59,6 | Arresto | 

Possiamo generare una matrice usando i valori di `Server Status` come nomi di colonna, i `Server ID` valori come nomi di riga e `CPU Temperature` come contenuto di ogni cella. Il contenuto di ogni cella verrà visualizzato per la combinazione di colonne (`Server Status`) e righe esistente (`Server ID`). Per il resto delle celle, puoi selezionare il valore da visualizzare tra: **Null**, **True**, **False** o **Empty**.

**Output**


| Stato del server IDServer  | OK | Arresto | 
| --- | --- | --- | 
| server 1 | 82 |  | 
| server 2 | 8.6 |  | 
| server 3 |  | 59,6 | 

Utilizzate questa trasformazione per costruire una matrice specificando i campi dai risultati della query. L'output della matrice riflette le relazioni tra i valori univoci in questi campi. Ciò consente di presentare relazioni complesse in un formato a matrice chiaro e strutturato.

## Da gruppo a tabella nidificata
<a name="v10-panels-xform-funcs-grouptable"></a>

Utilizza questa trasformazione per raggruppare i dati in base a un valore di campo (colonna) specificato ed elaborare il calcolo su ciascun gruppo. Vengono generati record che condividono lo stesso valore del campo raggruppato, da visualizzare in una tabella nidificata.

**Per calcolare una statistica per un campo, seleziona la casella accanto al campo e scegli l'opzione Calcola.** Verrà aggiunta un'altra casella di selezione con le statistiche da selezionare.

La tabella seguente mostra dati di esempio.


| Orario | ID del server | Temperatura della CPU | Stato del server | 
| --- | --- | --- | --- | 
| 07/07/2020 11:34:20AM | server 1 | 80 | Arresto | 
| 07/07/2020 11:34:20 | server 3 | 62 | OK | 
| 07/07/2020 10:32:20 | server 2 | 90 | Sovraccarico | 
| 07/07/2020 10:31:22 | server 3 | 55 | OK | 
| 07/07/2020 9:30:57 | server 3 | 62 | Reebooting (Riavvio in corso) | 
| 07/07/2020 9:30:05 | server 2 | 88 | OK | 
| 07/07/2020 09:28:06 | server 1 | 80 | OK | 
| 07/07/2020 09:25:05 | server 2 | 88 | OK | 
| 07/07/2020 09:23:07 | server 1 | 86 | OK | 

Questa trasformazione prevede due fasi. Innanzitutto, specifica uno o più campi in base ai quali raggruppare i dati. Questo raggruppa tutti gli stessi valori di quei campi, come se li ordinassi. Ad esempio, se raggruppi per `Server ID` campo, Grafana raggruppa i dati in questo modo:


| ID del server | Dati | 
| --- | --- | 
| Orario | Temperatura della CPU | Stato del server | 
| --- | --- | --- | 
| Orario | Temperatura della CPU | Stato del server | 
| --- | --- | --- | 
| Orario | Temperatura della CPU | Stato del server | 
| --- | --- | --- | 
| server 1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| server 2 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| server 3 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| 07/07/2020 11:34:20AM | 80 | Arresto | 
| 07/07/2020 9:28:06 | 80 | OK | 
| 07/07/2020 9:23:07 | 86 | OK | 
| 07/07/2020 10:32:20 | 90 | Sovraccarico | 
| 07/07/2020 9:30:05 | 88 | OK | 
| 07/07/2020 9:25:05 | 88 | OK | 
| 07/07/2020 11:34:20AM | 62 | OK | 
| 07/07/2020 10:31:22 | 55 | OK | 
| 07/07/2020 9:30:57 | 62 | Reebooting (Riavvio in corso) | 

Dopo aver scelto il campo in base al quale raggruppare i dati, puoi aggiungere vari calcoli sugli altri campi e applicare il calcolo a ciascun gruppo di righe. Ad esempio, potresti voler calcolare la temperatura media della CPU per ciascuno di questi server. A tale scopo, aggiungi il calcolo della media applicato al campo Temperatura della CPU per ottenere il seguente risultato:


| ID del server | Temperatura della CPU (media) |  | 
| --- | --- | --- | 
| Orario | Stato del server | 
| --- | --- | 
| Orario | Stato del server | 
| --- | --- | 
| Orario | Stato del server | 
| --- | --- | 
| server 1 | 82 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| server 2 | 8.6 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| server 3 | 59,6 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| 07/07/2020 11:34:20AM | Arresto | 
| 07/07/2020 9:28:06 | OK | 
| 07/07/2020 9:23:07 | OK | 
| 07/07/2020 10:32:20 | Sovraccarico | 
| 07/07/2020 9:30:05 | OK | 
| 07/07/2020 9:25:05 | OK | 
| 07/07/2020 11:34:20AM | OK | 
| 07/07/2020 10:31:22 | OK | 
| 07/07/2020 9:30:57 | Reebooting (Riavvio in corso) | 

## Crea una mappa termica
<a name="v10-panels-xform-funcs-heatmap"></a>

Usa questa trasformazione per preparare i dati dell'istogramma per visualizzare le tendenze nel tempo. Simile alla visualizzazione della mappa termica, questa trasformazione converte le metriche degli istogrammi in intervalli temporali.

**X Bucket**

Questa impostazione determina come l'asse x viene suddiviso in secchi.
+ **Dimensione**: specifica un intervallo di tempo nel campo di immissione. Ad esempio, un intervallo di tempo di `1h` crea celle larghe un'ora sull'asse x.
+ **Conteggio**: per le non-time-related serie, utilizzate questa opzione per definire il numero di elementi in un bucket.

**Secchio Y**

Questa impostazione determina come l'asse y viene suddiviso in secchi.
+ **Linear** (Lineare)
+ **Logaritmico**: scegli tra log base 2 o log base 10.
+ **Symlog**: utilizza una scala logaritmica simmetrica. Scegli tra log base 2 o log base 10, tenendo conto dei valori negativi.

Supponiamo di avere il seguente set di dati:


| Time stamp | Valore | 
| --- | --- | 
| 2023-01-01 12:00:00 | 5 | 
| 2023-01-01 12:15:00 | 10 | 
| 2023-01-01 12:30:00 | 15 | 
| 2023-01-01 12:45:00 | 8 | 
+ Con X Bucket impostato su `Size: 15m` e Y Bucket as`Linear`, l'istogramma organizza i valori in intervalli di tempo di 15 minuti sull'asse x e linearmente sull'asse y.
+ Per X Bucket as `Count: 2` e Y Bucket as`Logarithmic (base 10)`, l'istogramma raggruppa i valori in secchi di due sull'asse x e utilizza una scala logaritmica sull'asse y.

## Istogramma
<a name="v10-panels-xform-funcs-histogram"></a>

Utilizzate questa trasformazione per generare un istogramma basato sui dati di input, che consente di visualizzare la distribuzione dei valori.
+ **Dimensione del bucket**: l'intervallo tra gli elementi più bassi e più alti in un bucket (da XMin a XMax).
+ Offset del **bucket: l'offset** per i bucket. non-zero-based
+ **Combina serie**: crea un istogramma unificato utilizzando tutte le serie disponibili.

**Dati originali**

Serie 1:


| A | B | C | 
| --- | --- | --- | 
| 1 | 3 | 5 | 
| 2 | 4 | 6 | 
| 3 | 5 | 7 | 
| 4 | 6 | 8 | 
| 5 | 7 | 9 | 

Serie 2:


| C | 
| --- | 
| 5 | 
| 6 | 
| 7 | 
| 8 | 
| 9 | 

**Output**


| XMin | XMax | A | B | C | C | 
| --- | --- | --- | --- | --- | --- | 
| 1 | 2 | 1 | 0 | 0 | 0 | 
| 2 | 3 | 1 | 0 | 0 | 0 | 
| 3 | 4 | 1 | 1 | 0 | 0 | 
| 4 | 5 | 1 | 1 | 0 | 0 | 
| 5 | 6 | 1 | 1 | 1 | 1 | 
| 6 | 7 | 0 | 1 | 1 | 1 | 
| 7 | 8 | 0 | 1 | 1 | 1 | 
| 8 | 9 | 0 | 0 | 1 | 1 | 
| 9 | 10 | 0 | 0 | 1 | 1 | 

Visualizza la distribuzione dei valori utilizzando l'istogramma generato, fornendo informazioni sulla diffusione e sulla densità dei dati.

## Partecipa per campo
<a name="v10-panels-xform-funcs-joinfield"></a>

Usa questa trasformazione per unire più risultati in un'unica tabella, permettendo il consolidamento dei dati provenienti da diverse query.

È particolarmente utile per convertire più risultati di serie temporali in un'unica tabella ampia con un campo temporale condiviso.

**Connessione interna**

Un inner join unisce i dati di più tabelle in cui tutte le tabelle condividono lo stesso valore del campo selezionato. Questo tipo di join esclude i dati in cui i valori non corrispondono in tutti i risultati.

Utilizzate questa trasformazione per combinare i risultati di più query (combinati su un campo di join passato o sulla prima colonna time) in un unico risultato e rilasciate le righe in cui un'unione non può avvenire con successo.

Nell'esempio seguente, due query restituiscono i dati della tabella. Viene visualizzato come due tabelle separate prima di applicare la trasformazione Inner Join.

Interrogazione A:


| Orario | Processo | Operatività | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | nodo | 25260122 | 
| 07/07/2020 11:24:20 | locandina | 123001233 | 
| 07/07/2020 11:14:20 | locandina | 345001233 | 

Interrogazione B:


| Orario | Server | Errori | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | server 1 | 15 | 
| 07/07/2020 11:24:20 | server 2 | 5 | 
| 07/07/2020 11:04:20 | server 3 | 10 | 

Il risultato dopo l'applicazione della trasformazione inner join è simile al seguente:


| Orario | Processo | Operatività | Server | Errori | 
| --- | --- | --- | --- | --- | 
| 07/07/2020 11:34:20 | nodo | 25260122 | server 1 | 15 | 
| 07/07/2020 11:24:20 | locandina | 123001233 | server 2 | 5 | 

*Giunto esterno*

Un outer join include tutti i dati di un inner join e le righe in cui i valori non corrispondono in tutti gli input. Mentre l'inner join unisce la Query A e la Query B nel campo temporale, l'outer join include tutte le righe che non corrispondono nel campo time.

Nell'esempio seguente, due query restituiscono i dati della tabella. Viene visualizzato come due tabelle prima di applicare la trasformazione outer join.

Interrogazione A:


| Orario | Processo | Operatività | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | nodo | 25260122 | 
| 07/07/2020 11:24:20 | locandina | 123001233 | 
| 07/07/2020 11:14:20 | locandina | 345001233 | 

Interrogazione B:


| Orario | Server | Errori | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | server 1 | 15 | 
| 07/07/2020 11:24:20 | server 2 | 5 | 
| 07/07/2020 11:04:20 | server 3 | 10 | 

Il risultato dopo l'applicazione della trasformazione outer join è simile al seguente:


| Orario | Processo | Operatività | Server | Errori | 
| --- | --- | --- | --- | --- | 
| 07/07/2020 11:04:20 |  |  | server 3 | 10 | 
| 07/07/2020 11:14:20 | locandina | 345001233 |  |  | 
| 07/07/2020 11:34:20 | nodo | 25260122 | server 1 | 15 | 
| 07/07/2020 11:24:20 | locandina | 123001233 | server 2 | 5 | 

## Unisciti per etichette
<a name="v10-panels-xform-funcs-joinlabel"></a>

Usa questa trasformazione per unire più risultati in un'unica tabella.

Ciò è particolarmente utile per convertire più risultati di serie temporali in un'unica tabella ampia con un campo **Label** condiviso.
+ **Unisci**: seleziona l'etichetta con cui unirti tra le etichette disponibili o comuni in tutte le serie temporali.
+ **Valore**: il nome del risultato di output.

**Esempio**

Ingresso 1: `series1{what='Temp', cluster='A', job='J1'}`


| Orario | Valore | 
| --- | --- | 
| 1 | 10 | 
| 2 | 200 | 

Ingresso 2: `series2{what='Temp', cluster='B', job='J1'}`


| Orario | Valore | 
| --- | --- | 
| 1 | 10 | 
| 2 | 200 | 

Ingresso 3: `series3{what='Speed', cluster='B', job='J1'}`


| Orario | Valore | 
| --- | --- | 
| 22 | 22 | 
| 28 | 77 | 

Config:

```
value: 'what'
```

Output:


| cluster | job | Temp | Velocità | 
| --- | --- | --- | --- | 
| A | J1 | 10 |  | 
| A | J1 | 200 |  | 
| B | J1 | 10 | 22 | 
| B | J1 | 200 | 77 | 

Combina e organizza i dati delle serie temporali in modo efficace con questa trasformazione per ottenere informazioni complete.

## Etichette per campi
<a name="v10-panels-xform-funcs-labelstofields"></a>

Usa questa trasformazione per convertire i risultati delle serie temporali con etichette o tag in una tabella, includendo le chiavi e i valori di ogni etichetta nel risultato. Visualizza le etichette come colonne o valori di riga per una migliore visualizzazione dei dati.

Dato il risultato di una query di due serie temporali:
+ Serie 1: etichette`Server=Server A`, `Datacenter=EU`
+ Serie 2 — etichette`Server=Server B`, `Datacenter=EU`

In modalità **Colonne**, il risultato è simile al seguente:


| Orario | Server | Datacenter | Valore | 
| --- | --- | --- | --- | 
| 07/07/2020 11:34:20 | Server A | UE | 1 | 
| 07/07/2020 11:34:20 | Server B | UE | 2 | 

In modalità «Righe», il risultato ha una tabella per ogni serie e mostra il valore di ogni etichetta in questo modo:


| etichetta | value | 
| --- | --- | 
| Server | Server A | 
| Datacenter | UE | 


| etichetta | value | 
| --- | --- | 
| Server | Server B | 
| Datacenter | UE | 

**Nome del campo Valore**

Se hai selezionato Server come **nome del campo Valore**, otterrai un campo per ogni valore dell'etichetta Server.


| Orario | Datacenter | Server A | Server B | 
| --- | --- | --- | --- | 
| 07/07/2020 11:34:20 | UE | 1 | 2 | 

**Comportamento di fusione**

Il trasformatore delle etichette per i campi è composto internamente da due trasformazioni separate. Il primo agisce su una singola serie ed estrae le etichette nei campi. La seconda è la trasformazione di fusione che unisce tutti i risultati in un'unica tabella. La trasformazione di unione tenta di unire tutti i campi corrispondenti. Questa fase di unione è obbligatoria e non può essere disattivata.

Per illustrare ciò, ecco un esempio in cui sono presenti due query che restituiscono serie temporali senza etichette sovrapposte.
+ Serie 1 — etichette `Server=ServerA`
+ Serie 2 — etichette `Datacenter=EU`

Ciò risulterà innanzitutto in queste due tabelle:


| Orario | Server | Valore | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | Server A | 10 | 


| Orario | Datacenter | Valore | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | UE | 20 | 

Dopo l'unione:


| Orario | Server | Valore | Datacenter | 
| --- | --- | --- | --- | 
| 07/07/2020 11:34:20 | Server A | 10 |  | 
| 07/07/2020 11:34:20 |  | 20 | UE | 

## Limite
<a name="v10-panels-xform-funcs-limit"></a>

Usa questa trasformazione per limitare il numero di righe visualizzate, fornendo una visione più mirata dei tuoi dati. Ciò è particolarmente utile quando si ha a che fare con set di dati di grandi dimensioni.

Di seguito è riportato un esempio che illustra l'impatto della trasformazione **Limit** su una risposta proveniente da una fonte di dati:


| Orario | Metrica | Valore | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | Temperatura | 25 | 
| 07/07/2020 11:34:20 | Umidità | 22 | 
| 07/07/2020 10:32:20AM | Umidità | 29 | 
| 07/07/2020 10:31:22 | Temperatura | 22 | 
| 07/07/2020 9:30:57 | Umidità | 33 | 
| 07/07/2020 09:30:05 | Temperatura | 19 | 

Ecco il risultato dopo aver aggiunto una trasformazione Limit con un valore di '3':


| Orario | Metrica | Valore | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | Temperatura | 25 | 
| 07/07/2020 11:34:20 | Umidità | 22 | 
| 07/07/2020 10:32:20AM | Umidità | 29 | 

Questa trasformazione ti aiuta a personalizzare la presentazione visiva dei tuoi dati per concentrarti sui dati più pertinenti.

## Unisci serie/tabelle
<a name="v10-panels-xform-funcs-merge"></a>

Utilizzate questa trasformazione per combinare il risultato di più interrogazioni in un unico risultato, il che è particolarmente utile quando si utilizza la visualizzazione del pannello tabellare. La trasformazione unisce i valori nella stessa riga se i campi condivisi contengono gli stessi dati.

Ecco un esempio di illustrazione dell'impatto della trasformazione **Merge series/tables** su due query che restituiscono dati di tabella:

*Interrogazione A:*


| Orario | Processo | Operatività | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | nodo | 25260122 | 
| 07/07/2020 11:24:20 | locandina | 123001233 | 

Interrogazione B:


| Orario | Processo | Errori | 
| --- | --- | --- | 
| 07/07/2020 11:34:20 | nodo | 15 | 
| 07/07/2020 11:24:20 | locandina | 5 | 

Ecco il risultato dopo aver applicato la trasformazione Merge:


| Orario | Processo | Errori | Operatività | 
| --- | --- | --- | --- | 
| 07/07/2020 11:34:20 | nodo | 15 | 25260122 | 
| 07/07/2020 11:24:20 | locandina | 5 | 123001233 | 

Questa trasformazione combina i valori della Query A e della Query B in una tabella unificata, migliorando la presentazione per una migliore comprensione.

## Organizza i campi per nome
<a name="v10-panels-xform-funcs-organize"></a>

Utilizzate questa trasformazione per rinominare, riordinare o nascondere i campi restituiti da una singola query nel pannello. Questa trasformazione funziona solo nei pannelli con una singola interrogazione. Se il pannello ha più interrogazioni, è necessario applicare una trasformazione *Outer join* o rimuovere le interrogazioni aggiuntive.

**Trasformazione dei campi**

Grafana mostra un elenco di campi restituiti dalla query. Puoi:
+ **Modifica l'ordine dei campi**: trascina un campo in una nuova posizione nell'elenco.
+ **Nascondi o mostra un campo**: utilizza l'icona a forma di occhio accanto al nome del campo per attivare o disattivare la visibilità di un campo.
+ **Rinomina campi****: digita un nuovo nome nella casella Rinomina.**

**Esempio**

Dato questo risultato iniziale della query:


| Orario | Metrica | Valore | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | Temperatura | 25 | 
| 2020-07-07 11:34:20 | Umidità | 22 | 
| 2020-07-07 10:32:20 | Umidità | 29 | 

Puoi applicare una modifica del campo di ridenominazione per creare:


| Orario | Sensor | Leggere | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | Temperatura | 25 | 
| 2020-07-07 11:34:20 | Umidità | 22 | 
| 2020-07-07 10:32:20 | Umidità | 29 | 

Questa trasformazione consente di personalizzare la visualizzazione dei risultati delle query, garantendo una rappresentazione chiara e approfondita dei dati in Grafana.

## Partizione per valori
<a name="v10-panels-xform-funcs-partition"></a>

Utilizzate questa trasformazione per semplificare il processo di rappresentazione grafica di più serie senza la necessità di più interrogazioni con clausole diverse. `WHERE`

**Nota**  
Questa funzione è disponibile in aree di lavoro compatibili con Grafana versione 9 e successive.

Ciò è particolarmente utile quando si utilizza una tabella SQL di metriche, come in questo esempio:


| Orario | Region | Valore | 
| --- | --- | --- | 
| 20/10/2022 12:00:00 | US | 1520 | 
| 20/10/2022 12:00:00 | UE | 2936 | 
| 20/10/2022 1:00:00 | US | 1327 | 
| 20/10/2022 1:00:00 | UE | 912 | 

Con il trasformatore *Partition by values*, puoi emettere una singola query e dividere i risultati per valori univoci in una o più colonne (campi) a tua scelta. Nell'esempio seguente viene utilizzato `Region`.

```
SELECT Time, Region, Value FROM metrics WHERE Time > '2022-10-20'
```


| Orario | Region | Valore | 
| --- | --- | --- | 
| 20/10/2022 12:00:00 | US | 1520 | 
| 20/10/2022 1:00:00 | US | 1327 | 


| Orario | Region | Valore | 
| --- | --- | --- | 
| 20/10/2022 12:00:00 | UE | 2936 | 
| 20/10/2022 1:00:00 | UE | 912 | 

Questa trasformazione semplifica il processo e migliora la flessibilità di visualizzazione di più serie all'interno della stessa visualizzazione di serie temporali.

## Prepara le serie temporali
<a name="v10-panels-xform-funcs-preparetimeseries"></a>

Utilizza questa trasformazione per risolvere i problemi quando un'origine dati restituisce dati di serie temporali in un formato non compatibile con la visualizzazione desiderata. Questa trasformazione consente di convertire i dati delle serie temporali tra formati ampi e lunghi.

**Serie temporali a più fotogrammi**

Utilizzate questa opzione per trasformare il frame di dati della serie temporale dal formato ampio al formato lungo. Ciò è particolarmente utile quando la fonte di dati fornisce informazioni sulle serie temporali in un formato che deve essere rimodellato per una compatibilità ottimale con la visualizzazione.

*Esempio*

Questo input:


| Time stamp | Value1 | Value2 | 
| --- | --- | --- | 
| 2023-01-01 00:00:00 | 10 | 20 | 
| 2023-01-01 01:00:00 | 15 | 25 | 

Potrebbe essere trasformato in:


| Time stamp | Variabile | Valore | 
| --- | --- | --- | 
| 2023-01-01 00:00:00 | Value1 | 10 | 
| 2023-01-01 00:00:00 | Value2 | 20 | 
| 2023-01-01 01:00:00 | Value1 | 15 | 
| 2023-01-01 01:00:00 | Value2 | 25 | 

**Ampie serie temporali**

Utilizzate questa opzione per trasformare il frame di dati della serie temporale dal formato lungo al formato ampio. Ciò è particolarmente utile quando la fonte di dati fornisce dati di serie temporali in un formato lungo e la visualizzazione richiede un formato ampio.

*Esempio*

Questo input:


| Time stamp | Variabile | Valore | 
| --- | --- | --- | 
| 2023-01-01 00:00:00 | Value1 | 10 | 
| 2023-01-01 00:00:00 | Value2 | 20 | 
| 2023-01-01 01:00:00 | Value1 | 15 | 
| 2023-01-01 01:00:00 | Value2 | 25 | 

Potrebbe essere trasformato in:


| Time stamp | Value1 | Value2 | 
| --- | --- | --- | 
| 2023-01-01 00:00:00 | 10 | 20 | 
| 2023-01-01 01:00:00 | 15 | 25 | 

## Ridurre
<a name="v10-panels-xform-funcs-reduce"></a>

Usa questa trasformazione applica un calcolo a ciascun campo nel frame di dati e restituisce un singolo valore. Questa trasformazione è particolarmente utile per consolidare più dati di serie temporali in un formato riepilogativo più compatto. I campi temporali vengono rimossi quando si applica questa trasformazione.

Considerate l'input:

Interrogazione A:


| Orario | Temp | Operatività | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | 12.3 | 256122 | 
| 2020-07-07 11:24:20 | 15,4 | 1230233 | 

Interrogazione B:


| Orario | AQI | Errori | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | 6,5 | 15 | 
| 2020-07-07 11:24:20 | 3.2 | 5 | 

Il trasformatore di riduzione ha due modalità:
+ **Da serie a righe**: crea una riga per ogni campo e una colonna per ogni calcolo.
+ **Riduci campi**: mantiene la struttura del frame esistente, ma comprime ogni campo in un unico valore.

Ad esempio, se hai utilizzato il **primo** e **l'ultimo** calcolo con una trasformazione **da serie a righe**, il risultato sarebbe:


| Campo | Primo | Ultimo | 
| --- | --- | --- | 
| Temp | 12.3 | 15.4 | 
| Operatività | 256122 | 1230233 | 
| AQI | 6,5 | 3.2 | 
| Errori | 15 | 5 | 

I **campi Riduci** con l'**ultimo** calcolo restituiscono due frame, ciascuno con una riga:

Interrogazione A:


| Temp | Operatività | 
| --- | --- | 
| 15.4 | 1230233 | 

Interrogazione B:


| AQI | Errori | 
| --- | --- | 
| 3.2 | 5 | 

## Rinomina tramite regex
<a name="v10-panels-xform-funcs-rename"></a>

Utilizzate questa trasformazione per rinominare parti dei risultati della query utilizzando un'espressione regolare e un pattern sostitutivo.

È possibile specificare un'espressione regolare, che viene applicata solo alle corrispondenze, insieme a un pattern sostitutivo che supporti i riferimenti a ritroso. Ad esempio, immaginiamo di visualizzare l'utilizzo della CPU per host e di voler rimuovere il nome di dominio. Potresti impostare l'espressione regolare su `([^\.]+)\..+` e il pattern sostitutivo su`$1`, `web-01.example.com` diventerebbe. `web-01`

Questa trasformazione consente di personalizzare i dati per soddisfare le esigenze di visualizzazione, rendendo le dashboard più informative e intuitive.

## Da righe a campi
<a name="v10-panels-xform-funcs-row"></a>

Usa questa trasformazione per convertire le righe in campi separati. Ciò può essere utile perché i campi possono essere modificati e configurati individualmente. Può anche utilizzare campi aggiuntivi come fonti per la configurazione dinamica dei campi o mapparli alle etichette dei campi. Le etichette aggiuntive possono quindi essere utilizzate per definire nomi di visualizzazione migliori per i campi risultanti.

Questa trasformazione include una tabella di campi che elenca tutti i campi nei dati restituiti dalla query di configurazione. Questa tabella consente di controllare quale campo deve essere mappato a ciascuna proprietà di configurazione (l'opzione **Usa come**). Puoi anche scegliere quale valore selezionare se ci sono più righe nei dati restituiti.

Questa trasformazione richiede:
+ Un campo da usare come origine dei nomi dei campi.

  Per impostazione predefinita, la trasformazione utilizza il primo campo stringa come origine. Puoi sovrascrivere questa impostazione predefinita selezionando **Nome campo** nella colonna **Usa come** per il campo che desideri utilizzare invece.
+ Un campo da usare come fonte di valori.

  Per impostazione predefinita, la trasformazione utilizza il primo campo numerico come origine. Tuttavia, puoi ignorare questa impostazione predefinita selezionando **Valore del campo** nella colonna **Usa come** per il campo che desideri utilizzare al suo posto.

Utile per visualizzare i dati in:
+ Gauge
+ Stat
+ Grafico a torta

**Associa campi aggiuntivi alle etichette**

Se un campo non è mappato alla proprietà di configurazione, Grafana lo utilizzerà automaticamente come fonte per un'etichetta sul campo di output.

Esempio:


| Name | DataCenter | Valore | 
| --- | --- | --- | 
| ServerA | US | 100 | 
| Server B | UE | 200 | 

Output:


| ServerA (etichette DataCenter: US) | ServerB (etichette: DataCenter: EU) | 
| --- | --- | 
| 100 | 200 | 

Le etichette aggiuntive possono ora essere utilizzate nel nome visualizzato del campo per fornire nomi di campo più completi.

Se vuoi estrarre la configurazione da una query e applicarla a un'altra, dovresti usare la *configurazione dalla trasformazione dei risultati della query*.

**Esempio**

Input:


| Name | Valore | Max | 
| --- | --- | --- | 
| ServerA | 10 | 100 | 
| Server B | 20 | 200 | 
| Server C | 30 | 300 | 

Output:


| ServerA (configurazione: max=100) | ServerB (configurazione: max=200) | ServerC (configurazione: max=300) | 
| --- | --- | --- | 
| 10 | 20 | 30 | 

Come puoi vedere, ogni riga dei dati di origine diventa un campo separato. Ogni campo ora ha anche un set di opzioni di configurazione massimo. Opzioni come **Min**, **Max**, **Unit** e **Thresholds** fanno tutte parte della configurazione del campo e, se impostate in questo modo, verranno utilizzate dalla visualizzazione al posto delle opzioni configurate manualmente nel riquadro delle opzioni dell'editor del pannello.

Questa trasformazione consente la conversione delle righe in singoli campi, facilita la configurazione dinamica dei campi e associa campi aggiuntivi alle etichette.

## Da serie a righe
<a name="v10-panels-xform-funcs-series"></a>

Usa questa trasformazione per combinare il risultato di più query di dati su serie temporali in un unico risultato. Ciò è utile quando si utilizza la visualizzazione del pannello tabellare.

Il risultato di questa trasformazione conterrà tre colonne: Time, Metric e Value. La colonna Metrica viene aggiunta in modo da poter vedere facilmente da quale query proviene la metrica. Personalizza questo valore definendo Label nella query di origine.

Nell'esempio seguente, abbiamo due query che restituiscono dati di serie temporali. Viene visualizzato come due tabelle separate prima di applicare la trasformazione.

*Interrogazione A:*


| Orario | Temperatura | 
| --- | --- | 
| 2020-07-07 11:34:20 | 25 | 
| 2020-07-07 10:31:22 | 22 | 
| 2020-07-07 09:30:05 | 19 | 

*Interrogazione B:*


| Orario | Umidità | 
| --- | --- | 
| 2020-07-07 11:34:20 | 24 | 
| 2020-07-07 10:32:20 | 29 | 
| 2020-07-07 09:30:57 | 33 | 

Ecco il risultato dopo aver applicato la trasformazione Series to rows.


| Orario | Metrica | Valore | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | Temperatura | 25 | 
| 2020-07-07 11:34:20 | Umidità | 22 | 
| 2020-07-07 10:32:20 | Umidità | 29 | 
| 2020-07-07 10:31:22 | Temperatura | 22 | 
| 2020-07-07 09:30:57 | Umidità | 33 | 
| 2020-07-07 09:30:05 | Temperatura | 19 | 

Questa trasformazione facilita il consolidamento dei risultati di più interrogazioni su serie temporali, fornendo un set di dati semplificato e unificato per analisi e visualizzazione efficienti in formato tabulare.

## Ordina per
<a name="v10-panels-xform-funcs-sort"></a>

Utilizzate questa trasformazione per ordinare ogni frame all'interno del risultato di una query in base a un campo specifico, semplificando la comprensione e l'analisi dei dati. Configurando il campo desiderato per l'ordinamento, puoi controllare l'ordine in cui i dati vengono presentati nella tabella o nella visualizzazione.

Utilizzate l'interruttore **Reverse** per ordinare inversamente i valori all'interno del campo specificato. Questa funzionalità è particolarmente utile quando si desidera passare rapidamente dall'ordine crescente a quello decrescente per soddisfare le proprie esigenze analitiche.

Ad esempio, in uno scenario in cui i dati di serie temporali vengono recuperati da una fonte di dati, è possibile applicare la trasformazione **Ordina** per disporre i frame di dati in base al timestamp, in ordine crescente o decrescente, a seconda dei requisiti analitici. Questa funzionalità consente di navigare e interpretare facilmente i dati delle serie temporali, ottenendo informazioni preziose dalla presentazione organizzata e visivamente coerente.

## Spatial
<a name="v10-panels-xform-funcs-spatial"></a>

Utilizzate questa trasformazione per applicare operazioni spaziali ai risultati delle query.
+ **Azione**: seleziona un'azione:
  + **Prepara campo spaziale**: imposta un campo geometrico basato sui risultati di altri campi.
    + **Modalità di posizione**: seleziona una modalità di localizzazione (queste opzioni sono condivise dalle modalità **Calcola valore** e **Trasforma**):
      + **Automatico**: identifica automaticamente i dati sulla posizione in base ai nomi dei campi predefiniti.
      + **Coordinate:** specifica i campi di latitudine e longitudine.
      + **Geohash: specifica un campo geohash**.
      + **Ricerca: specifica i campi di posizione di** Gazetteer.
  + **Calcola valore**: utilizza la geometria per definire un nuovo campo (). heading/distance/area
    + **Funzione**: scegli un'operazione matematica da applicare alla geometria:
      + **Intestazione**: calcola la direzione tra due punti.
      + **Area**: calcola l'area racchiusa da un poligono definito dalla geometria.
      + **Distanza**: calcola la distanza tra due punti.
  + **Trasforma**: applica le operazioni spaziali alla geometria.
    + **Operazione** — Scegliete un'operazione da applicare alla geometria:
      + **Come linea**: crea una feature a linea singola con un vertice in ogni riga.
      + **Line Builder**: crea una linea tra due punti.

Questa trasformazione consente di manipolare e analizzare i dati geospaziali, abilitando operazioni come la creazione di linee tra i punti, il calcolo delle proprietà spaziali e altro ancora.

## Trasformazione da serie temporale a tabella
<a name="v10-panels-xform-funcs-seriestotable"></a>

Utilizzate questa trasformazione per convertire i risultati delle serie temporali in una tabella, trasformando un frame di dati di serie temporali in un campo di **tendenza**. Il campo **Trend** può quindi essere renderizzato utilizzando il [tipo di cella sparkline](v10-panels-table.md#v10-panels-table-cell-type), generando un grafico sparkline in linea per ogni riga della tabella. Se sono presenti più interrogazioni relative a serie temporali, ciascuna genererà un frame di dati della tabella separato. Questi possono essere uniti utilizzando trasformazioni di unione o unione per produrre un'unica tabella con più sparkline per riga.

Per ogni valore del campo **Trend** generato, è possibile selezionare una funzione di calcolo. L'impostazione predefinita è **Ultimo valore non nullo**. Questo valore viene visualizzato accanto alla linea sparkline e utilizzato per ordinare le righe della tabella.

## Analisi della regressione
<a name="v10-panels-xform-funcs-regression"></a>

Utilizzate questa trasformazione per creare un nuovo frame di dati contenente i valori previsti da un modello statistico. Ciò è utile per individuare una tendenza nei dati caotici. Funziona adattando una funzione matematica ai dati, utilizzando la regressione lineare o polinomiale. Il frame di dati può quindi essere utilizzato in una visualizzazione per visualizzare una linea di tendenza.

Esistono due modelli diversi:
+  **Regressione lineare**: adatta una funzione lineare ai dati.
+  **Regressione polinomiale**: adatta una funzione polinomiale ai dati.

**Nota**  
Questa trasformazione è attualmente disponibile in anteprima pubblica. Grafana Labs offre un supporto limitato e potrebbero verificarsi modifiche sostanziali prima che la funzionalità venga resa disponibile al pubblico.