Expectations

Mit Expectations können konkrete Erwartungen an die Antwort einer Job-Ausführung definieren. Trifft die Erwartung nicht zu, dann wird der Dienst als fehlerhaft evaluiert und Benachrichtigungen versandt.

Expectations werden unabhängig von Dienst und Job gespeichert. Wenn Sie einen neuen Job hinzufügen, können Sie eine oder mehrere Erwartungen auswählen, die mit diesem Job verknüpft werden soll.

Die Verwaltungsseite erreichen Sie über das service.monitor Dashboard. Zuerst öffnet sich eine Übersicht mit allen registrierten Expectations und bietet verschiedene Aktionen an: Erzeugen, Ansehen, Editieren und Löschen.

all

Erstellen

Beim Anlegen einer Expectation können Sie einen Namen frei definieren. Es empfiehlt sich, den Namen möglichst sprechend zu vergeben, damit die Zuordnung der Expectation in der Job-Definition leicht fällt.

Folgende Expectations können Sie über ein JSON String definieren:

Typ Zweck Definition Erklärung Anwendungsbeispiel

StringCountExpectation

Prüfung der Server-Antwort auf das Vorhandensein einer bestimmten Anzahl von Strings.

value und count

value definiert den Textwert, der gesucht werden soll. Die Häufigkeit wird mit dem count-Attribut gesetzt.

ArcGIS FeatureServer-Query enthält eine definierte Anzahl von bestimmten Textstellen.

RegularExpressionExpectation

Prüfung der Server-Antwort durch reguläre Ausdrücke.

Einzelwerte im JSON Array

Jeder Wert wird als regulärer Ausdruck betrachtet und geprüft.

FeatureServer-Query kann nach komplexeren Mustern durchsucht und geprüft werden.

StringContainsExpectation

Prüfung der Server-Antwort auf Vorhandensein von Strings.

Einzelwerte im JSON Array

Jeder Wert wird auf Vorhandensein in der Server-Antwort geprüft.

Einfacher Test einer Server-Response zum Prüfen eines Textes.

HttpHeaderAvailableExpectation

Prüfung der Server-Antwort auf Vorhandensein eines HTTP Headers.

Einzelwerte im JSON Array

Die Liste der Antwort-Header wird mit der Prüfliste abgeglichen. Falls matchAll auf true gesetzt ist, müssen alle Werte vorkommen.

Detektion eines Fehlerfalles, wenn ein Header im Response nicht vorliegt.

HttpHeaderAndValueExpectation

Prüfung der Werte von HTTP Headern.

Drei Werte im JSON-Array: HTTP-Header, Operand, Wert

Die definierte Kombination von Header, Operand und Wert wird gegen die Server-Antwort geprüft.

Operanden für Textvergleich: eq und like

Operanden für Zahlvergleich: =, <, <=, >, >=

Prüfung der Content-Length einer Abfrage, um darüber Rückschlüsse auf die Korrektheit der Antwort ziehen zu können (z.B. generiertes Bild eines Kartendienstes).

FmeEngineCountExpectation

Prüft die Anzahl von registrierten FME Engines.

Anzahl der Engines

Stabilität des FME-Engine-Betriebs überwachen.

FmeEngineAvailableExpectation

Prüft die Anzahl von für eine Jobausführung verfügbaren FME Engines.

Anzahl der Engines

Skalierbarkeit der FME Flow prüfen.

FmeJobTimeShiftExpectation

Prüft auf verspätete Jobausführung.

Zeitdauer der maximalen Verspätung und FME Attribut-Vergleichswert-Name

FmeScheduleJobExecutionExpectation

Prüft die ordnungsgemäße Ausführung von Jobs auf Basis von FME Flow Schedules.

Duration zur Erzeugung eines zeitlichen Erwartungsraums.

ElasticAggregationValueExpectation

Prüft die Antwort einer Elastic Aggregation-Query gegen einen bestimmten Zahlenwert. Pro Query wird nur eine Aggregation geprüft.

Zwei Werte im JSON-Array: Operand, Zahlenwert

Die definierte Kombination von Operand und Zahlenwert wird gegen die Server-Antwort geprüft.

Operanden: =, <, <=, >, >=

Mittelwertberechnung der Antwortzeit aller Monitoringbeobachtungen für einen bestimmten Dienst.

Definieren Sie im Inhaltsfeld der Expectation über die JSON Notation ein Typ, über den die Evaluierung der Server-Antwort gesteuert wird. Im content-Abschnitt können Sie durch ein JSON Array mehrere Einzelbedingungen definieren. Für weitere Informationen beachten Sie die obige Tabelle sowie die Beispiel-Seite, die in der Monitoring-App verlinkt ist.

Mit dem Schalter matchAll legen Sie fest, ob alle Bedingungen zutreffen müssen. Andernfalls ist die Erfüllung einer Bedingung hinreichend.

create

Testen

In dem unteren Eingabefeld simulieren Sie Serverantworten und testen gegen die aktuelle Definition der Expectation. Im obigen Beispiel ist die Erwartung nicht erfüllt, da matchAll auf true gesetzt ist und die Bedingung text2 kommt einmal vor mit der Beispiel-Antwort nicht zutrifft.

Sollen Expectations für HTTP Header getestet werden, erfolgt die Eingabe zeilenweise nach dem Format <HTTP-Header>: <HTTP-HEADER-VALUE>.

Bearbeiten

Jede Expectation lässt sich nachträglich noch bearbeiten. Sie können auch weitere Bedingungen hinzufügen oder modifizieren.

Löschen

Jede Expectation, die nicht von einem Job genutzt wird, lässt sich über diese Schaltfläche wieder entfernen. Wird die Expectation aktiv genutzt, erscheint eine entsprechende Meldung und die Expectation wird nicht entfernt.