Daten aus Prüfobjektchecks können mithilfe der MonitorCheck API-Endpunkte, die Teil der API v4 sind, abgerufen werden. Prüfobjektchecks sind einzelne Messungen, die wir für jedes Prüfobjekt erfassen. Die MonitorCheck API ermöglicht Zugang zu diesen Rohdaten. Sobald Du sie abgerufen hast, kannst Du sie in einer Datenbank zur Offline-Analyse, für Audits oder zu Sicherungszwecken speichern. Es gibt die folgenden drei Endpunkte:

MonitorCheck-Endpunkt Einsatz
/MonitorCheck Gibt alle Prüfobjektcheckdaten des Accounts aus.
/MonitorCheck/Monitor Gibt alle Prüfobjektcheckdaten für ein bestimmtes Prüfobjekt aus.
/MonitorCheck/MonitorGroup Gibt alle Prüfobjektcheckdaten für eine Prüfobjektgruppe aus.

Ein typisches Szenario ist der Download Deiner Daten (für alle Prüfobjekte, für eine Gruppe oder ein bestimmtes Prüfobjekt) zu einem bestimmten Zeitraum (beispielsweise für den vorherigen Monat). Abhängig von der Anzahl der Prüfobjekte und des Monitoring-Intervalls, der für sie eingerichtet ist, kann dies eine erhebliche Menge von Daten ergeben. Eine Möglichkeit, mit der API-Abrufe schnell und reaktionsfreudig bleiben, besteht darin, Daten in Blöcken, z. B. 100 Posten in einem Block, herunterzuladen und zu verarbeiten. Die MonitorCheck API-Methoden wurden dafür optimiert, Daten in Blöcken herunterzuladen.

Alle MonitorCheck-Endpunkte haben die folgenden Parameter:

period Datumszeitraum, nach dem gefiltert wird (Standard: Last24Hours). Lasse dies frei, wenn Du einen benutzerdefinierten Zeitraum mit start und end angeben möchtest.
start Der Beginn eines benutzerdefinierten Zeitraums. Lasse dies frei, wenn Du den Parameter period verwendest.
end Das Ende eines benutzerdefinierten Zeitraums. Lasse dies frei, wenn Du den Parameter period verwendest.
errorLevel Der geringste Fehlerlevel, den Checks ausgeben (Standard: NoError, d. h., es wird kein Filter angewendet).
cursor Parameter, um zu bestimmten Datensätzen zu springen, siehe unten.
take Die Anzahl der auszugebenden Zeilen (Standards: 100; es ist auch die Höchstzahl).
sorting Gibt an, ob die Daten nach Datum in Ascending (aufsteigender) oder Descending (absteigender) Reihenfolge geordnet werden (Standard: Descending).

Springe mit dem Cursor zu bestimmten Daten

Ein Cursor ist ein Zeichenfolgenwert, der als Zeiger im Zeitstrahl Deiner Daten fungiert. Wenn Du eine große Menge Daten abfragst (zum Beispiel alle Prüfobjektdaten des letzten Monats), gibt die API den ersten Block mit 100 Posten aus. Zusammen mit diesen Daten gibt sie Dir auch einen Cursor-Wert, den Du verwenden kannst, um leicht zum zweiten Block zu gelangen. Du kannst diesen Vorgang wiederholen, bis Du alle Daten für den erforderlichen Zeitraum heruntergeladen hast. Ein leerer Cursor zeigt an, dass das Ende der Sequenz erreicht ist und keine weiteren Daten zu erwarten sind.

Zeitlich auf- oder absteigende Reihenfolge

Du kannst bestimmen, ob Du mit den neuesten Daten beginnen und dann in der Zeit zurück gehen möchtest (sorting=Descending) oder mit dem Beginn eines vergangenen Zeitraums starten und zum aktuellen Zeitpunkt arbeiten möchtest (sorting=Ascending).

Letzteres ist besonders nützlich und effizient, wenn Du einen automatisierten Prozess eingerichtet hast, der regelmäßig mit aktuellen Daten versorgt wird. Beispielsweise könntest Du die API alle fünf Minuten mit Last24Hours, Ascending und Angabe des Cursor-Werts aus der vorherigen Antwort aufrufen: Die API wird nur Daten zurückgeben, die seit Deiner letzten API-Anfrage erzeugt wurden. Das Ergebnis kann eine leere Liste sein, wenn noch keine Daten verfügbar sind, aber wenn die Antwort der API einen Cursor-Wert enthält, können bei einer späteren Anfrage neue Daten abgerufen werden.

Abruf von MonitorCheck-Daten

Wenn Du eine Liste MonitorCheck-Daten abrufst, enthält jeder MonitorCheck-Eintrag die grundlegenden Werte für den Check wie nachfolgend beschrieben. Abhängig vom Prüfobjekttyp können jedoch auch detailliertere Daten verfügbar sein. Diese Daten können anhand eines separaten API-Aufrufs abgerufen werden. Die Verbindung zwischen den Hauptdaten des MonitorChecks und allen zugehörigen Daten werden als Beziehungen beschrieben. Wenn ein MonitorCheck tatsächlich mit ein oder mehreren Daten verbunden ist, werden sie in dem „Beziehungs“-Mitglied (siehe unten) angezeigt: Er enthält einen Link zu jedem entsprechenden Daten-Endpunkt, der Zugriff auf die Daten gewährt. Es gibt die folgenden Daten-Endpunkte:

Daten-Endpunkt Einsatz
/MonitorCheck/{monitorCheckId}/Http Gibt Daten für einen HTTP-Check, einschließlich HTML-Inhalt und Header-Informationen, aus.
/MonitorCheck/{monitorCheckId}/Waterfall Gibt die vollständigen Wasserfall-Daten bei einem Full Page Check oder Transaktionsschritt aus.
/MonitorCheck/{monitorCheckId}/Transaction Gibt die Ergebnisse jedes Transaktionsschritts aus, einschließlich der Zeiten pro Schritt.

Generische Datenstruktur

Eine MonitorCheck-Antwort nutzt das folgende Format, um die tatsächlichen Daten von den bereitgestellten Metadaten zu trennen:

Root

Root enthält die folgenden Mitglieder:

Data Eine Reihe oder ein einzelnes Objekt mit (einem Unterset von) den abgefragten Daten.
Links Links, die sich auf das selbige oder nächste Datenset beziehen.
Cursor Enthält Cursor-Werte, die verwendet werden sollten, um in einem Datenset zu navigieren.

Data

Das Datenmitglied kann eine Reihe von Objekten oder ein einzelnes Objekt enthalten. Das einzelne MonitorCheck-Objekt wie auch mehrere MonitorCheck-Objekte in einer Reihe werden die folgenden Mitglieder haben:

Id Die einzigartige Kennung des Prüfobjektchecks. Die Id entspricht der Prüfobjektcheck-Id, die Du in der Adresszeile siehst, wenn Du die Daten eines Checks in Uptrends anzeigst.
Type Der Objekttyp (ein fester Wert „MonitorCheck“ für diese API-Methoden).
Attributes Die Attribute des Objekts, die die tatsächlichen Daten enthalten. Diese Attribute sind:
MonitorGuid Die GUID des Prüfobjekts, die diesem Prüfobjektcheck entspricht.
Timestamp Datum und Uhrzeit, zu denen der Prüfobjektcheck ausgeführt wurde.
ErrorCode Der numerische Fehlercode von Uptrends, falls das Ergebnis einen Fehler zurückgibt; oder 0 im Falle eines OK-Ergebnisses.
TotalTime Die Anzahl Millisekunden, die es gedauert hat, den Prüfobjektcheck durchzuführen.
ResolveTime Die Anzahl Millisekunden, bis die DNS-Abfrage für diesen Check durchgeführt wurde, sofern zutreffend.
ConnectionTime Die Anzahl Millisekunden, bis eine Verbindung hergestellt wurde. 
DownloadTime Die Anzahl Millisekunden, die es gedauert hat, die Antwortdaten herunterzuladen.
TotalBytes Die Anzahl heruntergeladener Bytes für diesen Check.
ResolvedIpAddress Die IP-Adresse, die für den angegebenen Domainnamen im Rahmen des Prüfobjektchecks aufgelöst wurde.
ErrorLevel Ein Wert, der den OK-/Fehler-Status für diesen Check angibt: NoError, wenn das Ergebnis OK lautete; Unconfirmed, wenn ein Fehler gefunden wurde; Confirmed, wenn direkt nach einem Unconfirmed-Fehler ein Fehler nach einem doppelten Check gefunden wurde. 
ErrorDescription Ein Text-Wert, der den gefundenen Fehler beschreibt; oder OK, wenn kein Fehler gefunden wurde. 
ErrorMessage Zusätzliche Fehlerinformationen, falls verfügbar. 
ServerId Die Id des Checkpoint-Servers von Uptrends, der den Check durchgeführt hat.
HttpStatusCode Der HTTP-Statuscode, der zurückgegeben wurde (sofern zutreffend).
Relationships Die Beziehungs-Reihe enthält eine Liste zugehöriger Daten/Objekte zu den aktuellen Daten. Diese Liste enthält Links, um die zugehörigen Daten abzurufen. Beziehungsdaten haben dieselbe Struktur, d. h., diese Einträge enthalten die gleichen Id-, Type- und Links-Mitglieder.