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

  1. Melden Sie sich bei Ihrem IBM Cloud Konto an.

  2. Zugriff auf Ihre IBM Cloud Logs Instanz

  3. Klicken Sie auf das Dashboard-Symbol Dashboardsymbol > Benutzerdefinierte Dashboards.

  4. Klicken Sie in einem neuen oder bestehenden Dashboard auf das Symbol Verwaltete Variable { }.

  5. Klicken Sie auf + Variable.

  6. Für alle Variablentypen konfigurieren Sie die folgenden Felder:

    • Variable Art.

    • 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.
  7. Für Variablen des Typs query :

    • Geben Sie die Abfragequelle an (logs oder metrics).

    • Für variable type geben Sie values für logs an. Für metrics geben Sie metric names, metric labels oder label values an. Wenn Sie metric labels wählen, wählen Sie die Bezeichnung, die für die angezeigten Werte verwendet werden soll.

    • Für logs definieren 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 metrics geben 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 values unter Metrische Bezeichnung die Bezeichnung für die angezeigten Werte. Machen Sie die Beschriftung dynamisch, indem Sie eine Variable einfügen, zum Beispiel Pod Name = {{ pod }}.

      • Unter label values kö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 metrics fü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.

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

Vordefinierte PromQL Variablen
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}])