Erstellen und Verwalten von Variablen
In IBM® Cloud Logs ist eine Variable ein Platzhalter für einen Wert, der in Abfragen verwendet wird. Bei Verwendung in benutzerdefinierten Dashboards werden die Abfragen des Dashboards aktualisiert, um Daten für diesen Wert anzuzeigen.
Variablen machen Dashboards interaktiver und dynamischer. Anstatt spezifische Namen für Server, Anwendungen oder Sensoren in Ihre Abfragen einzufügen, können Sie stattdessen Variablen verwenden. Sie können problemlos zwischen verschiedenen Datenansichten wechseln. Das bedeutet, dass Sie bei komplexen Metriken mit hoher Kardinalität Variablen hinzufügen können, um bestimmte Werte, die für Sie von Bedeutung sind, näher zu betrachten. Variablen können in allen Widgets für alle Datentypen verwendet werden, unabhängig vom Typ der Variablenquelle.
Variablentypen
Sie können zwischen verschiedenen Variablentypen wählen.
- Variablen mit statischem Wert
- Sie können manuell eine feste Liste von Variablenwerten definieren, z. B. eine Zahl oder eine durch ein Komma getrennte Zahlenfolge. Wenn Sie z. B. Ländernamen haben, die sich nie ändern, sollten Sie diese als Variable mit statischem Wert und nicht als Abfragevariable für die Datenquelle erstellen.
- Abfrage der Variablen
- Die Variablenwerte werden aus einer Abfrage von Protokollen oder Metrikdatenquellen abgerufen. Eine Abfragevariable kann beispielsweise eine Liste von Servernamen, Sensor-IDs oder Datenzentren generieren und die Werte dynamisch aktualisieren, indem sie Optionen mit Hilfe einer Datenquellenabfrage abruft. Abfragevariablen sind von Vorteil, wenn mehrere Datenquelleninstanzen verwaltet werden, insbesondere in unterschiedlichen Umgebungen.
Definieren von Variablen für benutzerdefinierte Dashboards
-
Klicken Sie auf das Dashboard-Symbol
> Benutzerdefinierte Dashboards.
-
Klicken Sie in einem neuen oder bestehenden Dashboard auf das Symbol Verwaltete Variable { }.
-
Klicken Sie auf + Variable.
-
Für alle Variablentypen konfigurieren Sie die folgenden Felder:
-
Der Variablenname. Der Text, der in dieses Feld eingegeben wird, bestimmt, wie der Variablenname in Ihrer Abfrage erscheint, zum Beispiel
{{ podvalues }}. Großbuchstaben und Leerzeichen sind im Variablennamen nicht erlaubt. -
Anzeigename (optional). Der Text, der in dieses Feld eingegeben wird, erscheint in der Auswahl als Teil der Dropdown-Liste, z. B. "Meine Pods".
-
Auswahlmöglichkeit.
- Mehrwertig
- Mehrwertig gibt an, dass der Benutzer mehrere Werte innerhalb einer bestimmten Variablen auswählen kann. Einige Abfragen unterstützen keine Mehrfachwerte, wie z. B.
{{ variablename }}. Wählen Sie diese Option nur, wenn Ihre Abfrage mehrere Werte unterstützt. - Alle einschließen
- Alle einbeziehen kann ausgewählt werden, wenn die Option Mehrwerte aktiviert ist. Die Abfrage wählt alle verfügbaren und zukünftigen Werte für einen bestimmten Zeitrahmen aus, unabhängig von Ihrer spezifischen Auswahl. Wenn beide Optionen ausgewählt sind, sind alle variablen Optionen standardmäßig ausgewählt, und eine oder mehrere können abgewählt werden. Wenn keine der beiden Optionen angegeben ist, können Sie jeweils nur einen Variablenwert auswählen.
-
Für Variablen des Typs
query:-
Geben Sie die Abfragequelle an (
logsodermetrics). -
Für
variable typegeben Sievaluesfürlogsan. Fürmetricsgeben Siemetric names,metric labelsoderlabel valuesan. Wenn Siemetric labelswählen, wählen Sie die Bezeichnung, die für die angezeigten Werte verwendet werden soll. -
Für
logsdefinieren Sie das Feld, indem Sie einen Protokollschlüssel auswählen, den Sie abfragen möchten. Eine Liste der aktuellen Variablenwerte wird in der Wertevorschau in alphanumerischer Reihenfolge angezeigt. -
Für
metricsgeben Sie unter Metrics regex einen Regex-Ausdruck ein, um die Liste der Metriken zu erhalten, die Sie angezeigt haben möchten. Zum Beispiel gibt^kube(.*)alle Metriknamen zurück, die mit kube beginnen.-
Wählen Sie unter
label valuesunter Metrische Bezeichnung die Bezeichnung für die angezeigten Werte. Machen Sie die Beschriftung dynamisch, indem Sie eine Variable einfügen, zum BeispielPod Name = {{ pod }}. -
Unter
label valueskönnen Sie für Etikettenfilter eine oder mehrere verschachtelte Variablen und eine zusätzliche Filterebene für Ihre Abfrage erstellen. Sie können zum Beispiel die Beschriftungen nach Clustern filtern, indem Sie einen Wert auswählen, der{{ podvalue }}oder der hartcodierte Name Ihres Clusters ist. -
Legen Sie unter
metricsfür Variablenwert-Anzeigename fest, wie die Werte in der Dropdown-Auswahlliste angezeigt werden.Eine Liste der aktuellen Variablenwerte für das Feld wird in der Wertevorschau angezeigt.
-
-
Wählen Sie unter Werte sortieren, wie die Daten in der Wertevorschau sortiert werden sollen.
-
-
Klicken Sie auf Speichern.
In der Liste der definierten Variablen können auch Variablen bearbeitet oder gelöscht werden.
Variablen in Abfragen verwenden
Neben der Verwendung von Variablen in benutzerdefinierten Dashboards können Sie auch definierte Variablen in Lucene-, DataPrime,- und PromQL-Abfragen verwenden.
Lucene-Abfragen
Sie können definierte Variablen in Lucene-Abfragen verwenden. Zum Beispiel product_id:{{ pid }}, wobei pid der Variablenname ist (nicht der Anzeigename),
DataPrime abfragen
Nachdem eine Variable erstellt wurde, können die Variablenwerte, die vom Benutzer ausgewählt wurden, als Abfrageparameter in einer DataPrime-Abfrage verwendet werden, indem $p.<variable_name> verwendet wird.
PromQL abfragen
Verwenden Sie {{ variable_name }} in der Abfragesprache PromQL.
Die Abfrage PromQL sum(kube_pod_owner{pod=~"{{ pod }}"}) wird beispielsweise verwendet, um Metriken zu aggregieren, die sich auf Kubernetes Pods beziehen. {pod=~"{{ pod }}"} ist ein Label-Selektor,
der die Metrik kube_pod_owner nach dem spezifischen Pod filtert, dessen Name mit dem Wert der Variablen übereinstimmt. Der Platzhalter {{ pod }} ist eine Schablonenvariable, die den tatsächlichen Pod-Namen ersetzt,
wenn die Abfrage ausgeführt wird.
Sie können auch vordefinierte Variablen in Ihrer PromQL Abfrage verwenden.
| Variable | Beschreibung | Beispiele |
|---|---|---|
${__range} |
Diese Variable steht für die Dauer des Zeitbereichs des Dashboards. Sie wird als Intervall-String dargestellt, der von PromQL unterstützt wird. Wenn Sie zum Beispiel einen Zeitbereich von 13.00 bis 14.30 auswählen,
wird die Variable ${__range} als 90m berechnet. |
1d, 5m |
${__range_s} |
Berechnet als die Anzahl der Sekunden im ausgewählten Zeitrahmen. | 60s, 180s |
${__range_ms} |
Berechnet als die Anzahl der Millisekunden im ausgewählten Zeitrahmen. | 60ms, 180ms |
Sie könnten zum Beispiel die __range variable in sum_over_time verwenden.
sum_over_time(kube_pod_owner[${__range}])