JSONPath-Abfragen und der JSON-Pfadassistent

Der JSON-Pfadassistent ist ein Hilfswerkzeug für die Erstellung von aktiven REST-API-Monitoren und REST-API-Leistungsmonitoren sowie REST-API-Komponenten für die Anwendungsüberwachung. Mit diesem Tool kann das JSON-Element ausgewählt werden, das überwacht werden soll. Anschließend erstellt das Tool eine JSONPath-Abfrage für das ausgewählte JSON-Element.

Für die JSONPath-Abfrage können zwei Schreibweisen verwendet werden: mit Klammern oder mit Punkten. Beispiel:

In diesem Thema werden der Arbeitsablauf und die unterstützte Syntax für den JSON-Pfadassistenten beschrieben.

JSON-Pfadassistent im REST-API-Leistungsmonitor

Wenn ein neuer REST-API-Leistungsmonitor aus der Monitorbibliothek hinzugefügt wird, wird das Fenster REST-API-Leistungsmonitor hinzufügen geöffnet. In diesem Fenster sind zwei Abschnitte enthalten, die im JSON-Pfadassistenten verwendet werden: REST-API und JSONPATH.

Geben Sie einen Namen, eine Beschreibung und einen Wert für die Zeitüberschreitung des REST-API-Leistungsmonitors an. Führen Sie dann im JSON-Pfadassistenten folgende Schritte aus:

  1. Geben Sie die URL für die REST-API ein, die mit dem Leistungsmonitor überwacht werden soll.
  2. (Optional) Fügen Sie mit der Schaltfläche Benutzerdefinierte Kopfzeilen bearbeiten benutzerdefinierte Kopfzeilen hinzu.
  3. (Optional) Aktivieren Sie Zertifikatfehler ignorieren, wenn Zertifikatfehlermeldungen unterdrückt werden sollen.
  4. (Optional) Aktivieren Sie Anonymen Zugriff verwenden, wenn keine Anmeldeinformationen für die REST-API an den Endpunkt gesendet werden sollen. Diese Option kann nur verwendet werden, wenn für den Zugriff auf den REST-API-Endpunkt keine Authentifizierung erforderlich ist.
  5. Klicken Sie auf die Schaltfläche JSON-Pfadassistent. Wenn die URL der REST-API gültig ist, wird das Fenster mit dem JSON-Pfadassistenten geöffnet. In diesem Fenster können Sie das Ziffernfeld auswählen, das auf Leistungsdaten überwacht werden soll. In der folgenden Abbildung wird der JSON-Pfadassistent mit Beispieldaten aus einer Kinderbibliothek „Children‘s Library“ gezeigt:

jsonpath_builder

  1. Klicken Sie auf Überprüfen, um den Endpunkt zu testen. Wenn der Leistungsmonitor ein Zahlenergebnis vom JSONPATH-Endpunktwert extrahieren kann, kann der Monitor gespeichert und zur Bibliothek der Leistungsmonitore hinzugefügt werden. In der folgenden Abbildung wird ein Beispiel für einen JSONPath gezeigt, der einen gültigen Zahlenwert an den Leistungsmonitor ausgibt und mit dem JSON-Pfadassistenten erstellt wurde:

REST_API_Perf_Monitor_jsonpath

JSON-Pfadassistent im aktiven REST-API-Monitor

Wenn ein neuer aktiver REST-API-Monitor aus der Monitorbibliothek hinzugefügt wird, wird das Fenster Aktiven REST-API-Monitor hinzufügen geöffnet. In diesem Fenster sind zwei Abschnitte enthalten: REST-API und Bedingung für „Nicht erreichbar“. Dort können in der Tabelle JSONPath-Abfrage Bedingungen für „Nicht erreichbar“ für den Monitor hinzugefügt werden. In der Tabelle JSONPath-Abfrage wird der JSON-Pfadassistent verwendet, wenn Sie auf das Lupensymbol klicken.

Bei aktiven REST-API-Monitoren können Sie mehrere JSONPath-Abfragen zur Auswertung des „Nicht erreichbar“-Zustand des Monitors definieren. Im Gegensatz zu Leistungsmonitoren unterstützen aktive Monitore auch den Abgleich der Bedingungen für „Nicht erreichbar“ mit Zahlen-, Booleschen und Zeichenkettenvariablen.

Wenn ein JSON-Element im JSON-Pfadassistenten ausgewählt wird, wird in der Tabelle mit den JSONPath-Abfragen automatisch der Elementtyp erkannt und in der Spalte Art ausgefüllt.

Geben Sie einen Namen, eine Beschreibung und einen Wert für die Zeitüberschreitung des aktiven REST-API-Monitors an. Führen Sie dann im JSON-Pfadassistenten folgende Schritte aus:

  1. Geben Sie die URL für die REST-API ein, die mit dem Leistungsmonitor überwacht werden soll.
  2. (Optional) Fügen Sie mit der Schaltfläche Benutzerdefinierte Kopfzeilen bearbeiten benutzerdefinierte Kopfzeilen hinzu.
  3. (Optional) Aktivieren Sie Zertifikatfehler ignorieren, wenn Zertifikatfehlermeldungen unterdrückt werden sollen.
  4. (Optional) Aktivieren Sie Anonymen Zugriff verwenden, wenn keine Anmeldeinformationen für die REST-API an den Endpunkt gesendet werden sollen. Diese Option kann nur verwendet werden, wenn für den Zugriff auf den REST-API-Endpunkt keine Authentifizierung erforderlich ist.
  5. Wählen Sie die HTTP-Antwortcodes aus, bei denen der Monitor als „Nicht erreichbar“ angesehen wird.
  6. Klicken Sie auf die Schaltfläche „+“, um eine Zeile zur Tabelle „JSONPath-Abfrage“ hinzuzufügen. Die neue Zeile ist leer.
  7. Doppelklicken Sie in die leere Zeile in der Tabelle „JSONPath-Abfrage“ und klicken Sie anschließend auf das Lupensymbol. Der JSON-Pfadassistent wird geöffnet. Anschließend werden Sie zur Eingabe von REST-API-Anmeldeinformationen aufgefordert, wenn Anonymen Zugriff verwenden nicht aktiviert ist. Das Fenster mit dem JSON-Pfadassistenten wird geöffnet. In diesem Fenster können Sie den Endpunkt (Zahl, Boolescher Wert oder Zeichenkette) auswählen, der auf die Bedingung „Nicht erreichbar“ überwacht werden soll. Folgende Abbildung zeigt ein Beispiel für die Bedingung für „Nicht erreichbar“ in einer Beispiel-API zu Bibliotheksbüchern:
    REST_API_Active_Monitor_jsonpath
  8. Fügen Sie den Monitor mit Speichern zur Bibliothek der aktiven Monitore hinzu.

JSON-Pfadassistent in der Anwendungsüberwachungskomponente „REST-API (Leistung)“

Die Komponente der Anwendungsüberwachung (APM) „REST-API (Leistung)“ ähnelt in der Arbeitsweise dem REST-API-Leistungsmonitor. Zusätzlich gibt es hier die Bedingungen für die Warn- und die Nicht-erreichbar-Schwelle für die Zahlenwertantwort. Eine REST-API-APM-Komponente kann mit einem Testgerät verbunden und validiert werden. In der folgenden Abbildung sehen Sie einen numerischen API-Beispielendpunkt mit Schwellenwerten für „Warnung“ und „Nicht erreichbar“:
REST_API_APM_perf

JSON-Pfadassistent in der Anwendungsüberwachungskomponente „REST-API (aktiv)“

Die Komponente der Anwendungsüberwachung (APM) „REST-API (aktiv)“ ähnelt in der Arbeitsweise dem aktiven REST-API-Monitor. Zusätzlich gibt es hier ein Testgerät, mit dem die Komponente verbunden und der Monitor validiert werden kann.

Erweiterte JSONPath-Abfragen

Wie bereits erwähnt können für die JSONPath-Abfrage zwei Schreibweisen verwendet werden: mit Klammern oder mit Punkten. Beispiel:

Nehmen wir an, es gibt ein JSON-Array „books“; das erste Element im Array hat den Namen „The Cat in the Hat“. Sie können auf diesen Wert zugreifen, indem Sie einen der folgenden JSON-Abfragen eingeben:

Zusätzlich zur Unterstützung für die Erstellung von JSONPath-Abfragen für JSON-Elemente im JSONPath-Assistenten können Sie auch erweiterte Abfragen zur Prüfung der JSON-Antwort mit Filtern in den JSONPath-Abfragen verfassen. Mit den Filtern können Vorgänge mittels Vergleichsoperatoren durchgeführt werden. Außerdem kann mit der Eigenschaft „length“ die Länge des JSON-Arrays ausgegeben werden.

Mit diesen Eigenschaften können im Filter für die JSONPath-Abfrage Werte zurückgegeben werden, die diesen Bedingungen entsprechen; Werte, die nicht benötigt werden, können herausgefiltert werden.

Note: Die Token-Auswahl gibt nur dann einen Wert zurück, wenn das erfasste Objekt die Länge „1“ hat. Wenn mehrere Werte von der JSONPath-Abfrage zurückgegeben werden, wird ein Parsing-Fehler ausgegeben.

In der folgenden Tabelle werden die unterstützten Vergleichsoperatoren aufgeführt:

Name des Vergleichsoperators

Vergleichsoperator

Beispiel (Schreibweise mit Klammern)

Beispiel (Schreibweise mit Punkt)

Hinweise

Gleich

==

['books'][?(@.name == 'The Cat in the Hat')]['copies']

$.books[?(@.name == 'The Cat in the Hat')].copies

Die Abfrage gibt die Anzahl der Bücher mit dem Titel „The Cat in the Hat“, die auf Lager sind, aus.

Nicht gleich

!=

['books'][?(@.name != 'The Cat in the Hat')]['copies']

$.books[?(@.name != 'The Cat in the Hat')].copies

 

Kleiner als

<

['books'][?(@.copies < 3)]

$.books[?(@.copies < 3)]

Bei aktiven Monitoren und aktiven APM-Komponenten ist die Bedingung für „Nicht erreichbar“ eine Zeichenkette, die „The Cat in the Hat“ enthält, wenn „The Cat in the Hat“ weniger als 3 Exemplare aufweist.

Kleiner oder gleich

<=

['books'][?(@.copies <= 3)]

$.books[?(@.copies <= 3)]

 

Größer als

>

['books'][?(@.copies > 1)]['bookId']

$.books[?(@.copies > 1)].bookId

Bei aktiven Monitoren und aktiven APM-Komponenten ist die Bedingung für „Nicht erreichbar“ eine Zahl, die nicht „1“ (die BookID von „The Cat in the Hat“) enthält, wenn „The Cat in the Hat“ mehr als 1 Exemplar aufweist.

Größer oder gleich

>=

['books'][?(@.copies > 1)]['bookId']

$.books[?(@.copies > 1)].bookId

 

Länge

.length

['books'].length

$.books.length

Gibt die Länge des JSON-Arrays aus.