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