

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Daten abfragen und transformieren
<a name="v10-panels-query-xform"></a>

****  
Dieses Dokumentationsthema wurde für Grafana-Workspaces entwickelt, die **Grafana-Version 10.x** unterstützen.  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 9.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 9](using-grafana-v9.md)  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 8.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 8](using-grafana-v8.md)

Amazon Managed Grafana unterstützt viele Arten von [Datenquellen](AMG-data-sources.md). *Datenquellenabfragen* geben Daten zurück, die Grafana *transformieren* und visualisieren kann. Jede Datenquelle verwendet ihre eigene Abfragesprache, und Datenquellen-Plugins implementieren jeweils eine Benutzeroberfläche zur Abfrageerstellung, die als Abfrageeditor bezeichnet wird.

**Topics**
+ [Informationen zu Abfragen](#v10-panels-query-xform-about)
+ [Navigieren Sie auf der Registerkarte „Abfrage“](#v10-panels-query-xform-navigate)
+ [Eine Abfrage hinzufügen](#v10-panels-query-xform-add)
+ [Abfragen verwalten](#v10-panels-query-xform-manage)
+ [Abfrageoptionen](#v10-panels-query-xform-options)
+ [Ausdrucksabfragen schreiben](v10-panels-query-xform-expressions.md)
+ [Abfrageergebnisse mit einem anderen Panel teilen](v10-panels-query-share.md)
+ [Transformieren von Daten](v10-panels-xform.md)
+ [Problembehandlung bei Abfragen](v10-panels-query-troubleshoot.md)
+ [Berechnungsarten](v10-panels-calculation-types.md)

## Informationen zu Abfragen
<a name="v10-panels-query-xform-about"></a>

Grafana-Panels kommunizieren mit Datenquellen über Abfragen, die Daten für die Visualisierung abrufen. Eine Abfrage ist eine Frage, die in der von der Datenquelle verwendeten Abfragesprache geschrieben ist.

In den Datenquellenoptionen des Panels können Sie die Abfragehäufigkeit und die Grenzwerte für die Datenerfassung konfigurieren. Grafana unterstützt bis zu 26 Abfragen pro Panel.

Weitere Informationen zur Abfragesprache der einzelnen Datenquellen finden Sie im Abschnitt [Datenquellen](AMG-data-sources.md).

**Abfrage-Editoren**

Der *Abfrage-Editor* jeder Datenquelle bietet eine benutzerdefinierte Benutzeroberfläche, mit der Sie Abfragen schreiben können, die die einzigartigen Funktionen nutzen.

Aufgrund der Unterschiede zwischen den Abfragesprachen sieht jeder Abfrage-Editor für Datenquellen anders aus und funktioniert auch anders. Abhängig von Ihrer Datenquelle bietet der Abfrage-Editor möglicherweise Funktionen zur automatischen Vervollständigung, Metriknamen, Variablenvorschläge oder eine visuelle Oberfläche zur Abfrageerstellung.

Einzelheiten zu den einzigartigen Funktionen des Abfrage-Editors einer bestimmten Datenquelle, einschließlich Informationen zu Abfragen und Syntax, finden Sie in der Datenquellendokumentation:
+ Informationen zu den in Amazon Managed Grafana enthaltenen Datenquellen finden Sie unter [Integrierte Datenquellen](AMG-data-sources-builtin.md).
+ Informationen zu den in Grafana Enterprise enthaltenen Datenquellen finden Sie unter[Connect zu Unternehmensdatenquellen her](AMG-data-sources-enterprise.md).
+ Für andere Datenquellen-Plugins, die Sie über das installieren[Finde Plugins im Plugin-Katalog](grafana-plugins.md#plugin-catalog), ist die Dokumentation in der Liste im Plugin-Katalog verlinkt.

**Abfragesyntax**

Datenquellen verwenden unterschiedliche Abfragesprachen, um Daten anzufordern. Einzelheiten zur eindeutigen Abfragesprache einer bestimmten Datenquelle finden Sie in der zugehörigen Dokumentation.

**PostgreSQL-Beispiel:**

```
SELECT hostname FROM host WHERE region IN($region)
```

**PromQL-Beispiel:**

```
query_result(max_over_time(<metric>[${__range_s}s]) != <state>)
```

**Spezielle Datenquellen**

**Grafana umfasst auch drei spezielle Datenquellen: **Grafana**, **Mixed** und Dashboard.** Weitere Informationen finden Sie unter [Verbinden zu Datenquellen](AMG-data-sources.md).

## Navigieren Sie auf der Registerkarte „Abfrage“
<a name="v10-panels-query-xform-navigate"></a>

Die Registerkarte „**Abfrage**“ eines Panels besteht aus den folgenden Elementen:
+ **Datenquellenauswahl — Wählt** die abzufragende Datenquelle aus.
+ **Abfrageoptionen** — Legt maximale Datenabrufparameter und Abfragelaufzeitintervalle fest.
+ **Schaltfläche „Abfrageinspektor“** — Öffnet den Bereich „Abfrageinspektor“, in dem Sie Ihre Abfrage anzeigen und optimieren können.
+ **Liste des Abfrage-Editors** — Listet die Abfragen auf, die Sie geschrieben haben.
+ **Ausdrücke** — Verwendet den Ausdrucks-Generator, um Warnungsausdrücke zu erstellen. Weitere Informationen zu Ausdrücken finden Sie unter [Ausdrucksabfragen schreiben](v10-panels-query-xform-expressions.md).

## Eine Abfrage hinzufügen
<a name="v10-panels-query-xform-add"></a>

Eine Abfrage gibt Daten zurück, die Grafana in Dashboard-Panels visualisiert. Wenn Sie ein Panel erstellen, wählt Grafana automatisch die Standarddatenquelle aus.

**Um eine Abfrage hinzuzufügen**

1. Bearbeiten Sie das Panel, zu dem Sie eine Abfrage hinzufügen.

1. Wählen Sie die Registerkarte **Queries** (Abfragen) aus.

1. Wählen Sie das Dropdownmenü **Datenquelle** und wählen Sie eine Datenquelle aus.

1. Wählen Sie **Abfrageoptionen**, um die maximale Anzahl von Datenpunkten zu konfigurieren, die Sie benötigen. Weitere Informationen zu Abfrageoptionen finden Sie unter[Abfrageoptionen](#v10-panels-query-xform-options).

1. Schreiben Sie die Abfrage mit dem Abfrage-Editor.

1. Wählen Sie **Anwenden** aus.

Grafana fragt die Datenquelle ab und visualisiert die Daten.

## Abfragen verwalten
<a name="v10-panels-query-xform-manage"></a>

Grafana organisiert Abfragen in zusammenklappbaren Abfragezeilen. Jede Abfragezeile enthält einen Abfrage-Editor und ist mit einem Buchstaben (A, B, C usw.) gekennzeichnet.

Um Ihre Abfragen zu verwalten, können Sie Abfragen kopieren, Abfragen ausblenden, Abfragen entfernen, Abfragen neu anordnen und die Hilfe für den Abfrage-Editor ein- und ausschalten.

## Abfrageoptionen
<a name="v10-panels-query-xform-options"></a>

Wählen Sie neben der Datenquellenauswahl die **Option Abfrageoptionen** aus, um die Einstellungen für die ausgewählte Datenquelle anzuzeigen. Änderungen, die Sie hier vornehmen, wirken sich nur auf Abfragen aus, die in diesem Bereich vorgenommen wurden.

Grafana legt Standardwerte fest, die in dunkelgrauem Text angezeigt werden. Änderungen werden in weißem Text angezeigt. Um ein Feld auf die Standardeinstellung zurückzusetzen, löschen Sie den weißen Text aus dem Feld.

Zu den Optionen für die Abfrage von Panel-Datenquellen gehören:
+ **Max. Datenpunkte** — Wenn die Datenquelle dies unterstützt, wird die maximale Anzahl von Datenpunkten für jede zurückgegebene Serie festgelegt. Wenn die Abfrage mehr Datenpunkte zurückgibt als die Einstellung für maximale Datenpunkte, reduziert die Datenquelle die Anzahl der zurückgegebenen Punkte, indem sie sie nach Durchschnitt, Maximum oder einer anderen Funktion zusammenfasst.

  Sie können die Anzahl der Punkte einschränken, um die Abfrageleistung zu verbessern oder die visualisierte Linie zu glätten. Der Standardwert ist die Breite (oder Anzahl der Pixel) des Diagramms, da Sie nur so viele Datenpunkte visualisieren können, wie das Grafikfenster Platz zur Anzeige bietet.

  Bei Streaming-Daten verwendet Grafana den Wert für maximale Datenpunkte für den Rolling-Puffer. Streaming ist ein kontinuierlicher Datenfluss, und die Pufferung unterteilt den Stream in Blöcke.
+ **Minimales Intervall** — Legt einen Mindestgrenzwert für das automatisch berechnete Intervall fest, bei dem es sich in der Regel um das minimale Scrape-Intervall handelt. Wenn alle 15 Sekunden ein Datenpunkt gespeichert wird, profitieren Sie nicht von einem niedrigeren Intervall. Sie können dies auch auf ein höheres Minimum als das Scrape-Intervall festlegen, um Abfragen abzurufen, die grobkörniger sind und gut funktionieren.
+ **Intervall** — Legt eine Zeitspanne fest, die Sie beim Aggregieren oder Gruppieren von Datenpunkten nach Zeit verwenden können.

  Grafana berechnet automatisch ein geeignetes Intervall, das Sie als Variable in Abfragen mit Vorlagen verwenden können. Die Variable wird entweder in Sekunden (`$__interval`) oder Millisekunden () gemessen. `$__interval_ms`

  Intervalle werden normalerweise in Aggregationsfunktionen wie Summe oder Durchschnitt verwendet. Dies ist beispielsweise eine Prometheus-Abfrage, die die Intervallvariable verwendet:. `rate(http_requests_total[$__interval])`

  Dieses automatische Intervall wird auf der Grundlage der Breite des Diagramms berechnet. Wenn der Benutzer die Ansicht einer Visualisierung verkleinert, vergrößert sich das Intervall, was zu einer grobkörnigeren Aggregation führt. Ebenso verringert sich das Intervall, wenn der Benutzer die Ansicht vergrößert, was zu einer feinkörnigeren Aggregation führt.

  Weitere Informationen finden Sie unter [Globale Variablen](v10-dash-variable-add.md#v10-dash-variable-add-global).
+ **Relative Zeit** — Überschreibt den relativen Zeitraum für einzelne Bereiche, wodurch sie sich von dem unterscheiden, was in der Dashboard-Zeitauswahl in der oberen rechten Ecke des Dashboards ausgewählt wurde. Sie können dies verwenden, um Metriken aus verschiedenen Zeiträumen oder Tagen auf demselben Dashboard anzuzeigen.
**Anmerkung**  
Überschreibungen der Panel-Zeit haben keine Auswirkung, wenn der Zeitbereich des Dashboards absolut ist.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/grafana/latest/userguide/v10-panels-query-xform.html)
+ **Zeitverschiebung** — Überschreibt den Zeitbereich für einzelne Panels, indem Start und Ende relativ zur Zeitauswahl verschoben werden. Sie können beispielsweise den Zeitraum für das Panel so ändern, dass er zwei Stunden vor dem Zeitwähler im Dashboard liegt.
**Anmerkung**  
Überschreibungen der Panel-Zeit haben keine Auswirkung, wenn der Zeitbereich des Dashboards absolut ist.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/grafana/latest/userguide/v10-panels-query-xform.html)
+ **Cache-Timeout** — *(Nur sichtbar, wenn in der Datenquelle verfügbar)* Überschreibt das Standard-Cache-Timeout, wenn Ihr Zeitreihenspeicher über einen Abfrage-Cache verfügt. Geben Sie diesen Wert als numerischen Wert in Sekunden an.

# Ausdrucksabfragen schreiben
<a name="v10-panels-query-xform-expressions"></a>

****  
Dieses Dokumentationsthema wurde für Grafana-Workspaces entwickelt, die **Grafana-Version 10.x** unterstützen.  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 9.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 9](using-grafana-v9.md)  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 8.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 8](using-grafana-v8.md)

Mit serverseitigen Ausdrücken können Sie Daten, die von Abfragen zurückgegeben werden, mit mathematischen und anderen Operationen bearbeiten. Ausdrücke erzeugen neue Daten und manipulieren nicht die von Datenquellen zurückgegebenen Daten.

## Über Ausdrücke
<a name="v10-panels-query-about"></a>

Serverseitige Ausdrücke ermöglichen es Ihnen, Daten, die von Abfragen zurückgegeben werden, mit mathematischen und anderen Operationen zu bearbeiten. Ausdrücke erzeugen neue Daten und manipulieren nicht die von Datenquellen zurückgegebenen Daten, abgesehen von einigen geringfügigen Datenumstrukturierungen, um die Daten als Eingabe für Ausdrücke akzeptabel zu machen.

**Verwendung von Ausdrücken**

Ausdrücke werden am häufigsten von [Grafana-Benachrichtigungen](v10-alerts.md) verwendet. Die Verarbeitung erfolgt serverseitig, sodass Ausdrücke auch ohne Browsersitzung ausgeführt werden können. Ausdrücke können jedoch auch mit Backend-Datenquellen und Visualisierungen verwendet werden.

**Anmerkung**  
Ausdrücke funktionieren nicht mit älteren Dashboard-Warnungen.

Ausdrücke sollen Datenquellen erweitern, indem sie die Kombination von Abfragen aus verschiedenen Datenquellen ermöglichen oder Operationen bereitstellen, die in einer Datenquelle nicht verfügbar sind.

**Anmerkung**  
Wenn möglich, sollten Sie die Datenverarbeitung innerhalb der Datenquelle durchführen. Das Kopieren von Daten aus dem Speicher auf den Grafana-Server zur Verarbeitung ist ineffizient, daher sind Ausdrücke auf die einfache Datenverarbeitung ausgerichtet.

Ausdrücke funktionieren mit Datenquellenabfragen, die Zeitreihen oder numerische Daten zurückgeben. Sie arbeiten auch mit [mehrdimensionalen Daten](getting-started-grafanaui.md#time-series-dimensions). Zum Beispiel eine Abfrage, die mehrere Reihen zurückgibt, wobei jede Serie durch Beschriftungen oder Tags identifiziert wird.

Ein einzelner Ausdruck verwendet eine oder mehrere Abfragen oder andere Ausdrücke als Eingabe und fügt dem Ergebnis Daten hinzu. Jeder einzelne Ausdruck oder jede einzelne Abfrage wird durch eine Variable repräsentiert, bei der es sich um einen benannten Bezeichner handelt, der als RefID bezeichnet wird (z. B. der Standardbuchstabe `A` oder`B`).

Um auf die Ausgabe eines einzelnen Ausdrucks oder einer Datenquellenabfrage in einem anderen Ausdruck zu verweisen, wird dieser Bezeichner als Variable verwendet.

**Arten von Ausdrücken**

Ausdrücke funktionieren mit zwei Datentypen.
+ Eine Sammlung von Zeitreihen.
+ Eine Sammlung von Zahlen, wobei jede Zahl ein Element ist.

Jede Sammlung wird anhand einer einzelnen Datenquellenabfrage oder eines einzelnen Ausdrucks zurückgegeben und durch die RefID dargestellt. Jede Sammlung ist ein Satz, bei dem jedes Element in der Gruppe anhand seiner Dimensionen, die als [Labels](getting-started-grafanaui.md#labels) oder Schlüssel-Wert-Paare gespeichert sind, eindeutig identifiziert wird.

**Datenquellenabfragen**

Serverseitige Ausdrücke unterstützen nur Datenquellenabfragen für Backend-Datenquellen. Es wird allgemein davon ausgegangen, dass es sich bei den Daten um Zeitreihendaten handelt. 

Datenquellenabfragen werden, wenn sie mit Ausdrücken verwendet werden, von der Expression Engine ausgeführt. Dabei werden die Daten so umstrukturiert, dass sie entweder eine Zeitreihe oder eine Zahl pro Datenrahmen enthalten. Wenn Sie also beispielsweise eine Datenquelle verwenden, die mehrere Reihen in einem Frame in der Tabellenansicht zurückgibt, stellen Sie möglicherweise fest, dass sie anders aussieht, wenn sie mit Ausdrücken ausgeführt wird.

Derzeit wird bei der Verwendung von Datenrahmen nur das Format (Zahl) unterstützt, das kein Zeitreihenformat ist, wenn Sie eine Tabellenantwort haben, die einen Datenrahmen ohne Zeit, Zeichenkettenspalten und eine Zahlenspalte zurückgibt:

Die folgende Beispieltabelle erzeugt eine Zahl, die mit Ausdrücken funktioniert. Die Zeichenkettenspalten werden zu Beschriftungen und die Zahlenspalte zum entsprechenden Wert. Zum Beispiel `{"Loc": "MIA", "Host": "A"}` mit einem Wert von 1.


| Loc | Host | AVG\$1CPU | 
| --- | --- | --- | 
| MIA | A | 1 | 
| NYC | B | 2 | 

**Operationen**

Sie können die folgenden Operationen in Ausdrücken verwenden: Mathe, Reduce und Resampling.

**Math (Mathematik)**

Mathe steht für frei formbare mathematische Formeln für Zeitreihen oder Zahlendaten. Bei mathematischen Operationen werden Zahlen und Zeitreihen als Eingabe verwendet und in andere Zahlen und Zeitreihen umgewandelt.

Auf Daten aus anderen Abfragen oder Ausdrücken wird beispielsweise mit der RefID verwiesen, der ein Dollarzeichen vorangestellt ist. `$A` Wenn der Name der Variablen Leerzeichen enthält, können Sie eine geschweifte Syntax wie verwenden. `${my variable}`

Numerische Konstanten können dezimal (`2.24`), oktal (mit einer führenden Null wie`072`) oder hexadezimal (mit einem führenden 0x wie) sein. `0x2A` Exponentialzahlen und Vorzeichen werden ebenfalls unterstützt (z. B.). `-0.8e-2`

**Operatoren**

Die arithmetischen (`+`, binären und unären`-`,,`*`, `/``%`, Exponenten`**`), relationalen (,,`<`,, `>``==`,`<=`) und logischen (`!=``>=`, `&&``||`, und `!` unären) Operatoren werden unterstützt.

Wie sich die Operation mit Daten verhält, hängt davon ab, ob es sich um Zahlen- oder Zeitreihendaten handelt.

Bei binären Operationen wie `$A + $B` oder `$A || $B` wird der Operator je nach Datentyp wie folgt angewendet:
+ Wenn beide `$A` und eine Zahl `$B` sind, wird die Operation zwischen den beiden Zahlen ausgeführt.
+ Wenn eine Variable eine Zahl und die andere Variable eine Zeitreihe ist, wird die Operation zwischen dem Wert jedes Punktes in der Zeitreihe und der Zahl ausgeführt.
+ Wenn es sich bei beiden `$A` um Zeitreihendaten `$B` handelt, wird die Operation zwischen den einzelnen Werten in den beiden Reihen für jeden Zeitstempel ausgeführt, der `$A` sowohl in als auch vorhanden ist`$B`. Die `Resample` Operation kann verwendet werden, um Zeitstempel anzuordnen.

Zusammenfassung:
+ Zahl <Operation>Zahl = Zahl
+ <Operation>Zahlenreihe = Serie
+ Serie <Operation>Serie = Serie

Da Ausdrücke mit mehreren Reihen oder Zahlen arbeiten, die durch eine einzige Variable repräsentiert werden, führen binäre Operationen auch eine Vereinigung (Verknüpfung) zwischen den beiden Variablen durch. Dies erfolgt auf der Grundlage der identifizierenden Bezeichnungen, die jeder einzelnen Reihe oder Zahl zugeordnet sind.

Wenn Sie also Zahlen mit Beschriftungen wie `{host=web01}` in `$A` und eine weitere Zahl `$B` mit denselben Beschriftungen haben, wird die Operation zwischen diesen beiden Elementen innerhalb jeder Variablen ausgeführt, und das Ergebnis verwendet dieselben Beschriftungen. Die Regeln für das Verhalten dieser Vereinigung lauten wie folgt:
+ Ein Objekt ohne Beschriftungen lässt sich mit allem verbinden.
+ Wenn beide `$A` nur ein Objekt enthalten (eine Serie oder eine Zahl), werden sie zusammengefügt. `$B`
+ Wenn die Beschriftungen exakt übereinstimmen, werden sie zusammengefügt.
+ Wenn es sich bei den Beschriftungen um eine Teilmenge der anderen handelt, z. B. wenn ein Element in beschriftet `$A` ist `{host=A,dc=MIA}` und ein Element in beschriftet `$B` ist, werden `{host=A}` sie zusammengefügt.
+ Wenn innerhalb einer Variablen beispielsweise für jedes Element unterschiedliche Tag-Schlüssel `$A` vorhanden sind, ist das Verbindungsverhalten undefiniert.

Die relationalen und logischen Operatoren geben 0 für falsch und 1 für wahr zurück.

**Mathematische Funktionen**

Während die meisten Funktionen in eigenen Ausdrucksoperationen existieren, hat die mathematische Operation einige Funktionen, die mathematischen Operatoren oder Symbolen ähneln. Wenn Funktionen entweder Zahlen oder Reihen annehmen können, wird derselbe Typ wie das Argument zurückgegeben. Handelt es sich um eine Reihe, wird die Operation für den Wert jedes Punktes in der Reihe ausgeführt.

*Bauchmuskeln*

abs gibt den absoluten Wert seines Arguments zurück, der eine Zahl oder eine Reihe sein kann. Zum Beispiel `abs(-1)` oder `abs($A)`.

*is\$1inf*

is\$1inf nimmt eine Zahl oder eine Reihe und gibt `1` für `Inf` Werte (negativ oder positiv) und `0` für andere Werte zurück. Zum Beispiel `is_inf($A)`.

**Anmerkung**  
Wenn Sie beispielsweise gezielt nach negativer Unendlichkeit suchen müssen, können Sie einen Vergleich wie durchführen. `$A == infn()`

*is\$1nan*

is\$1nan nimmt eine Zahl oder eine Reihe und gibt `1` für `NaN` Werte und `0` für andere Werte zurück. Zum Beispiel `is_nan($A)`. Diese Funktion ist für diese Prüfung erforderlich, da sie nicht gleich `NaN` ist. `NaN`

*is\$1null*

is\$1null nimmt eine Zahl oder eine Reihe und gibt `1` für `null` Werte und `0` für andere Werte zurück. Zum Beispiel `is_null($A)`.

*ist\$1Zahl*

is\$1number nimmt eine Zahl oder eine Reihe und gibt `1` für alle reellen Zahlenwerte und `0` für andere Werte (die`null`,`Inf+`, `Inf-` und sind) zurück. `NaN` Zum Beispiel `is_number($A)`.

*log*

Log gibt den natürlichen Logarithmus seines Arguments zurück, der eine Zahl oder eine Reihe sein kann. Wenn der Wert kleiner als 0 ist, `NaN` wird zurückgegeben. Zum Beispiel `log(-1)` oder `log($A)`.

*inf, infn, nan und null*

Die Funktionen inf, infn, nan und null geben alle einen einzelnen Wert des Namens zurück. Sie existieren hauptsächlich zum Testen. Beispiel: `null()`.

*round*

Round gibt einen gerundeten Ganzzahlwert zurück. Zum Beispiel `round(3.123)` oder `round($A)`.

*ceil*

Ceil rundet die Zahl auf den nächsten ganzzahligen Wert auf. Beispielsweise gibt `ceil(3.123)` `4` zurück.

*floor*

Floor rundet die Zahl auf den nächsten ganzzahligen Wert ab. Beispiel:`floor(3.123`) gibt zurück`3`.

**Reduzieren**

Reduce verwendet eine oder mehrere Zeitreihen, die von einer Abfrage oder einem Ausdruck zurückgegeben wurden, und wandelt jede Reihe in eine einzelne Zahl um. Die Beschriftungen der Zeitreihen werden als Beschriftungen für jede ausgegebene reduzierte Zahl beibehalten.

*Felder:*
+ **Funktion** — Die zu verwendende Reduktionsfunktion
+ **Eingabe** — Die Variable (RefID (z. B.`A`)), die neu berechnet werden soll
+ **Modus** — Ermöglicht die Steuerung des Verhaltens der Reduktionsfunktion, wenn eine Reihe nicht numerische Werte enthält (Null, NaN, \$1-Inf)

**Reduktionsfunktionen**

*Count*

Count gibt die Anzahl der Punkte in jeder Reihe zurück.

*Meint*

Der Mittelwert gibt die Summe aller Werte in jeder Reihe geteilt durch die Anzahl der Punkte in dieser Reihe zurück. Wenn im `strict` Modus irgendwelche Werte in der Reihe Null oder Nan sind oder wenn die Reihe leer ist, wird NaN zurückgegeben.

*Min und Max*

Min und Max geben den kleinsten bzw. größten Wert in der Reihe zurück. Wenn im `strict` Modus irgendwelche Werte in der Reihe Null oder Nan sind oder wenn die Reihe leer ist, wird NaN zurückgegeben.

*Sum (Summe)*

Sum gibt die Summe aller Werte in der Reihe zurück. Wenn die Reihe die Länge Null hat, ist die Summe 0. Wenn im `strict` Modus NaN- oder Null-Werte in der Reihe vorhanden sind, wird NaN zurückgegeben.

*Zuletzt*

Last gibt die letzte Zahl in der Reihe zurück. Wenn die Serie keine Werte hat, wird NaN zurückgegeben.

**Reduktionsmodi**

*Streng*

Im Strict-Modus wird die Eingangsserie unverändert verarbeitet. Wenn Werte in der Reihe nicht numerisch sind (Null, NaN oder \$1-Inf), wird NaN zurückgegeben.

*Löschen Sie nicht-numerische Werte*

In diesem Modus werden alle nicht numerischen Werte (Null, NaN oder \$1-Inf) in der Eingangsserie herausgefiltert, bevor die Reduktionsfunktion ausgeführt wird.

*Ersetzt nicht-numerisch*

In diesem Modus werden alle nicht numerischen Werte durch einen vordefinierten Wert ersetzt.

**Stichprobe neu berechnen**

Bei Resampling werden die Zeitstempel in jeder Zeitreihe so geändert, dass ein konsistentes Zeitintervall entsteht. Der Hauptanwendungsfall besteht darin, dass Sie Zeitreihen, die nicht dieselben Zeitstempel haben, neu berechnen können, sodass Berechnungen zwischen ihnen durchgeführt werden können. Dies kann erreicht werden, indem jede der beiden Serien neu berechnet wird, und dann in einer mathematischen Operation auf die neu abgetasteten Variablen verwiesen wird.

*Felder:*
+ **Eingabe** — Die Variable der Zeitreihendaten (RefID (z. B.`A`)), für die ein Resampling durchgeführt werden soll
+ **Resampling** to — Die Zeitdauer, für die beispielsweise das Resampling durchgeführt werden soll. `10s` Einheiten können `s` Sekunden, `m` Minuten, `h` Stunden, `d` Tage, `w` Wochen und `y` Jahre sein.
+ **Downsample** — Die Reduktionsfunktion, die verwendet werden soll, wenn pro Fensterstichprobe mehr als ein Datenpunkt vorhanden ist. Einzelheiten zum Verhalten finden Sie in der Reduktionsoperation.
+ **Upsample** — Die Methode, die verwendet werden soll, um eine Fensterprobe ohne Datenpunkte zu füllen.
  + **Das Pad** füllt mit dem letzten bekannten Wert
  + mit dem nächsten **bekannten Wert auffüllen**
  + **fillna** zum Füllen leerer Beispielfenster mit NaNs

## Schreiben Sie einen Ausdruck
<a name="v10-panels-query-write"></a>

Wenn Ihre Datenquelle sie unterstützt, zeigt Grafana die Schaltfläche **Ausdruck** und alle vorhandenen Ausdrücke in der Liste des Abfrage-Editors an.

**Um einen Ausdruck zu schreiben**

1. Öffnen Sie das Panel.

1. Wählen Sie unter der Abfrage die Option **Ausdruck** aus.

1. Wählen Sie im Feld **Operation** den Ausdruckstyp aus, den Sie schreiben möchten.

1. Schreiben Sie den Ausdruck.

1. Wählen Sie **Anwenden** aus.

## Sonderfälle
<a name="v10-panels-query-special"></a>

Wenn eine abgefragte Datenquelle keine Reihen oder Zahlen zurückgibt, gibt die Expression Engine zurück. `NoData` Wenn eine Anforderung beispielsweise zwei Datenquellenabfragen enthält, die durch einen Ausdruck zusammengeführt werden, und wenn sie von mindestens einer der Datenquellenabfragen zurückgegeben wird, dann `NoData` ist das zurückgegebene Ergebnis für die gesamte Abfrage. `NoData` Weitere Informationen darüber, wie Grafana Alerting `NoData` Ergebnisse verarbeitet, finden Sie unter. [Konfigurieren Sie die verwalteten Warnungsregeln von Grafana](v10-alerting-configure-grafanamanaged.md)

Wenn ein Ausdruck für mehrere Abfragen verwendet wird, verlangt die Expression Engine, dass alle Abfragen einen identischen Zeitstempel zurückgeben. Wenn Sie beispielsweise mathematische Berechnungen verwenden, um das Ergebnis mehrerer SQL-Abfragen zu kombinieren, die jeweils verwendet werden`SELECT NOW() AS "time"`, funktioniert der Ausdruck nur, wenn alle Abfragen einen identischen Zeitstempel ergeben, was nicht immer der Fall ist. `NOW()` Um dieses Problem zu lösen, können Sie es durch einen beliebigen Zeitstempel `NOW()` ersetzen, z. B. `SELECT 1 AS "time"` oder durch einen anderen gültigen UNIX-Zeitstempel.

# Abfrageergebnisse mit einem anderen Panel teilen
<a name="v10-panels-query-share"></a>

****  
Dieses Dokumentationsthema wurde für Grafana-Workspaces entwickelt, die **Grafana-Version 10.x** unterstützen.  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 9.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 9](using-grafana-v9.md)  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 8.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 8](using-grafana-v8.md)

Mit Grafana können Sie das Abfrageergebnis aus einem Panel für jedes andere Panel im Dashboard verwenden. Durch die gemeinsame Nutzung von Abfrageergebnissen über mehrere Panels hinweg wird die Anzahl der Abfragen an Ihre Datenquelle reduziert, wodurch die Leistung Ihres Dashboards verbessert werden kann.

Mit der *Dashboard-Datenquelle* können Sie einen Bereich in Ihrem Dashboard auswählen, der die Abfragen enthält, für die Sie die Ergebnisse teilen möchten. Anstatt für jedes Panel eine separate Abfrage zu senden, sendet Grafana eine Abfrage und andere Panels verwenden die Abfrageergebnisse, um Visualisierungen zu erstellen.

Diese Strategie kann die Anzahl der Abfragen drastisch reduzieren, wenn Sie beispielsweise mehrere Panels haben, die dieselben Daten visualisieren.

**Um Abfrageergebnisse gemeinsam zu nutzen**

1. [Erstellen Sie ein Dashboard](v10-dash-creating.md).

1. Ändern Sie den Titel in`Source panel`. Sie werden dieses Panel als Quelle für die anderen Panels verwenden.

1. Definieren Sie die Abfrage oder Abfragen, die Sie teilen möchten.

   Wenn Sie keine Datenquelle zur Verfügung haben, verwenden Sie die **Grafana-Datenquelle**, die eine zufällige Zeitreihe zurückgibt, die Sie zum Testen verwenden können.

1. Fügen Sie ein zweites Fenster hinzu und wählen Sie die **Dashboard-Datenquelle** im Abfrage-Editor aus.

1. Wählen Sie in der **Liste „Ergebnisse aus Bedienfeld verwenden**“ den ersten Bereich aus, den Sie erstellt haben.

Alle im Quellbereich definierten Abfragen sind jetzt für das neue Bedienfeld verfügbar. Abfragen, die im Quellbereich gestellt wurden, können mit mehreren Panels geteilt werden.

Sie können auf eine der Abfragen klicken, um zu dem Bereich zu gelangen, in dem sie definiert sind.

# Transformieren von Daten
<a name="v10-panels-xform"></a>

****  
Dieses Dokumentationsthema wurde für Grafana-Workspaces entwickelt, die **Grafana-Version 10.x** unterstützen.  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 9.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 9](using-grafana-v9.md)  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 8.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 8](using-grafana-v8.md)

Transformationen sind eine leistungsstarke Methode, um Daten zu bearbeiten, die von einer Abfrage zurückgegeben werden, bevor das System eine Visualisierung anwendet. Mithilfe von Transformationen können Sie:
+ Felder umbenennen
+ Zeitreihendaten verbinden
+ Führen Sie mathematische Operationen abfrageübergreifend durch
+ Verwenden Sie die Ausgabe einer Transformation als Eingabe für eine andere Transformation

Für Benutzer, die auf mehrere Ansichten desselben Datensatzes angewiesen sind, bieten Transformationen eine effiziente Methode zur Erstellung und Verwaltung zahlreicher Dashboards.

Sie können die Ausgabe einer Transformation auch als Eingabe für eine andere Transformation verwenden, was zu einer Leistungssteigerung führt.

**Anmerkung**  
Manchmal kann das System transformierte Daten nicht grafisch darstellen. Wenn das passiert, klicken Sie auf den Schalter **Tabellenansicht** über der Visualisierung, um zu einer Tabellenansicht der Daten zu wechseln. Dies kann Ihnen helfen, das Endergebnis Ihrer Transformationen zu verstehen.

## Typen von Transformationen
<a name="v10-panels-xform-types"></a>

Grafana bietet eine Reihe von Möglichkeiten, wie Sie Daten transformieren können. Nachfolgend finden Sie eine vollständige Liste der Transformationsfunktionen.

## Reihenfolge der Transformationen
<a name="v10-panels-xform-order"></a>

Wenn es mehrere Transformationen gibt, wendet Grafana sie in der Reihenfolge an, in der sie aufgelistet sind. Jede Transformation erstellt eine Ergebnismenge, die dann an die nächste Transformation in der Verarbeitungspipeline weitergegeben wird.

Die Reihenfolge, in der Grafana Transformationen anwendet, wirkt sich direkt auf die Ergebnisse aus. Wenn Sie beispielsweise eine Reduce-Transformation verwenden, um alle Ergebnisse einer Spalte zu einem einzigen Wert zu verdichten, können Sie Transformationen nur auf diesen einzelnen Wert anwenden.

## Fügen Sie Daten eine Transformationsfunktion hinzu
<a name="v10-panels-xform-add"></a>

Die folgenden Schritte führen Sie durch das Hinzufügen einer Transformation zu Daten. Diese Dokumentation enthält keine Schritte für jeden Transformationstyp.

**Um eine Transformation zu einem Panel hinzuzufügen**

1. Navigieren Sie zu dem Bereich, in dem Sie eine oder mehrere Transformationen hinzufügen möchten.

1. Bewegen Sie den Mauszeiger über einen beliebigen Teil des Bedienfelds, um das Aktionsmenü in der oberen rechten Ecke anzuzeigen.

1. Wählen Sie im Aktionsmenü **Bearbeiten** aus.

1. Wählen Sie die Registerkarte **Transformieren** aus.

1. Wählen Sie eine Transformation aus. Eine Transformationszeile wird angezeigt, in der Sie die Transformationsoptionen konfigurieren.

1. Um eine weitere Transformation anzuwenden, wählen Sie **Transformation hinzufügen**. Diese Transformation wirkt sich auf die Ergebnismenge aus, die von der vorherigen Transformation zurückgegeben wurde.

## Debuggen Sie eine Transformation
<a name="v10-panels-xform-debug"></a>

Um die Eingabe- und Ausgaberesultsets der Transformation zu sehen, wählen Sie das Debug-Symbol (Bug) auf der rechten Seite der Transformationszeile. Dadurch werden die Eingabedaten und das Ergebnis der Transformation als Ausgabe angezeigt.

Die Eingabe- und Ausgabeergebnissätze können Ihnen beim Debuggen einer Transformation helfen.

## Deaktivieren Sie eine Transformation
<a name="v10-panels-xform-disable"></a>

Sie können eine Transformation deaktivieren oder ausblenden, indem Sie oben rechts in der Transformationszeile auf das Symbol zum Einblenden (Augen) klicken. Dadurch werden die für diese spezifische Transformation angewendeten Aktionen deaktiviert. Dies kann dazu beitragen, Probleme zu identifizieren, wenn Sie mehrere Transformationen nacheinander ändern.

## Filtern Sie eine Transformation
<a name="v10-panels-xform-filter"></a>

Wenn Ihre Transformation mehr als eine Abfrage verwendet, können Sie diese filtern und die ausgewählte Transformation nur auf eine der Abfragen anwenden. Wählen Sie dazu das Filtersymbol oben rechts in der Transformationszeile. Dadurch wird ein Drop-down-Menü mit einer Liste der im Panel verwendeten Abfragen geöffnet. Von hier aus können Sie die Abfrage auswählen, die Sie transformieren möchten.

Sie können auch nach Anmerkungen (einschließlich Exemplaren) filtern, um Transformationen auf sie anzuwenden. Wenn Sie dies tun, ändert sich die Liste der Felder entsprechend den Feldern in der Anmerkung oder im Beispiel-Tooltip.

Das Filtersymbol wird immer angezeigt, wenn Ihr Panel mehr als eine Abfrage oder Datenquelle enthält (d. h. Fenster- oder Annotationsdaten). Es funktioniert jedoch möglicherweise nicht, wenn vorherige Transformationen zum Zusammenführen der Ausgaben der Abfragen angewendet werden. Das liegt daran, dass eine Transformation die Ausgabe der vorherigen verwendet.

## Löscht eine Transformation
<a name="v10-panels-xform-delete"></a>

Wir empfehlen, Transformationen zu entfernen, die Sie nicht benötigen. Wenn Sie eine Transformation löschen, entfernen Sie die Daten aus der Visualisierung.

Voraussetzungen:

Identifizieren Sie alle Dashboards, die auf der Transformation basieren, und informieren Sie die betroffenen Dashboard-Benutzer.

**Um eine Transformation zu löschen**

1. Öffnen Sie ein Panel zur Bearbeitung.

1. Wählen Sie die Registerkarte **Transformieren**.

1. Wählen Sie das Papierkorbsymbol neben der Transformation, die Sie löschen möchten.

# Transformationsfunktionen
<a name="v10-panels-xform-functions"></a>

****  
Dieses Dokumentationsthema wurde für Grafana-Workspaces entwickelt, die **Grafana-Version 10.x** unterstützen.  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 9.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 9](using-grafana-v9.md)  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 8.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 8](using-grafana-v8.md)

Sie können die folgenden Transformationen an Ihren Daten durchführen.

## Fügen Sie ein Feld aus der Berechnung hinzu
<a name="v10-panels-xform-funcs-add"></a>

Verwenden Sie diese Transformation, um ein neues Feld hinzuzufügen, das aus zwei anderen Feldern berechnet wurde. Mit jeder Transformation können Sie ein neues Feld hinzufügen.
+ **Modus** — Wählen Sie einen Modus aus:
  + **Zeile reduzieren** — Wendet die ausgewählte Formel unabhängig auf jede Zeile der ausgewählten Felder an.
  + **Binäre Operation** — Wendet grundlegende binäre Operationen (z. B. Summe oder Multiplikation) auf Werte in einer einzelnen Zeile aus zwei ausgewählten Feldern an.
  + **Unäre Operation** — Wendet grundlegende unäre Operationen auf Werte in einer einzelnen Zeile aus einem ausgewählten Feld an. Die verfügbaren Operationen sind:
    + **Absoluter Wert (abs)** — Gibt den absoluten Wert eines bestimmten Ausdrucks zurück. Er stellt die Entfernung von Null als positive Zahl dar.
    + **Natürliches Exponential (exp)** — Gibt *e* potenziert mit einem bestimmten Ausdruck zurück.
    + **Natürlicher Logarithmus (ln)** — Gibt den natürlichen Logarithmus eines bestimmten Ausdrucks zurück.
    + **Floor (floor)** — Gibt die größte Ganzzahl zurück, die kleiner oder gleich einem bestimmten Ausdruck ist.
    + **Decke (Decke) —** gibt die kleinste Ganzzahl zurück, die größer oder gleich einem bestimmten Ausdruck ist.
  + **Kumulative Funktionen** — Wendet Funktionen auf die aktuelle Zeile und alle vorherigen Zeilen an.
    + **Summe** — Berechnet die Gesamtsumme bis einschließlich der aktuellen Zeile.
    + **Mittelwert** — Berechnet den Mittelwert bis einschließlich der aktuellen Zeile.
  + **Fensterfunktionen** — Wenden Sie Fensterfunktionen an. Das Fenster kann entweder hinten oder *mittig* *angeordnet* sein. Bei einem nachfolgenden Fenster ist die aktuelle Zeile die letzte Zeile im Fenster. Bei einem zentrierten Fenster wird das Fenster auf der aktuellen Zeile zentriert. Bei gleichmäßigen Fenstergrößen wird das Fenster zwischen der aktuellen Zeile und der vorherigen Zeile zentriert.
    + **Mittelwert** — Berechnet den gleitenden Mittelwert oder den gleitenden Durchschnitt.
    + ****— Berechnet die gleitende Standardabweichung.
    + **Varianz — Berechnet** die gleitende Varianz.
  + **Zeilenindex** — Fügt ein Feld mit dem Zeilenindex ein.
+ **Feldname** — Wählen Sie die Namen der Felder aus, die Sie in der Berechnung für das neue Feld verwenden möchten.
+ **Berechnung** — Wenn Sie den Modus **Zeile reduzieren** wählen, wird das Feld **Formel** angezeigt. Wählen Sie das Feld aus, um eine Liste mit Berechnungsoptionen anzuzeigen, mit denen Sie das neue Feld erstellen können. Informationen zu verfügbaren Berechnungen finden Sie unter [Berechnungstypen](v10-panels-calculation-types.md).
+ **Operation** — Wenn Sie den Modus **Binäre Operation** oder **Unäre Operation** wählen, werden die Felder **Operation** angezeigt. Mit diesen Feldern können Sie grundlegende mathematische Operationen mit Werten in einer einzigen Zeile aus zwei ausgewählten Feldern ausführen. Sie können numerische Werte auch für binäre Operationen verwenden.
+ **Als Perzentil** — Wenn Sie den Modus **Zeilenindex** wählen, wird der Schalter **Als Perzentil** angezeigt. Mit diesem Schalter können Sie den Zeilenindex als Prozentsatz der Gesamtzahl der Zeilen transformieren.
+ **Alias** — (Optional) Geben Sie den Namen Ihres neuen Felds ein. Wenn Sie dieses Feld leer lassen, wird das Feld so benannt, dass es der Formel entspricht.
+ **Alle Felder ersetzen** — (Optional) Wählen Sie diese Option, wenn Sie alle anderen Felder ausblenden und nur Ihr berechnetes Feld in der Visualisierung anzeigen möchten.

**Anmerkung**  
**Kumulative Funktionen** und **Fensterfunktionen** sind aktuell in der öffentlichen Vorschau verfügbar. Grafana Labs bietet eingeschränkten Support, und es können wichtige Änderungen vorgenommen werden, bevor die Funktion allgemein verfügbar gemacht wird.

## Verketten Sie Felder
<a name="v10-panels-xform-funcs-concat"></a>

**Felder verketten**

Verwenden Sie diese Transformation, um alle Felder aus allen Frames zu einem Ergebnis zu kombinieren.

Wenn Sie beispielsweise separate Abfragen haben, die Temperatur- und Verfügbarkeitsdaten (Abfrage A) sowie Luftqualitätsindex- und Fehlerinformationen (Abfrage b) abrufen, ergibt die Anwendung der verketteten Transformation einen konsolidierten Datenrahmen mit allen relevanten Informationen in einer Ansicht.

Betrachten Sie die beiden folgenden Punkte.

*Abfrage A:*


| Temporäre Dateien | Betriebszeit | 
| --- | --- | 
| 15,4 | 1230233 | 

*Anfrage B:*


| AQI | Fehler | 
| --- | --- | 
| 3.2 | 5 | 

Nachdem Sie die Felder verkettet haben, würde der Datenrahmen wie folgt aussehen:


| Temporäre Dateien | Betriebszeit | AQI | Fehler | 
| --- | --- | --- | --- | 
| 15,4 | 1230233 | 3.2 | 5 | 

Diese Transformation vereinfacht den Prozess der Zusammenführung von Daten aus verschiedenen Quellen und bietet eine umfassende Ansicht für die Analyse und Visualisierung.

## Config aus Abfrageergebnissen
<a name="v10-panels-xform-funcs-config"></a>

**Config aus Abfrageergebnissen**

Verwenden Sie diese Transformation, um eine Abfrage auszuwählen und Standardoptionen wie **Min.**, **Max**., **Einheit** und **Schwellenwerte** zu extrahieren und sie auf andere Abfrageergebnisse anzuwenden. Dies ermöglicht eine dynamische Visualisierungskonfiguration auf der Grundlage der von einer bestimmten Abfrage zurückgegebenen Daten.

**Optionen**
+ **Konfigurationsabfrage** — Wählen Sie die Abfrage aus, die die Daten zurückgibt, die Sie als Konfiguration verwenden möchten.
+ **Anwenden auf** — Wählen Sie die Felder oder Reihen aus, auf die die Konfiguration angewendet werden soll.
+ Auf **Optionen anwenden** — Geben Sie je nach Ihrer Auswahl unter **Anwenden** auf einen Feldtyp an oder verwenden Sie einen regulären Feldnamen.

**Tabelle mit Feldzuordnungen**

Unter den Konfigurationsoptionen finden Sie die Tabelle mit der Feldzuweisung. In dieser Tabelle sind alle Felder aufgeführt, die in den von der Konfigurationsabfrage zurückgegebenen Daten gefunden wurden, zusammen mit den Optionen **Verwenden als** und **Auswählen**. Sie ermöglicht die Steuerung der Zuordnung von Feldern zu Konfigurationseigenschaften. Bei mehreren Zeilen können Sie auswählen, welcher Wert ausgewählt werden soll.

Das folgende Beispiel zeigt eine Eingabeabfrage und eine Abfrage, die als Feldkonfiguration verwendet wird.

*Eingabeabfrage*


| Zeit | Wert | 
| --- | --- | 
| 1626178119127 | 10 | 
| 1626178119129 | 30 | 

*Konfigurationsabfrage*


| Zeit | Wert | 
| --- | --- | 
| 1626178119127 | 100 | 
| 1626178119129 | 100 | 

*Ausgabeabfrage (wie Eingabe, aber jetzt mit Konfiguration für das Wertefeld)*


| Zeit | Wert (Konfiguration: Max=100) | 
| --- | --- | 
| 1626178119127 | 10 | 
| 1626178119129 | 30 | 

Für jedes Feld ist jetzt eine maximale Konfigurationsoption festgelegt. Optionen wie **Min.**, **Max.**, **Einheit** und **Schwellenwerte** sind Teil der Feldkonfiguration. Falls festgelegt, werden sie von der Visualisierung anstelle von Optionen verwendet, die manuell im Optionsbereich des Panel-Editors konfiguriert wurden.

**Wertezuordnungen**

Sie können ein Abfrageergebnis auch in Wertzuordnungen umwandeln. Mit dieser Option definiert jede Zeile im Ergebnis der Konfigurationsabfrage eine einzelne Wertezuordnungszeile. Sehen Sie sich das folgende Beispiel an.

*Ergebnis der Konfigurationsabfrage*


| Wert | Text | Farbe | 
| --- | --- | --- | 
| L | Niedrig | Blau | 
| M | Mittel | Grün | 
| H | Hoch | red | 

*Geben Sie in der Feldzuordnung Folgendes an:*


| Feld | Verwenden Sie als | Select | 
| --- | --- | --- | 
| Wert | Wertezuordnungen/Wert | Alle Werte | 
| Text | Wertezuordnungen//Text | Alle Werte | 
| Farbe | Wertezuordnungen//Farbe | Alle Werte | 

Grafana erstellt Wertzuordnungen aus Ihrem Abfrageergebnis und wendet sie auf die tatsächlichen Datenabfrageergebnisse an. Sie sollten sehen, dass Werte entsprechend den Ergebnissen der Konfigurationsabfrage zugeordnet und eingefärbt werden.

## Feldtyp konvertieren
<a name="v10-panels-xform-funcs-convert"></a>

Verwenden Sie diese Transformation, um den Feldtyp des angegebenen Felds zu ändern.

Diese Transformation hat die folgenden Optionen:
+ **Feld** — Wählen Sie aus verfügbaren Feldern aus.
+ **als** — Wählen Sie das aus, in das FieldType konvertiert werden soll.
  + **Numerisch** — versucht, die Werte zu Zahlen zu machen.
  + **Zeichenfolge** — macht die Werte zu Zeichenketten.
  + **Zeit** — versucht, die Werte als Zeit zu analysieren.
    + Zeigt eine Option an, um a DateFormat als Eingabe durch eine Zeichenfolge anzugeben, z. B. `yyyy-mm-dd` oder`DD MM YYYY hh:mm:ss`.
  + **Boolean** — macht die Werte zu Boolean.
  + **Enum** — macht die Werte zu Aufzählungen.
    + Zeigt eine Tabelle zur Verwaltung der Aufzählungen an.
  + **Andere** — versucht, die Werte als JSON zu analysieren.

Stellen Sie sich zum Beispiel die folgende Abfrage vor, die geändert werden könnte, indem Sie das Zeitfeld als **Uhrzeit** und das Datumsformat als `YYYY` auswählen.


| Zeit | Markieren | Wert | 
| --- | --- | --- | 
| 01.07.2017 | über | 25 | 
| 2018-08-02 | unten | 22 | 
| 2019-09-02 | unten | 29 | 
| 2020-10-04 | über | 22 | 

Das Ergebnis:


| Zeit | Mark | Wert | 
| --- | --- | --- | 
| 2017-01-01 00:00:00 | über | 25 | 
| 2018-01-01 00:00:00 | unten | 22 | 
| 2019-01-01 00:00:00 | unten | 29 | 
| 2020-01-01 00:00:00 | über | 22 | 

Diese Transformation ermöglicht es Ihnen, Ihre Datentypen flexibel anzupassen und so die Kompatibilität und Konsistenz Ihrer Visualisierungen sicherzustellen.

## Extrahieren Sie Felder
<a name="v10-panels-xform-funcs-extract"></a>

Verwenden Sie diese Transformation, um eine Datenquelle auszuwählen und Inhalte daraus in verschiedenen Formaten zu extrahieren. Diese Transformation hat die folgenden Felder:
+ **Quelle** — Wählen Sie das Feld für die Datenquelle aus.
+ **Format** — Wählen Sie eine der folgenden Optionen:
  + **JSON** — Analysiert JSON-Inhalte aus der Quelle.
  + **Schlüssel\$1Wert-Paare** — Analysieren Sie Inhalte im Format `a=b` oder `c:d` aus der Quelle.
  + **Automatisch** — Felder werden automatisch erkannt.
+ **Alle Felder ersetzen** — (Optional) Wählen Sie diese Option, um alle anderen Felder auszublenden und nur Ihr berechnetes Feld in der Visualisierung anzuzeigen.
+ **Zeit beibehalten** — (optional) Nur verfügbar, wenn „**Alle Felder ersetzen**“ aktiviert ist. Behält das Zeitfeld in der Ausgabe bei.

Betrachten Sie den folgenden Datensatz:

**Beispiel für einen Datensatz**


| Zeitstempel | json\$1data | 
| --- | --- | 
| 1636678740000000000 | \$1"Wert“: 1\$1 | 
| 1636678680000000000 | \$1"Wert“: 5\$1 | 
| 1636678620000000000 | \$1"Wert“: 12\$1 | 

Sie könnten die Daten so vorbereiten, dass sie von einem [Zeitreihen-Panel](v10-panels-time-series.md) mit dieser Konfiguration verwendet werden:
+ Quelle: json\$1data
+ Format: JSON
  + Feld: Wert
  + Alias: my\$1value
+ Ersetze alle Felder: true
+ Zeit speichern: wahr

Dadurch wird die folgende Ausgabe generiert:

**Transformierte Daten**


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

Mit dieser Transformation können Sie Daten auf verschiedene Arten extrahieren und formatieren. Sie können das Extraktionsformat an Ihre spezifischen Datenanforderungen anpassen.

## Suchen Sie nach Feldern aus der Ressource
<a name="v10-panels-xform-funcs-lookup"></a>

Verwenden Sie diese Transformation, um einen Feldwert anzureichern, indem Sie zusätzliche Felder aus einer externen Quelle nachschlagen.

Diese Transformation umfasst die folgenden Felder:
+ **Feld** — Wählen Sie ein Textfeld aus Ihrem Datensatz aus.
+ **Suche** — Wählen Sie aus **Ländern**, **US-Bundesstaaten** und **Flughäfen**.

**Anmerkung**  
Diese Transformation unterstützt nur Geodaten.

Wenn Sie beispielsweise über diese Daten verfügen:

**Beispiel für einen Datensatz**


| Speicherort | Werte | 
| --- | --- | 
| AL | 0 | 
| AK | 10 | 
| Arizona | 5 | 
| Arkansas | 1 | 
| Irgendwo | 5 | 

Mit dieser Konfiguration:
+ Feld: Standort
+ Suche: US-Bundesstaaten

Sie erhalten die folgende Ausgabe:

**Transformierte Daten**


| Speicherort | ID (ID) | Name | Lng | Lat | Werte | 
| --- | --- | --- | --- | --- | --- | 
| AL | AL | Alabama | -80,891064 | 12,448457 | 0 | 
| EICHE | AK | Arkansas | -100,891064 | 24,448457 | 10 | 
| Arizona |  |  |  |  | 5 | 
| Arkansas |  |  |  |  | 1 | 
| Irgendwo |  |  |  |  | 5 | 

Mit dieser Transformation können Sie Ihre Daten erweitern, indem Sie zusätzliche Informationen aus externen Quellen abrufen und so einen umfassenderen Datensatz für die Analyse und Visualisierung bereitstellen.

## Filtern Sie Daten nach Query-RefID
<a name="v10-panels-xform-funcs-queryrefid"></a>

Verwenden Sie diese Transformation, um eine oder mehrere Abfragen in Panels mit mehreren Abfragen auszublenden.

Grafana zeigt die Abfrage-Identifikationsbuchstaben in dunkelgrauem Text an. Wählen Sie eine Abfrage-ID, um die Filterung umzuschalten. Wenn der Abfragebuchstabe weiß ist, werden die Ergebnisse angezeigt. Wenn der Abfragebuchstabe dunkel ist, sind die Ergebnisse ausgeblendet.

**Anmerkung**  
Diese Transformation ist für Graphite nicht verfügbar, da diese Datenquelle die Korrelation zurückgegebener Daten mit Abfragen nicht unterstützt.

## Daten nach Werten filtern
<a name="v10-panels-xform-funcs-values"></a>

Verwenden Sie diese Transformation, um Datenpunkte direkt in Ihrer Visualisierung selektiv zu filtern. Diese Transformation bietet Optionen zum Ein- oder Ausschließen von Daten auf der Grundlage einer oder mehrerer Bedingungen, die auf ein ausgewähltes Feld angewendet werden.

Diese Transformation ist sehr nützlich, wenn Ihre Datenquelle nicht nativ nach Werten filtert. Sie können dies auch verwenden, um die anzuzeigenden Werte einzugrenzen, wenn Sie eine gemeinsam genutzte Abfrage verwenden.

Die verfügbaren Bedingungen für alle Felder sind:
+ **Regex — Entspricht** einem Regex-Ausdruck.
+ **Ist Null — Entspricht**, wenn der Wert Null ist.
+ **Ist nicht Null** — Stimmt überein, wenn der Wert nicht Null ist.
+ **Gleich — Entspricht**, wenn der Wert dem angegebenen Wert entspricht.
+ **Anders** — Entspricht, wenn der Wert vom angegebenen Wert abweicht.

Zusätzliche verfügbare Bedingungen für Zahlenfelder sind:
+ **Größer** — Entspricht, wenn der Wert größer als der angegebene Wert ist.
+ **Niedriger** — Entspricht, wenn der Wert niedriger als der angegebene Wert ist.
+ **Größer oder gleich — Entspricht**, wenn der Wert größer oder gleich ist.
+ **Niedriger oder gleich — Entspricht**, wenn der Wert niedriger oder gleich ist.
+ **Bereich** — Entspricht einem Bereich zwischen einem bestimmten Minimum und Maximum, einschließlich Mindest- und Höchstwert.

Betrachten Sie den folgenden Datensatz:


| Zeit | Temperatur | Höhe | 
| --- | --- | --- | 
| 2020-07-07 11:34:23 | 32 | 101 | 
| 07.07.2020 11:34:22 | 28 | 125 | 
| 07.07.2020 11:34:21 | 26 | 110 | 
| 07.07.2020 11:34:20 | 23 | 98 | 
| 2020-07-07 10:32:24 | 31 | 95 | 
| 07.07.2020 10:31:22 | 20 | 85 | 
| 2020-07-07 09:30:57 | 19 | 101 | 

Wenn Sie die Datenpunkte mit einer Temperatur unter 30 °C **einbeziehen**, sieht die Konfiguration wie folgt aus:
+ Filtertyp: 'Einschließen'
+ Bedingung: Zeilen, in denen „Temperatur“ mit „Niedriger als“ 30 „übereinstimmt

Und Sie erhalten das folgende Ergebnis, in dem nur die Temperaturen unter 30 °C enthalten sind:

**Transformierte Daten**


| Zeit | Temperatur | Höhe | 
| --- | --- | --- | 
| 2020-07-07 11:34:22 | 28 | 125 | 
| 07.07.2020 11:34:21 | 26 | 110 | 
| 07.07.2020 11:34:20 | 23 | 98 | 
| 2020-07-07 10:31:22 | 20 | 85 | 
| 2020-07-07 09:30:57 | 19 | 101 | 

Sie können dem Filter mehr als eine Bedingung hinzufügen. Möglicherweise möchten Sie die Daten nur einbeziehen, wenn die Höhe größer als 100 ist. Fügen Sie dazu diese Bedingung der folgenden Konfiguration hinzu:
+ Filtertyp: Zeilen einschließen, die die Bedingungen „Allen entsprechen“
+ Bedingung 1: Zeilen, in denen „Temperatur“ mit „Niedriger“ als „30“ übereinstimmt
+ Bedingung 2: Zeilen, in denen „Höhe“ mit „Größer“ als „100“ übereinstimmt

Wenn Sie mehr als eine Bedingung haben, können Sie wählen, ob die Aktion (Einschließen/Ausschließen) auf Zeilen angewendet werden soll, die **alle Bedingungen erfüllen** oder eine der von Ihnen **hinzugefügten** Bedingungen erfüllen.

Im obigen Beispiel haben wir **Match All** ausgewählt, weil wir die Zeilen mit einer Temperatur unter 30 °C *UND* einer Höhe über 100 einbeziehen wollten. Wenn wir stattdessen die Zeilen mit einer Temperatur unter 30 °C *ODER* einer Höhe über 100 einbeziehen wollten, würden wir **Match** any auswählen. Dies würde die erste Zeile in den Originaldaten einschließen, die eine Temperatur von 32 °C hat (entspricht nicht der ersten Bedingung), aber eine Höhe von 101 (was der zweiten Bedingung entspricht), also ist sie enthalten.

Bedingungen, die ungültig oder unvollständig konfiguriert sind, werden ignoriert.

Mit dieser vielseitigen Transformation zur Datenfilterung können Sie Datenpunkte auf der Grundlage bestimmter Bedingungen selektiv ein- oder ausschließen. Passen Sie die Kriterien an, um Ihre Datenpräsentation an Ihre individuellen Analyseanforderungen anzupassen.

## Filtern Sie Felder nach Namen
<a name="v10-panels-xform-funcs-name"></a>

Verwenden Sie diese Transformation, um Teile Ihrer Abfrageergebnisse zu entfernen. Es gibt drei Möglichkeiten, Feldnamen zu filtern:
+ Geben Sie einen regulären Ausdruck ein.
+ Wählen Sie die eingeschlossenen Felder manuell aus.
+ Verwenden Sie eine Dashboard-Variable.

*Verwenden Sie einen regulären Ausdruck*

Wenn Sie mit einem regulären Ausdruck filtern, werden Feldnamen eingeschlossen, die dem regulären Ausdruck entsprechen. Wenn Sie beispielsweise den regulären Ausdruck verwenden, `'prod.*'` würden nur die Felder zurückgegeben, die mit beginnen `prod`

Der reguläre Ausdruck kann unter Verwendung der folgenden Syntax eine interpolierte Dashboard-Variable enthalten. `${variableName}`

*Wählen Sie die enthaltenen Felder manuell aus*

Wählen Sie Feldnamen aus oder wählen Sie sie ab, um sie aus dem Ergebnis zu entfernen. Wenn auch ein regulärer Ausdruck enthalten ist, werden Felder, denen der Ausdruck entspricht, eingeschlossen, auch wenn sie deaktiviert sind.

*Verwenden Sie eine Dashboard-Variable*

Wählen Sie **Von Variable aus**, damit Sie eine Dashboard-Variable auswählen können, die zum Einschließen von Feldern verwendet wird. Durch die Einrichtung einer Dashboard-Variablen mit mehreren Auswahlmöglichkeiten können dieselben Felder in mehreren Visualisierungen angezeigt werden.

Diese Transformation bietet Flexibilität bei der Anpassung Ihrer Abfrageergebnisse, sodass sie sich auf die spezifischen Felder konzentrieren können, die Sie für eine effektive Analyse und Visualisierung benötigen.

## Zeichenfolge formatieren
<a name="v10-panels-xform-funcs-string"></a>

Verwenden Sie diese Transformation, um die Ausgabe eines Zeichenkettenfeldes anzupassen. Diese Transformation hat die folgenden Felder:
+ **Großbuchstaben** — Formatiert die gesamte Zeichenfolge in Großbuchstaben.
+ **Kleinbuchstaben** — Formatiert die gesamte Zeichenfolge in Kleinbuchstaben.
+ **Satzschreibung** — Formatiert das erste Zeichen der Zeichenfolge in Großbuchstaben.
+ **Groß-/Kleinschreibung des Titels** — Formatiert das erste Zeichen jedes Worts in der Zeichenfolge in Großbuchstaben.
+ **Pascal-Großschreibung** — Formatiert das erste Zeichen jedes Worts in der Zeichenfolge in Großbuchstaben und schließt keine Leerzeichen zwischen Wörtern ein.
+ **Camel case** — Formatiert das erste Zeichen jedes Worts in der Zeichenfolge mit Ausnahme des ersten Worts in Großbuchstaben und schließt keine Leerzeichen zwischen Wörtern ein.
+ **Snake case** — Formatiert alle Zeichen in der Zeichenfolge in Kleinbuchstaben und verwendet Unterstriche anstelle von Leerzeichen zwischen Wörtern.
+ **Kebab case** — Formatiert alle Zeichen in der Zeichenfolge in Kleinbuchstaben und verwendet Bindestriche anstelle von Leerzeichen zwischen Wörtern.
+ **Kürzen** — Entfernt alle führenden und nachfolgenden Leerzeichen aus der Zeichenfolge.
+ **Teilzeichenfolge** — Gibt eine Teilzeichenfolge der Zeichenfolge zurück, wobei die angegebenen Start- und Endpositionen verwendet werden.

Diese Transformation bietet eine bequeme Möglichkeit, die Darstellung von Zeichenkettendaten zu standardisieren und anzupassen, um sie besser visualisieren und analysieren zu können.

**Anmerkung**  
Diese Transformation befindet sich derzeit in der öffentlichen Vorschau. Grafana Labs bietet eingeschränkten Support, und es können wichtige Änderungen vorgenommen werden, bevor die Funktion allgemein verfügbar gemacht wird.

## Zeit formatieren
<a name="v10-panels-xform-funcs-time"></a>

Verwenden Sie diese Transformation, um die Ausgabe eines Zeitfeldes anzupassen. Die Ausgabe kann mithilfe von [Zeichenketten im Format Moment.js](https://momentjs.com/docs/#/displaying/) formatiert werden. Wenn Sie beispielsweise nur das Jahr eines Zeitfeldes anzeigen möchten, kann die Formatzeichenfolge 'YYYY' verwendet werden, um das Kalenderjahr anzuzeigen (z. B. 1999 oder 2012).

**Vor der Transformation:**


| Zeitstempel | Veranstaltung | 
| --- | --- | 
| 1636678740000000000 | System starten | 
| 1636678680000000000 | Benutzer-Anmeldung | 
| 1636678620000000000 | Daten aktualisiert | 

**Nach dem Anwenden von 'YYYY-MM-DD hh:mm:ss':**


| Zeitstempel | Veranstaltung | 
| --- | --- | 
| 2021-11-12 14:25:40 | System starten | 
| 2021-11-12 14:24:40 | Benutzer-Anmeldung | 
| 2021-11-12 14:23:40 | Daten aktualisiert | 

Mit dieser Transformation können Sie die Zeitdarstellung in Ihren Visualisierungen anpassen und so für Flexibilität und Präzision bei der Anzeige von Zeitdaten sorgen.

**Anmerkung**  
Diese Transformation ist in Workspaces, die mit Grafana v10 kompatibel sind, als Alpha-Funktion verfügbar.

## Gruppierung nach
<a name="v10-panels-xform-funcs-group"></a>

Diese Transformation gruppiert die Daten nach einem bestimmten Feldwert (Spaltenwert) und verarbeitet Berechnungen für jede Gruppe. Wählen Sie diese Option aus, um eine Liste mit Berechnungsoptionen anzuzeigen.

Hier ist ein Beispiel für Originaldaten.


| Zeit | Server ID | CPU-Temperatur | Status des Servers | 
| --- | --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Server 1 | 80 | Herunterfahren | 
| 07.07.2020 11:34:20 UHR | Server 3 | 62 | OK | 
| 07.07.2020 10:32:20 UHR | Server 2 | 90 | Überlastung | 
| 07.07.2020 10:31:22 UHR | Server 3 | 55 | OK | 
| 07.07.2020 9:30:57 UHR | Server 3 | 62 | Rebooting | 
| 07.07.2020 9:30:05 UHR | Server 2 | 88 | OK | 
| 07.07.2020 9:28:06 UHR | Server 1 | 80 | OK | 
| 07.07.2020 9:25:05 UHR | Server 2 | 88 | OK | 
| 07.07.2020 9:23:07 UHR | Server 1 | 86 | OK | 

Diese Transformation erfolgt in zwei Schritten. Zuerst geben Sie ein oder mehrere Felder an, nach denen die Daten gruppiert werden sollen. Dadurch werden dieselben Werte dieser Felder gruppiert, als ob Sie sie sortiert hätten. Wenn wir zum Beispiel nach dem Server-ID-Feld gruppieren, würden die Daten wie folgt gruppiert:


| Zeit | Server ID | CPU-Temperatur | Status des Servers | 
| --- | --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Server 1 | 80 | Herunterfahren | 
| 07.07.2020 9:28:06 UHR | Server 1 | 80 | OK | 
| 07.07.2020 9:23:07 UHR | Server 1 | 86 | OK | 
| 07.07.2020 10:32:20 UHR | Server 2 | 90 | Überlastung | 
| 07.07.2020 9:30:05 UHR | Server 2 | 88 | OK | 
| 07.07.2020 9:25:05 UHR | Server 2 | 88 | OK | 
| 07.07.2020 11:34:20 UHR | Server 3 | 62 | OK | 
| 07.07.2020 10:31:22 UHR | Server 3 | 55 | OK | 
| 07.07.2020 9:30:57 UHR | Server 3 | 62 | Rebooting | 

Alle Zeilen mit demselben Wert für die Server-ID werden gruppiert.

Nachdem Sie ausgewählt haben, nach welchem Feld Sie Ihre Daten gruppieren möchten, können Sie verschiedene Berechnungen für die anderen Felder hinzufügen und die Berechnung auf jede Zeilengruppe anwenden. Wir könnten zum Beispiel die durchschnittliche CPU-Temperatur für jeden dieser Server berechnen wollen. Wir können also die *Mittelwertberechnung* hinzufügen, die auf das Feld CPU-Temperatur angewendet wird, um Folgendes zu erhalten:


| Server ID | CPU-Temperatur (Mittelwert) | 
| --- | --- | 
| Server 1 | 82 | 
| Server 2 | 88,6 | 
| Server 3 | 59,6 | 

Und wir können mehr als eine Berechnung hinzufügen. Zum Beispiel:
+ Für das Feld Time können wir den *letzten* Wert berechnen, um zu wissen, wann der letzte Datenpunkt für jeden Server empfangen wurde
+ Für das Feld Serverstatus können wir den *letzten* Wert berechnen, um den letzten Statuswert für jeden Server zu ermitteln
+ Für das Feld Temperatur können wir auch den *letzten* Wert berechnen, um zu erfahren, welche Temperatur für jeden Server zuletzt überwacht wurde

Wir würden dann erhalten:


| Server ID | CPU-Temperatur (Mittelwert) | CPU-Temperatur (letzte) | Zeit (letzte) | Serverstatus (zuletzt) | 
| --- | --- | --- | --- | --- | 
| Server 1 | 82 | 80 | 07.07.2020 11:34:20 UHR | Herunterfahren | 
| Server 2 | 88,6 | 90 | 07.07.2020 10:32:20 UHR | Überlastung | 
| Server 3 | 59,6 | 62 | 07.07.2020 11:34:20 UHR | OK | 

Diese Transformation ermöglicht es Ihnen, wichtige Informationen aus Ihrer Zeitreihe zu extrahieren und sie auf bequeme Weise anzuzeigen.

## Gruppierung zur Matrix
<a name="v10-panels-xform-funcs-groupmatrix"></a>

Verwenden Sie diese Transformation, um drei Felder, die als Eingabe für die **Wertfelder **Spalte**, **Zeile** und Zelle** aus der Abfrageausgabe verwendet werden, zu kombinieren und eine Matrix zu generieren. Die Matrix wird wie folgt berechnet:

**Ursprüngliche Daten**


| Server ID | CPU-Temperatur | Status des Servers | 
| --- | --- | --- | 
| Server 1 | 82 | OK | 
| Server 2 | 88,6 | OK | 
| Server 3 | 59,6 | Herunterfahren | 

Wir können eine Matrix generieren, indem wir die Werte von `Server Status` als Spaltennamen, die `Server ID` Werte als Zeilennamen und den `CPU Temperature` AS-Inhalt jeder Zelle verwenden. Der Inhalt jeder Zelle wird für die bestehende Kombination aus Spalten (`Server Status`) und Zeilen (`Server ID`) angezeigt. Für die restlichen Zellen können Sie auswählen, welcher Wert zwischen **Null**, **Wahr**, **Falsch** oder **Leer** angezeigt werden soll.

**Ausgabe**


|  IDServer Serverstatus | OK | Herunterfahren | 
| --- | --- | --- | 
| Server 1 | 82 |  | 
| Server 2 | 88,6 |  | 
| Server 3 |  | 59,6 | 

Verwenden Sie diese Transformation, um eine Matrix zu erstellen, indem Sie Felder aus Ihren Abfrageergebnissen angeben. Die Matrixausgabe spiegelt die Beziehungen zwischen den Einzelwerten in diesen Feldern wider. Auf diese Weise können Sie komplexe Beziehungen in einem klaren und strukturierten Matrixformat darstellen.

## Von der Gruppe zur verschachtelten Tabelle
<a name="v10-panels-xform-funcs-grouptable"></a>

Verwenden Sie diese Transformation, um die Daten nach einem bestimmten Feldwert (Spaltenwert) zu gruppieren und die Berechnung für jede Gruppe durchzuführen. Es werden Datensätze generiert, die denselben gruppierten Feldwert verwenden und in einer verschachtelten Tabelle angezeigt werden.

Um eine Statistik für ein Feld zu berechnen, aktivieren Sie das Kästchen neben dem Feld und wählen Sie die Option **Berechnen**. Dadurch wird ein weiteres Auswahlfeld mit Statistiken hinzugefügt, die ausgewählt werden sollen.

Die folgende Tabelle zeigt Beispieldaten.


| Zeit | Server ID | CPU-Temperatur | Status des Servers | 
| --- | --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Server 1 | 80 | Herunterfahren | 
| 07.07.2020 11:34:20 UHR | Server 3 | 62 | OK | 
| 07.07.2020 10:32:20 UHR | Server 2 | 90 | Überlastung | 
| 07.07.2020 10:31:22 UHR | Server 3 | 55 | OK | 
| 07.07.2020 9:30:57 UHR | Server 3 | 62 | Rebooting | 
| 07.07.2020 9:30:05 UHR | Server 2 | 88 | OK | 
| 07.07.2020 9:28:06 UHR | Server 1 | 80 | OK | 
| 07.07.2020 9:25:05 UHR | Server 2 | 88 | OK | 
| 07.07.2020 9:23:07 UHR | Server 1 | 86 | OK | 

Diese Transformation besteht aus zwei Schritten. Geben Sie zunächst ein oder mehrere Felder an, nach denen die Daten gruppiert werden sollen. Dadurch werden dieselben Werte dieser Felder gruppiert, als ob Sie sie sortiert hätten. Wenn Sie beispielsweise nach dem `Server ID` Feld gruppieren, gruppiert Grafana die Daten auf diese Weise:


| Server ID | Daten | 
| --- | --- | 
| Zeit | CPU-Temperatur | Status des Servers | 
| --- | --- | --- | 
| Zeit | CPU-Temperatur | Status des Servers | 
| --- | --- | --- | 
| Zeit | CPU-Temperatur | Status des Servers | 
| --- | --- | --- | 
| Server 1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| Server 2 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| Server 3 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| 07.07.2020 11:34:20 UHR | 80 | Herunterfahren | 
| 07.07.2020 09:28:06 UHR | 80 | OK | 
| 07.07.2020 09:23:07 UHR | 86 | OK | 
| 07.07.2020 10:32:20 UHR | 90 | Überlastung | 
| 07.07.2020 9:30:05 UHR | 88 | OK | 
| 07.07.2020 09:25:05 UHR | 88 | OK | 
| 07.07.2020 11:34:20 UHR | 62 | OK | 
| 07.07.2020 10:31:22 UHR | 55 | OK | 
| 07.07.2020 09:30:57 UHR | 62 | Rebooting | 

Nachdem Sie das Feld ausgewählt haben, nach dem Sie Ihre Daten gruppieren möchten, können Sie verschiedene Berechnungen für die anderen Felder hinzufügen und die Berechnung auf jede Zeilengruppe anwenden. Beispielsweise möchten Sie möglicherweise die durchschnittliche CPU-Temperatur für jeden dieser Server berechnen. Fügen Sie dazu die Mittelwertberechnung hinzu, die auf das Feld CPU-Temperatur angewendet wurde, um das folgende Ergebnis zu erhalten:


| Server ID | CPU-Temperatur (Mittelwert) |  | 
| --- | --- | --- | 
| Zeit | Serverstatus | 
| --- | --- | 
| Zeit | Status des Servers | 
| --- | --- | 
| Zeit | Status des Servers | 
| --- | --- | 
| Server 1 | 82 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| Server 2 | 88,6 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/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/de_de/grafana/latest/userguide/v10-panels-xform-functions.html) | 
| 07.07.2020 11:34:20 UHR | Herunterfahren | 
| 07.07.2020 09:28:06 UHR | OK | 
| 07.07.2020 09:23:07 UHR | OK | 
| 07.07.2020 10:32:20 UHR | Überlastung | 
| 07.07.2020 9:30:05 UHR | OK | 
| 07.07.2020 09:25:05 UHR | OK | 
| 07.07.2020 11:34:20 UHR | OK | 
| 07.07.2020 10:31:22 UHR | OK | 
| 07.07.2020 09:30:57 UHR | Rebooting | 

## Heatmap erstellen
<a name="v10-panels-xform-funcs-heatmap"></a>

Verwenden Sie diese Transformation, um Histogrammdaten für die Visualisierung von Trends im Zeitverlauf vorzubereiten. Ähnlich wie bei der Heatmap-Visualisierung werden bei dieser Transformation Histogramm-Metriken in zeitliche Bereiche umgewandelt.

**X-Bucket**

Diese Einstellung bestimmt, wie die X-Achse in Buckets aufgeteilt wird.
+ **Größe** — Geben Sie im Eingabefeld ein Zeitintervall an. Beispiel: Ein Zeitbereich von `1h` erzeugt Zellen mit einer Breite von einer Stunde auf der X-Achse.
+ **Anzahl** — Verwenden Sie diese Option für non-time-related Reihen, um die Anzahl der Elemente in einem Bucket zu definieren.

**Y-Bucket**

Diese Einstellung bestimmt, wie die Y-Achse in Bereiche aufgeteilt wird.
+ **Linear (Linear)**
+ **Logarithmisch** — Wählen Sie zwischen logarithmischer Basis 2 oder logarithmischer Basis 10.
+ **Symlog** — Verwendet eine symmetrische logarithmische Skala. Wählen Sie zwischen Log-Basis 2 und Log-Basis 10, wobei negative Werte berücksichtigt werden können.

Nehmen wir an, Sie haben den folgenden Datensatz:


| Zeitstempel | Wert | 
| --- | --- | 
| 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 | 
+ Wenn X Bucket auf `Size: 15m` und Y Bucket auf eingestellt ist`Linear`, organisiert das Histogramm Werte in Zeitintervallen von 15 Minuten auf der X-Achse und linear auf der Y-Achse.
+ Für X Bucket as `Count: 2` und Y Bucket as `Logarithmic (base 10)` gruppiert das Histogramm Werte in Gruppen von zwei auf der X-Achse und verwendet eine logarithmische Skala auf der Y-Achse.

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

Verwenden Sie diese Transformation, um ein Histogramm auf der Grundlage von Eingabedaten zu erstellen, mit dem Sie die Verteilung der Werte visualisieren können.
+ **Bucket-Größe** — Der Bereich zwischen den niedrigsten und höchsten Elementen in einem Bucket (xMin bis xMax).
+ **Bucket-Offset** — Der Offset für non-zero-based Buckets.
+ **Reihen kombinieren** — Erstellen Sie ein einheitliches Histogramm unter Verwendung aller verfügbaren Reihen.

**Originaldaten**

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 | 

**Ausgabe**


| X-Min | X Max | 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 | 

Visualisieren Sie die Verteilung der Werte anhand des generierten Histogramms und erhalten Sie so Einblicke in die Streuung und Dichte der Daten.

## Nach Feld verknüpfen
<a name="v10-panels-xform-funcs-joinfield"></a>

Verwenden Sie diese Transformation, um mehrere Ergebnisse in einer einzigen Tabelle zusammenzuführen und so die Konsolidierung von Daten aus verschiedenen Abfragen zu ermöglichen.

Dies ist besonders nützlich, wenn Sie mehrere Zeitreihenergebnisse in eine einzige große Tabelle mit einem gemeinsamen Zeitfeld konvertieren möchten.

**Innere Verbindung**

Bei einer inneren Verknüpfung werden Daten aus mehreren Tabellen zusammengeführt, wobei alle Tabellen denselben Wert aus dem ausgewählten Feld haben. Diese Art der Verknüpfung schließt Daten aus, bei denen die Werte nicht in jedem Ergebnis übereinstimmen.

Verwenden Sie diese Transformation, um die Ergebnisse mehrerer Abfragen (Kombination aus einem übergebenen Join-Feld oder der ersten Zeitspalte) zu einem Ergebnis zu kombinieren und Zeilen zu löschen, in denen eine erfolgreiche Verknüpfung nicht möglich ist.

Im folgenden Beispiel geben zwei Abfragen Tabellendaten zurück. Es wird als zwei separate Tabellen visualisiert, bevor die innere Join-Transformation angewendet wird.

Abfrage A:


| Zeit | Aufgabe | Betriebszeit | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | node | 25260122 | 
| 07.07.2020 11:24:20 UHR | Postfach | 123001233 | 
| 07.07.2020 11:14:20 UHR | Postfach | 345001233 | 

Anfrage B:


| Zeit | Server | Fehler | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Server 1 | 15 | 
| 07.07.2020 11:24:20 UHR | Server 2 | 5 | 
| 07.07.2020 11:04:20 UHR | Server 3 | 10 | 

Das Ergebnis nach der Anwendung der inneren Join-Transformation sieht wie folgt aus:


| Zeit | Aufgabe | Betriebszeit | Server | Fehler | 
| --- | --- | --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | node | 25260122 | Server 1 | 15 | 
| 07.07.2020 11:24:20 UHR | Postfach | 123001233 | Server 2 | 5 | 

*Äußere Verbindung*

Ein äußerer Join umfasst alle Daten aus einem inneren Join und Zeilen, in denen die Werte nicht in jeder Eingabe übereinstimmen. Während die innere Verknüpfung Abfrage A und Abfrage B im Zeitfeld verknüpft, umfasst die äußere Verknüpfung alle Zeilen, die im Zeitfeld nicht übereinstimmen.

Im folgenden Beispiel geben zwei Abfragen Tabellendaten zurück. Es wird als zwei Tabellen visualisiert, bevor die Outer-Join-Transformation angewendet wird.

Abfrage A:


| Zeit | Aufgabe | Betriebszeit | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | node | 25260122 | 
| 07.07.2020 11:24:20 UHR | Postfach | 123001233 | 
| 07.07.2020 11:14:20 UHR | Postfach | 345001233 | 

Anfrage B:


| Zeit | Server | Fehler | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Server 1 | 15 | 
| 07.07.2020 11:24:20 UHR | Server 2 | 5 | 
| 07.07.2020 11:04:20 UHR | Server 3 | 10 | 

Das Ergebnis nach der Anwendung der Outer-Join-Transformation sieht wie folgt aus:


| Zeit | Aufgabe | Betriebszeit | Server | Fehler | 
| --- | --- | --- | --- | --- | 
| 07.07.2020 11:04:20 UHR |  |  | Server 3 | 10 | 
| 07.07.2020 11:14:20 UHR | Postfach | 345001233 |  |  | 
| 07.07.2020 11:34:20 UHR | node | 25260122 | Server 1 | 15 | 
| 07.07.2020 11:24:20 UHR | Postfach | 123001233 | Server 2 | 5 | 

## Über Labels beitreten
<a name="v10-panels-xform-funcs-joinlabel"></a>

Verwenden Sie diese Transformation, um mehrere Ergebnisse zu einer einzigen Tabelle zusammenzuführen.

Dies ist besonders nützlich, wenn Sie mehrere Zeitreihenergebnisse in eine einzige breite Tabelle mit einem gemeinsamen **Label-Feld** konvertieren möchten.
+ **Verbinden** — Wählen Sie das Label aus, das zwischen den verfügbaren oder in allen Zeitreihen gemeinsamen Labels verknüpft werden soll.
+ **Wert** — Der Name für das Ausgabeergebnis.

**Beispiel**

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


| Zeit | Wert | 
| --- | --- | 
| 1 | 10 | 
| 2 | 200 | 

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


| Zeit | Wert | 
| --- | --- | 
| 1 | 10 | 
| 2 | 200 | 

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


| Zeit | Wert | 
| --- | --- | 
| 22 | 22 | 
| 28 | 77 | 

Config:

```
value: 'what'
```

Ausgabe:


| Cluster | Auftrag | Temporäre Dateien | Geschwindigkeit | 
| --- | --- | --- | --- | 
| A | J1 | 10 |  | 
| A | J1 | 200 |  | 
| B | J1 | 10 | 22 | 
| B | J1 | 200 | 77 | 

Kombinieren und organisieren Sie Zeitreihendaten effektiv mit dieser Transformation, um umfassende Einblicke zu erhalten.

## Beschriftungen für Felder
<a name="v10-panels-xform-funcs-labelstofields"></a>

Verwenden Sie diese Transformation, um Zeitreihenergebnisse mit Beschriftungen oder Tags in eine Tabelle umzuwandeln, einschließlich der Schlüssel und Werte der einzelnen Labels im Ergebnis. Zeigen Sie Beschriftungen entweder als Spalten- oder als Zeilenwerte an, um die Datenvisualisierung zu verbessern.

Bei einem Abfrageergebnis aus zwei Zeitreihen:
+ Serie 1 — Beschriftungen`Server=Server A`, `Datacenter=EU`
+ Serie 2 — Etiketten`Server=Server B`, `Datacenter=EU`

Im **Spaltenmodus** sieht das Ergebnis wie folgt aus:


| Zeit | Server | Rechenzentrum | Wert | 
| --- | --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Server A | EU | 1 | 
| 07.07.2020 11:34:20 UHR | Server B | EU | 2 | 

Im Modus „Zeilen“ enthält das Ergebnis eine Tabelle für jede Reihe und zeigt jeden Labelwert wie folgt an:


| Bezeichnung | value | 
| --- | --- | 
| Server | Server A | 
| Rechenzentrum | EU | 


| Bezeichnung | value | 
| --- | --- | 
| Server | Server B | 
| Rechenzentrum | EU | 

**Name des Wertefeldes**

Wenn Sie Server als **Namen für das Wertfeld** ausgewählt haben, erhalten Sie für jeden Wert der Serverbezeichnung ein Feld.


| Zeit | Rechenzentrum | Server A | Server B | 
| --- | --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | EU | 1 | 2 | 

**Verhalten beim Zusammenführen**

Der Transformator „Labels to Fields“ besteht intern aus zwei getrennten Transformationen. Die erste Methode bezieht sich auf einzelne Datenreihen und extrahiert Beschriftungen in Felder. Die zweite ist die Zusammenführungstransformation, die alle Ergebnisse in einer einzigen Tabelle zusammenfasst. Die Zusammenführungstransformation versucht, alle übereinstimmenden Felder zu verknüpfen. Dieser Zusammenführungsschritt ist erforderlich und kann nicht deaktiviert werden.

Um dies zu verdeutlichen, finden Sie hier ein Beispiel mit zwei Abfragen, die Zeitreihen ohne überlappende Beschriftungen zurückgeben.
+ Serie 1 — Beschriftungen `Server=ServerA`
+ Serie 2 — Etiketten `Datacenter=EU`

Dies wird zunächst zu diesen beiden Tabellen führen:


| Zeit | Server | Wert | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Server A | 10 | 


| Zeit | Rechenzentrum | Wert | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | EU | 20 | 

Nach der Zusammenführung:


| Zeit | Server | Wert | Rechenzentrum | 
| --- | --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Server A | 10 |  | 
| 07.07.2020 11:34:20 UHR |  | 20 | EU | 

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

Verwenden Sie diese Transformation, um die Anzahl der angezeigten Zeilen einzuschränken und so eine fokussiertere Ansicht Ihrer Daten zu ermöglichen. Dies ist besonders nützlich, wenn Sie mit großen Datensätzen arbeiten.

Im Folgenden finden Sie ein Beispiel, das die Auswirkungen der **Limit-Transformation** auf eine Antwort aus einer Datenquelle veranschaulicht:


| Zeit | Metrik | Wert | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Temperatur | 25 | 
| 07.07.2020 11:34:20 UHR | Luftfeuchtigkeit | 22 | 
| 07.07.2020 10:32:20 UHR | Feuchtigkeit | 29 | 
| 07.07.2020 10:31:22 UHR | Temperatur | 22 | 
| 07.07.2020 09:30:57 UHR | Luftfeuchtigkeit | 33 | 
| 07.07.2020 9:30:05 UHR | Temperatur | 19 | 

Hier ist das Ergebnis nach dem Hinzufügen einer Limit-Transformation mit dem Wert '3':


| Zeit | Metrik | Wert | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | Temperatur | 25 | 
| 07.07.2020 11:34:20 UHR | Luftfeuchtigkeit | 22 | 
| 07.07.2020 10:32:20 UHR | Feuchtigkeit | 29 | 

Diese Transformation hilft Ihnen, die visuelle Präsentation Ihrer Daten so anzupassen, dass der Schwerpunkt auf den relevantesten Daten liegt.

## Reihen/Tabellen zusammenführen
<a name="v10-panels-xform-funcs-merge"></a>

Verwenden Sie diese Transformation, um das Ergebnis mehrerer Abfragen zu einem einzigen Ergebnis zu kombinieren. Dies ist besonders nützlich, wenn Sie die Tabellenfenster-Visualisierung verwenden. Die Transformation führt Werte in derselben Zeile zusammen, wenn gemeinsam genutzte Felder dieselben Daten enthalten.

Im Folgenden finden Sie ein Beispiel dafür, wie sich die Transformation zum **Zusammenführen von Serien/Tabellen** auf zwei Abfragen auswirkt, die Tabellendaten zurückgeben:

*Abfrage A:*


| Zeit | Aufgabe | Verfügbarkeit | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | node | 25260122 | 
| 07.07.2020 11:24:20 UHR | Postfach | 123001233 | 

Anfrage B:


| Zeit | Aufgabe | Fehler | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | node | 15 | 
| 07.07.2020 11:24:20 UHR | Postfach | 5 | 

Hier ist das Ergebnis nach der Anwendung der Merge-Transformation:


| Zeit | Aufgabe | Fehler | Betriebszeit | 
| --- | --- | --- | --- | 
| 07.07.2020 11:34:20 UHR | node | 15 | 25260122 | 
| 07.07.2020 11:24:20 UHR | Postfach | 5 | 123001233 | 

Bei dieser Transformation werden Werte aus Abfrage A und Abfrage B in einer einheitlichen Tabelle kombiniert, wodurch die Darstellung für bessere Einblicke verbessert wird.

## Organisieren Sie Felder nach Namen
<a name="v10-panels-xform-funcs-organize"></a>

Verwenden Sie diese Transformation, um Felder umzubenennen, neu anzuordnen oder auszublenden, die von einer einzelnen Abfrage in Ihrem Panel zurückgegeben wurden. Diese Transformation funktioniert nur in Panels mit einer einzigen Abfrage. Wenn Ihr Panel über mehrere Abfragen verfügt, müssen Sie entweder eine *Outer Join-Transformation* anwenden oder die zusätzlichen Abfragen entfernen.

**Felder transformieren**

Grafana zeigt eine Liste der Felder an, die von der Abfrage zurückgegeben wurden. Sie können:
+ **Feldreihenfolge ändern** — Ziehen Sie ein Feld an eine neue Position in der Liste.
+ **Feld ein- oder ausblenden** — Verwenden Sie das Augensymbol neben dem Feldnamen, um die Sichtbarkeit eines Felds umzuschalten.
+ **Felder umbenennen** — Geben Sie einen neuen Namen in das Feld **Umbenennen** ein.

**Beispiel**

Angesichts dieses ersten Abfrageergebnisses:


| Zeit | Metrik | Wert | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | Temperatur | 25 | 
| 07.07.2020 11:34:20 | Feuchtigkeit | 22 | 
| 2020-07-07 10:32:20 | Feuchtigkeit | 29 | 

Sie könnten eine Änderung beim Umbenennen eines Felds anwenden, um Folgendes zu erstellen:


| Zeit | Sensor | Lesen | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | Temperatur | 25 | 
| 07.07.2020 11:34:20 | Feuchtigkeit | 22 | 
| 2020-07-07 10:32:20 | Feuchtigkeit | 29 | 

Mit dieser Transformation können Sie die Anzeige von Abfrageergebnissen anpassen und so eine klare und aufschlussreiche Darstellung Ihrer Daten in Grafana sicherstellen.

## Partition nach Werten
<a name="v10-panels-xform-funcs-partition"></a>

Verwenden Sie diese Transformation, um die grafische Darstellung mehrerer Reihen zu optimieren, ohne dass mehrere Abfragen mit unterschiedlichen `WHERE` Klauseln erforderlich sind.

**Anmerkung**  
Diese Funktion ist in Arbeitsbereichen verfügbar, die mit Grafana-Version 9 und höher kompatibel sind.

Dies ist besonders nützlich, wenn Sie eine Metrik-SQL-Tabelle verwenden, wie in diesem Beispiel:


| Zeit | Region | Wert | 
| --- | --- | --- | 
| 20.10.2022 12:00:00 UHR | US | 1520 | 
| 20.10.2022 12:00:00 UHR | EU | 2936 | 
| 20.10.2022 01:00:00 UHR | US | 1327 | 
| 20.10.2022 01:00:00 UHR | EU | 912 | 

Mit dem Transformator „*Partition nach Werten*“ können Sie eine einzelne Abfrage ausführen und die Ergebnisse nach eindeutigen Werten in einer oder mehreren Spalten (Feldern) Ihrer Wahl aufteilen. Im folgenden Beispiel wird `Region` verwendet.

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


| Zeit | Region | Wert | 
| --- | --- | --- | 
| 20.10.2022 12:00:00 UHR | US | 1520 | 
| 20.10.2022 01:00:00 UHR | US | 1327 | 


| Zeit | Region | Wert | 
| --- | --- | --- | 
| 20.10.2022 12:00:00 UHR | EU | 2936 | 
| 20.10.2022 01:00:00 UHR | EU | 912 | 

Diese Transformation vereinfacht den Prozess und erhöht die Flexibilität bei der Visualisierung mehrerer Serien innerhalb derselben Zeitreihenvisualisierung.

## Bereiten Sie Zeitreihen vor
<a name="v10-panels-xform-funcs-preparetimeseries"></a>

Verwenden Sie diese Transformation, um Probleme zu beheben, wenn eine Datenquelle Zeitreihendaten in einem Format zurückgibt, das mit der gewünschten Visualisierung nicht kompatibel ist. Mit dieser Transformation können Sie Zeitreihendaten zwischen Breit- und Langformaten konvertieren.

**Zeitreihen mit mehreren Frames**

Verwenden Sie diese Option, um den Zeitreihen-Datenrahmen vom Breitformat in das Langformat umzuwandeln. Dies ist besonders hilfreich, wenn Ihre Datenquelle Zeitreiheninformationen in einem Format bereitstellt, das für eine optimale Kompatibilität mit Ihrer Visualisierung umgestaltet werden muss.

*Beispiel*

Diese Eingabe:


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

Könnte umgewandelt werden in:


| Zeitstempel | Variable | Wert | 
| --- | --- | --- | 
| 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 | 

**Breite Zeitreihen**

Verwenden Sie diese Option, um den Zeitreihen-Datenrahmen vom Langformat in das Breitformat umzuwandeln. Dies ist besonders hilfreich, wenn Ihre Datenquelle Zeitreihendaten in einem langen Format liefert und Ihre Visualisierung ein breites Format erfordert.

*Beispiel*

Diese Eingabe:


| Zeitstempel | Variable | Wert | 
| --- | --- | --- | 
| 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 | 

Könnte umgewandelt werden in:


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

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

Verwenden Sie diese Transformation, wendet eine Berechnung auf jedes Feld im Datenrahmen an und gibt einen einzelnen Wert zurück. Diese Transformation ist besonders nützlich, um mehrere Zeitreihendaten in einem kompakteren, zusammengefassten Format zu konsolidieren. Zeitfelder werden entfernt, wenn diese Transformation angewendet wird.

Betrachten Sie die Eingabe:

Abfrage A:


| Zeit | Temporäre Dateien | Betriebszeit | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | 12.3 | 256122 | 
| 2020-07-07 11:24:20 | 15,4 | 1230233 | 

Anfrage B:


| Zeit | AQI | Fehler | 
| --- | --- | --- | 
| 07.07.2020 11:34:20 | 6,5 | 15 | 
| 07.07.2020 11:24:20 | 3.2 | 5 | 

Der Reduktionstransformator hat zwei Modi:
+ **Reihe zu Zeilen** — Erstellt eine Zeile für jedes Feld und eine Spalte für jede Berechnung.
+ **Felder reduzieren** — Behält die bestehende Rahmenstruktur bei, reduziert jedoch jedes Feld auf einen einzigen Wert.

Wenn Sie beispielsweise die **erste** und **letzte** Berechnung mit einer Transformation von **Datenreihen in Zeilen** verwenden würden, wäre das Ergebnis:


| Feld | Erste | Letzte | 
| --- | --- | --- | 
| Temporäre Dateien | 12.3 | 15.4 | 
| Betriebszeit | 256122 | 1230233 | 
| AQI | 6,5 | 3.2 | 
| Fehler | 15 | 5 | 

Die Formel **Felder mit der **letzten** Option reduzieren** ergibt zwei Frames mit jeweils einer Zeile:

Abfrage A:


| Temporäre Dateien | Betriebszeit | 
| --- | --- | 
| 15,4 | 1230233 | 

Anfrage B:


| AQI | Fehler | 
| --- | --- | 
| 3.2 | 5 | 

## Mit Regex umbenennen
<a name="v10-panels-xform-funcs-rename"></a>

Verwenden Sie diese Transformation, um Teile der Abfrageergebnisse mithilfe eines regulären Ausdrucks und eines Ersatzmusters umzubenennen.

Sie können einen regulären Ausdruck angeben, der nur auf Treffer angewendet wird, sowie ein Ersatzmuster, das Rückverweise unterstützt. Stellen wir uns zum Beispiel vor, Sie visualisieren die CPU-Auslastung pro Host und möchten den Domainnamen entfernen. Sie könnten die Regex auf setzen `([^\.]+)\..+` und das Ersatzmuster auf`$1`, `web-01.example.com` würde werden. `web-01`

Durch diese Transformation können Sie Ihre Daten an Ihre Visualisierungsanforderungen anpassen und Ihre Dashboards informativer und benutzerfreundlicher gestalten.

## Von Zeilen zu Feldern
<a name="v10-panels-xform-funcs-row"></a>

Verwenden Sie diese Transformation, um Zeilen in separate Felder umzuwandeln. Dies kann nützlich sein, da Felder individuell gestaltet und konfiguriert werden können. Es kann auch zusätzliche Felder als Quellen für die dynamische Feldkonfiguration verwenden oder sie Feldbeschriftungen zuordnen. Die zusätzlichen Beschriftungen können dann verwendet werden, um bessere Anzeigenamen für die resultierenden Felder zu definieren.

Diese Transformation umfasst eine Feldtabelle, die alle Felder in den von der Konfigurationsabfrage zurückgegebenen Daten auflistet. Diese Tabelle gibt Ihnen die Kontrolle darüber, welches Feld jeder Konfigurationseigenschaft zugeordnet werden soll (die Option **Verwenden als**). Sie können auch wählen, welcher Wert ausgewählt werden soll, wenn die zurückgegebenen Daten mehrere Zeilen enthalten.

Diese Transformation erfordert:
+ Ein Feld, das als Quelle für Feldnamen verwendet werden soll.

  Standardmäßig verwendet die Transformation das erste Zeichenkettenfeld als Quelle. Sie können diese Standardeinstellung überschreiben, indem Sie **Feldname** in der Spalte **Verwenden als** für das Feld auswählen, das Sie stattdessen verwenden möchten.
+ Ein Feld, das als Wertequelle verwendet werden soll.

  Standardmäßig verwendet die Transformation das erste Zahlenfeld als Quelle. Sie können diese Standardeinstellung jedoch überschreiben, indem Sie in der Spalte **Als verwenden** für das **Feld, das Sie stattdessen verwenden möchten, die Option Feldwert** auswählen.

Nützlich bei der Visualisierung von Daten in:
+ Messinstrument
+ Stat
+ Kreisdiagramm

**Ordnen Sie zusätzliche Felder Beschriftungen zu**

Wenn ein Feld nicht der Konfigurationseigenschaft zugeordnet ist, verwendet Grafana es automatisch als Quelle für ein Label im Ausgabefeld.

Beispiel:


| Name | DataCenter | Wert | 
| --- | --- | --- | 
| ServerA | US | 100 | 
| Server B | EU | 200 | 

Ausgabe:


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

Die zusätzlichen Beschriftungen können jetzt im Feldanzeigenamen verwendet werden, um vollständigere Feldnamen bereitzustellen.

Wenn Sie die Konfiguration aus einer Abfrage extrahieren und auf eine andere anwenden möchten, sollten Sie die *Konfiguration aus der Transformation der Abfrageergebnisse* verwenden.

**Beispiel**

Eingabe:


| Name | Wert | Max | 
| --- | --- | --- | 
| Server A | 10 | 100 | 
| Server B | 20 | 200 | 
| Server C | 30 | 300 | 

Ausgabe:


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

Wie Sie sehen können, wird jede Zeile in den Quelldaten zu einem separaten Feld. Für jedes Feld ist jetzt auch eine maximale Konfigurationsoption festgelegt. Optionen wie **Min.**, **Max**., **Einheit** und **Schwellenwerte** sind alle Teil der Feldkonfiguration. Wenn sie so eingestellt sind, werden sie von der Visualisierung anstelle von Optionen verwendet, die manuell im Optionsbereich des Panel-Editors konfiguriert wurden.

Diese Transformation ermöglicht die Umwandlung von Zeilen in einzelne Felder, erleichtert die dynamische Feldkonfiguration und ordnet zusätzliche Felder Beschriftungen zu.

## Reihen zu Zeilen
<a name="v10-panels-xform-funcs-series"></a>

Verwenden Sie diese Transformation, um das Ergebnis mehrerer Zeitreihen-Datenabfragen zu einem einzigen Ergebnis zu kombinieren. Dies ist hilfreich, wenn Sie die Tabellenfenster-Visualisierung verwenden.

Das Ergebnis dieser Transformation wird drei Spalten enthalten: Zeit, Metrik und Wert. Die Spalte Metrik wurde hinzugefügt, sodass Sie leicht erkennen können, aus welcher Abfrage die Metrik stammt. Passen Sie diesen Wert an, indem Sie Label in der Quellabfrage definieren.

Im folgenden Beispiel haben wir zwei Abfragen, die Zeitreihendaten zurückgeben. Es wird als zwei separate Tabellen visualisiert, bevor die Transformation angewendet wird.

*Abfrage A:*


| Zeit | Temperatur | 
| --- | --- | 
| 2020-07-07 11:34:20 | 25 | 
| 07.07.2020 10:31:22 | 22 | 
| 2020-07-07 09:30:05 | 19 | 

*Anfrage B:*


| Zeit | Feuchtigkeit | 
| --- | --- | 
| 2020-07-07 11:34:20 | 24 | 
| 07.07.2020 10:32:20 | 29 | 
| 07.07.2020 09:30:57 | 33 | 

Hier ist das Ergebnis nach der Anwendung der Transformation „Serie auf Zeilen“.


| Zeit | Metrik | Wert | 
| --- | --- | --- | 
| 2020-07-07 11:34:20 | Temperatur | 25 | 
| 07.07.2020 11:34:20 | Feuchtigkeit | 22 | 
| 2020-07-07 10:32:20 | Feuchtigkeit | 29 | 
| 2020-07-07 10:31:22 | Temperatur | 22 | 
| 2020-07-07 09:30:57 | Feuchtigkeit | 33 | 
| 2020-07-07 09:30:05 | Temperatur | 19 | 

Diese Transformation erleichtert die Konsolidierung von Ergebnissen aus mehreren Zeitreihenabfragen und bietet einen optimierten und einheitlichen Datensatz für eine effiziente Analyse und Visualisierung in einem tabellarischen Format.

## Sortieren nach
<a name="v10-panels-xform-funcs-sort"></a>

Verwenden Sie diese Transformation, um jeden Frame innerhalb eines Abfrageergebnisses nach einem bestimmten Feld zu sortieren, sodass Ihre Daten leichter zu verstehen und zu analysieren sind. Indem Sie das gewünschte Feld für die Sortierung konfigurieren, können Sie die Reihenfolge steuern, in der die Daten in der Tabelle oder Visualisierung dargestellt werden.

Verwenden Sie den **Umkehrschalter**, um die Werte innerhalb des angegebenen Feldes in umgekehrter Reihenfolge zu ordnen. Diese Funktion ist besonders nützlich, wenn Sie schnell zwischen aufsteigender und absteigender Reihenfolge wechseln möchten, um Ihren analytischen Anforderungen gerecht zu werden.

In einem Szenario, in dem Zeitreihendaten aus einer Datenquelle abgerufen werden, kann die Transformation „**Sortieren nach**“ angewendet werden, um die Datenrahmen auf der Grundlage des Zeitstempels entweder in aufsteigender oder absteigender Reihenfolge anzuordnen, je nach den analytischen Anforderungen. Diese Funktion stellt sicher, dass Sie auf einfache Weise durch Zeitreihendaten navigieren und diese interpretieren können, sodass Sie aus der organisierten und visuell kohärenten Präsentation wertvolle Erkenntnisse gewinnen können.

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

Verwenden Sie diese Transformation, um räumliche Operationen auf Abfrageergebnisse anzuwenden.
+ **Aktion** — Wählen Sie eine Aktion aus:
  + **Räumliches Feld vorbereiten** — Legen Sie ein Geometriefeld fest, das auf den Ergebnissen anderer Felder basiert.
    + **Positionsmodus** — Wählen Sie einen Positionsmodus aus (diese Optionen gelten für die Modi **Wert berechnen** und **Transformieren** gemeinsam):
      + **Automatisch** — Identifiziert Standortdaten automatisch anhand von Standardfeldnamen.
      + **Koordinaten** — Geben Sie Felder für Breitengrad und Längengrad an.
      + **Geohash** — Geben Sie ein Geohash-Feld an.
      + **Nachschlagen** — Geben Sie die Ortsverzeichnisfelder an.
  + **Wert berechnen** — Verwenden Sie die Geometrie, um ein neues Feld zu definieren ()heading/distance/area.
    + **Funktion** — Wählen Sie eine mathematische Operation, die auf die Geometrie angewendet werden soll:
      + **Überschrift** — Berechnet die Richtung (Richtung) zwischen zwei Punkten.
      + **Fläche** — Berechnet die Fläche, die von einem durch die Geometrie definierten Polygon eingeschlossen ist.
      + **Entfernung** — Berechnet den Abstand zwischen zwei Punkten.
  + **Transformieren** — Wendet räumliche Operationen auf die Geometrie an.
    + **Operation** — Wählen Sie eine Operation aus, die auf die Geometrie angewendet werden soll:
      + **Als Linie** — Erzeugt ein einzelnes Linien-Feature mit einem Scheitelpunkt in jeder Zeile.
      + **Liniengenerator** — Erzeugt eine Linie zwischen zwei Punkten.

Diese Transformation ermöglicht es Ihnen, Geodaten zu bearbeiten und zu analysieren, wodurch Operationen wie das Erstellen von Linien zwischen Punkten, das Berechnen räumlicher Eigenschaften und mehr ermöglicht werden.

## Umwandlung von Zeitreihen in Tabellen
<a name="v10-panels-xform-funcs-seriestotable"></a>

Verwenden Sie diese Transformation, um Zeitreihenergebnisse in eine Tabelle zu konvertieren und einen Zeitreihen-Datenrahmen in ein **Trendfeld** umzuwandeln. Das **Trendfeld** kann dann mit dem [Sparkline-Zelltyp](v10-panels-table.md#v10-panels-table-cell-type) gerendert werden, wodurch für jede Tabellenzeile eine Inline-Sparkline generiert wird. Wenn es mehrere Zeitreihenabfragen gibt, führt jede zu einem separaten Tabellendatenrahmen. Diese können mithilfe von Join- oder Merge-Transformationen verknüpft werden, um eine einzelne Tabelle mit mehreren Sparklines pro Zeile zu erzeugen.

Für jeden generierten **Trend-Feldwert** kann eine Berechnungsfunktion ausgewählt werden. Die Standardeinstellung ist **Letzter Wert ungleich Null**. Dieser Wert wird neben der Sparkline angezeigt und zum Sortieren von Tabellenzeilen verwendet.

## Regressionsanalyse
<a name="v10-panels-xform-funcs-regression"></a>

Verwenden Sie diese Transformation, um einen neuen Datenrahmen mit Werten zu erstellen, die von einem statistischen Modell vorhergesagt wurden. Dies ist nützlich, um einen Trend in chaotischen Daten zu finden. Es funktioniert, indem eine mathematische Funktion an die Daten angepasst wird, wobei entweder lineare oder polynomiale Regression verwendet wird. Der Datenrahmen kann dann in einer Visualisierung verwendet werden, um eine Trendlinie anzuzeigen.

Es gibt zwei verschiedene Modelle:
+  **Lineare Regression** — Passt eine lineare Funktion an die Daten an.
+  **Polynomielle Regression** — Passt eine Polynomfunktion an die Daten an.

**Anmerkung**  
Diese Transformation befindet sich derzeit in der öffentlichen Vorschau. Grafana Labs bietet eingeschränkten Support, und es können wichtige Änderungen vorgenommen werden, bevor die Funktion allgemein verfügbar gemacht wird.

# Problembehandlung bei Abfragen
<a name="v10-panels-query-troubleshoot"></a>

****  
Dieses Dokumentationsthema wurde für Grafana-Workspaces entwickelt, die **Grafana-Version 10.x** unterstützen.  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 9.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 9](using-grafana-v9.md)  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 8.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 8](using-grafana-v8.md)

Diese Seite enthält Informationen zur Lösung häufig auftretender Dashboard-Probleme.

**Ich erhalte unterschiedliche Ergebnisse, wenn ich meine Funktionen neu anordne**

Die Reihenfolge der Funktionen ist sehr wichtig. Genau wie in der Mathematik kann die Reihenfolge, in der Sie Ihre Funktionen platzieren, das Ergebnis beeinflussen.

**Prüfen Sie Ihre Anfrage und Antwort**

Die häufigsten Probleme hängen mit der Abfrage und der Antwort aus Ihrer Datenquelle zusammen. Auch wenn es in Grafana nach einem Bug oder Visualisierungsproblem aussieht, handelt es sich fast immer um ein Problem mit der Datenquellenabfrage oder der Datenquellenantwort. Überprüfen Sie zunächst Ihre Panel-Anfrage und -Antwort.

Weitere Informationen finden Sie unter [Anfrage- und Antwortdaten überprüfen](v10-panels-panel-inspector.md).

**Meine Abfrage ist langsam**

Wie viele Datenpunkte gibt Ihre Abfrage zurück? Eine Abfrage, die viele Datenpunkte zurückgibt, ist langsam. Versuche das:
+ Begrenzen Sie in den **Abfrageoptionen** die **maximale Anzahl der zurückgegebenen Datenpunkte**.
+ Erhöhen Sie in den **Abfrageoptionen** die **Mindestintervallzeit**.
+ Verwenden Sie in Ihrer Abfrage eine `group by` Funktion.

# Berechnungsarten
<a name="v10-panels-calculation-types"></a>

****  
Dieses Dokumentationsthema wurde für Grafana-Workspaces entwickelt, die **Grafana-Version 10.x** unterstützen.  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 9.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 9](using-grafana-v9.md)  
Informationen zu Grafana-Arbeitsbereichen, die Grafana-Version 8.x unterstützen, finden Sie unter. [Arbeitet in Grafana-Version 8](using-grafana-v8.md)

Die folgende Tabelle enthält eine Liste von Berechnungen, die Sie in Grafana durchführen können. Sie finden diese Berechnungen auf der Registerkarte **Transformieren** und in den Visualisierungen Balkenanzeige, Messgerät und Statistik.


| Berechnung | Description | 
| --- | --- | 
| Alle Nullen | Wahr, wenn alle Werte Null sind | 
| Alle Werte | Array mit allen Werten | 
| Alle eindeutigen Werte | Array mit allen Einzelwerten | 
| Alle Nullen | Wahr, wenn alle Werte 0 sind | 
| Anzahl ändern | Gibt an, wie oft sich der Wert des Felds ändert | 
| Anzahl | Anzahl der Werte in einem Feld | 
| Delta | Kumulative Wertänderung, zählt nur Inkremente | 
| Unterschied | Unterschied zwischen dem ersten und dem letzten Wert eines Felds | 
| Unterschied in% | Prozentuale Änderung zwischen dem ersten und dem letzten Wert eines Felds | 
| Eindeutige Anzahl | Anzahl der eindeutigen Werte in einem Feld | 
| Erste | Erster Wert in einem Feld | 
| Erste\$1 (nicht Null) | Erstens, kein Nullwert in einem Feld (schließt auch aus NaNs) | 
| Letzte | Letzter Wert in einem Feld | 
| Letztes\$1 (nicht Null) | Letzter Wert, kein Nullwert in einem Feld (schließt auch aus NaNs) | 
| Max | Maximalwert eines Felds | 
| Mean | Mittelwert aller Werte in einem Feld | 
| Varianz | Varianz aller Werte in einem Feld | 
| StdDev | Standardabweichung aller Werte in einem Feld | 
| Min | Minimaler Wert eines Feldes | 
| Min. (über Null) | Minimaler, positiver Wert eines Felds | 
| Bereich | Unterschied zwischen Maximal- und Minimalwerten eines Felds | 
| Schritt | Minimaler Abstand zwischen den Werten eines Feldes | 
| Gesamt | Summe aller Werte in einem Feld | 