Asynchrone API für benutzerdefinierte Berichte verwenden

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

Apigee Analytics bietet zahlreiche interaktive Dashboards, benutzerdefinierte Berichtsgeneratoren und zugehörige Funktionen. Diese Funktionen sind jedoch für die Interaktion gedacht: Sie senden entweder eine API- oder UI-Anfrage, und die Anfrage wird blockiert, bis der Analyseserver eine Antwort sendet.

Bei Analytics-Anfragen kann es jedoch zu einer Zeitüberschreitung kommen, wenn deren Verarbeitung zu lange dauert. Wenn eine Abfrageanfrage eine große Datenmenge verarbeiten muss (z. B. 100 GB), kann dies aufgrund einer Zeitüberschreitung fehlschlagen.

Bei der asynchronen Abfrageverarbeitung können Sie sehr große Datasets abfragen und die Ergebnisse zu einem späteren Zeitpunkt abrufen. Sie könnten eine Offline-Abfrage in Betracht ziehen, wenn Sie feststellen, dass bei Ihren interaktiven Abfragen eine Zeitüberschreitung auftritt. Einige Situationen, in denen die asynchrone Abfrageverarbeitung eine gute Alternative darstellt, sind:

  • Analysieren und Erstellen von Berichten, die große Zeitintervalle umfassen.
  • Analysieren von Daten mit einer Vielzahl von Gruppierungsdimensionen und anderen Einschränkungen, die die Abfrage komplexer machen
  • Verwalten von Abfragen, wenn Sie feststellen, dass die Datenmengen für einige Nutzer oder Organisationen erheblich gestiegen sind.

In diesem Dokument wird beschrieben, wie Sie eine asynchrone Abfrage mithilfe der API initiieren. Sie können auch die UI verwenden, wie unter Benutzerdefinierten Bericht ausführen beschrieben.

Reports API mit der Benutzeroberfläche vergleichen

In Benutzerdefinierte Berichte erstellen und verwalten wird erläutert, wie Sie mit der Apigee UI benutzerdefinierte Berichte erstellen und ausführen. Sie können diese Berichte synchron oder asynchron ausführen.

Die meisten Konzepte zum Erstellen benutzerdefinierter Berichte mit der Benutzeroberfläche gelten für die Verwendung der API. Das heißt, wenn Sie benutzerdefinierte Berichte mit der API erstellen, geben Sie Messwerte, Dimensionen und Filter an, die in Apigee eingebunden sind.

Der Hauptunterschied zwischen den mit der API generierten Berichten und nicht der Benutzeroberfläche besteht darin, dass erstere in CSV- oder JSON-Dateien (durch Zeilenumbruch getrennt) geschrieben werden, während letztere in der Benutzeroberfläche angezeigt werden.

Zeitlimit für Abfragen

Apigee erzwingt maximal 365 Tage für den Zeitraum für eine asynchrone Abfrage.

So erstellen Sie eine asynchrone Analyseabfrage

Sie führen asynchrone Analyseabfragen in drei Schritten aus:

  1. Abfrage senden.

  2. Abfragestatus abrufen.

  3. Abfrageergebnisse abrufen.

Schritt 1: Abfrage senden

Sie müssen eine POST-Anfrage an die Queries API senden. Diese API weist Apigee an, Ihre Anfrage im Hintergrund zu verarbeiten. Wenn die Übermittlung der Abfrage erfolgreich war, gibt die API den Status 201 und eine ID zurück, mit der Sie in späteren Schritten auf die Abfrage verweisen.

Beispiel:

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @json-query-file

Dabei ist $TOKEN auf Ihr OAuth 2.0-Zugriffstoken festgelegt. Weitere Informationen hierzu finden Sie unter OAuth 2.0-Zugriffstoken abrufen. Informationen zu den in diesem Beispiel verwendeten curl-Optionen finden Sie unter curl verwenden. Eine Beschreibung der verwendeten Umgebungsvariablen finden Sie unter Umgebungsvariablen für Apigee API-Anfragen festlegen.

Der Anfragetext ist eine JSON-Beschreibung der Abfrage. Geben Sie im JSON-Text die Messwerte, Dimensionen und Filter an, die den Bericht definieren.

Hier sehen Sie eine Beispieldatei für json-query-file:

{
   "metrics":  [
     {
         "name": "message_count",
         "function": "sum",
         "alias": "sum_txn"
    }
        ],
    "dimensions": ["apiproxy"],
    "timeRange": "last24hours",
    "limit": 14400,
    "filter":"(message_count ge 0)"
}

Eine vollständige Beschreibung der Syntax des Anfragetexts finden Sie unter Informationen zum Anfragetext.

Beispielantwort:

Beachten Sie, dass die Abfrage-ID 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd in der Antwort enthalten ist. Neben dem HTTP-Status 201 bedeutet der state von enqueued, dass die Anfrage erfolgreich war.

HTTP/1.1 201 Created

{
  "self":"/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
  "created":"2018-05-10T07:11:10Z",
  "state":"enqueued",
  "error":"false",
}

Schritt 2: Abfragestatus abrufen

Wenn Sie den Status der Abfrage anfordern möchten, senden Sie eine GET-Anfrage an die Queries API. Sie geben die Abfrage-ID an, die vom POST-Aufruf zurückgegeben wurde. Beispiel:

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Dabei ist $TOKEN auf Ihr OAuth 2.0-Zugriffstoken festgelegt. Weitere Informationen hierzu finden Sie unter OAuth 2.0-Zugriffstoken abrufen. Informationen zu den in diesem Beispiel verwendeten curl-Optionen finden Sie unter curl verwenden. Eine Beschreibung der verwendeten Umgebungsvariablen finden Sie unter Umgebungsvariablen für Apigee API-Anfragen festlegen.

Beispielantworten:

Wenn die Abfrage noch in Bearbeitung ist, erhalten Sie eine Antwort wie die folgende, wobei state running ist:

{
    "self": "/organizations/myorg/environments/myenv/queries/1577884c-4f48-4735-9728-5da4b05876ab",
    "state": "running",
    "created": "2018-02-23T14:07:27Z",
    "updated": "2018-02-23T14:07:54Z"
}

Nachdem die Abfrage erfolgreich abgeschlossen wurde, wird eine Antwort wie die folgende angezeigt, wobei state auf completed gesetzt ist:

{
      "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
      "state": "completed",
      "result": {
        "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result",
        "expires": "2017-05-22T14:56:31Z"
      },
      "resultRows": 1,
      "resultFileSize": "922KB",
      "executionTime": "11 sec",
      "created": "2018-05-10T07:11:10Z",
      "updated": "2018-05-10T07:13:22Z"
}

Schritt 3: Abfrageergebnisse abrufen

Sobald der Abfragestatus completed lautet, können Sie die Abfrageergebnisse mit zwei Methoden abrufen:

  • getResulturl (empfohlen): Dies ist eine neuere Methode, die eine URL zurückgibt, unter der Sie die Abfrageergebnisse aufrufen können. Bei dieser Methode gibt es keine Größenbeschränkung für die Ergebnisse einer Abfrage.
  • getResult: Dies ist eine ältere Methode, die eine ZIP-Datei mit den Abfrageergebnissen herunterlädt. Diese Methode erzwingt eine Größenbeschränkung von 32 MB für die Ergebnisse einer Abfrage.

Auf den folgenden Tabs finden Sie API-Aufrufe zum Abrufen der Abfrageergebnisse mit einer der beiden Methoden. Wie oben erwähnt, lautet die Abfrage-ID 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID/resulturl" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Dabei ist $TOKEN auf Ihr OAuth 2.0-Zugriffstoken festgelegt. Weitere Informationen hierzu finden Sie unter OAuth 2.0-Zugriffstoken abrufen. Informationen zu den in diesem Beispiel verwendeten curl-Optionen finden Sie unter curl verwenden. Eine Beschreibung der verwendeten Umgebungsvariablen findet sich unter Umgebungsvariablen für Apigee API-Anfragen festlegen.

Hier eine Beispielantwort auf den Aufruf:

{
  "urls": [
    "uri": "https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T181309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f169edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa8496def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dcc1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c20580e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b133447032ea7abedc098d2eb14a7",
  "md5": "23db6982caef9e9152f1a5b2589e6ca3",
  "sizeBytes": 1024
  ]
}

Die Antwort enthält eine Liste urls[] mit den folgenden Feldern:

  • uri: ein String, der die signierte URL der JSON-Daten für den Bericht ist. Sie können den Bericht unter der URL anzeigen.
  • md5: der MD5-Hash der JSON-Daten.
  • sizeBytes: die Größe der zurückgegebenen Datei in Byte.

Unter Informationen zu Abfrageergebnissen finden Sie ein Beispielergebnis im JSON-Format.

getResult

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID/result" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Dabei ist $TOKEN auf Ihr OAuth 2.0-Zugriffstoken festgelegt. Weitere Informationen hierzu finden Sie unter OAuth 2.0-Zugriffstoken abrufen. Informationen zu den in diesem Beispiel verwendeten curl-Optionen finden Sie unter curl verwenden. Eine Beschreibung der verwendeten Umgebungsvariablen finden Sie unter Umgebungsvariablen für Apigee API-Anfragen festlegen.

Zum Abrufen der heruntergeladenen Datei müssen Sie das von Ihnen verwendete Tool so konfigurieren, dass eine heruntergeladene Datei auf Ihrem System gespeichert wird. Beispiel:

  • Wenn Sie cURL verwenden, können Sie die Optionen -O -J wie oben gezeigt verwenden.
  • Wenn Sie Postman verwenden, müssen Sie die Schaltfläche Speichern und herunterladen anklicken. In diesem Fall wird eine ZIP-Datei mit dem Namen response heruntergeladen.
  • Wenn Sie den Chrome-Browser verwenden, wird der Download automatisch akzeptiert.

Wenn die Anfrage erfolgreich ist und die Ergebnismenge ungleich null ist, wird das Ergebnis als gezippte JSON-Datei (durch Zeilenumbruch getrennt) an den Client heruntergeladen. Der Name der heruntergeladenen Datei lautet OfflineQueryResult-.zip.

Beispiel: OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip .

Die ZIP-Datei enthält eine .gz-Archivdatei der JSON-Ergebnisse. Entpacken Sie die Download-Datei und extrahieren Sie die JSON-Datei mit dem Befehl gzip, um auf die JSON-Datei zuzugreifen:

unzip OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip
gzip -d QueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd-000000000000.json.gz

Informationen zum Anfragetext

In diesem Abschnitt werden alle Parameter beschrieben, die Sie im JSON-Anfragetext für eine Abfrage verwenden können. Einzelheiten zu Messwerten und Dimensionen, die Sie in Ihrer Abfrage verwenden können, finden Sie im Referenzmaterial zu Analysen.

{
   "metrics":[
      {
        "name":"metric_name",
        "function":"aggregation_function",
        "alias":"metric_display_name_in_results",
        "operator":"post_processing_operator",
        "value":"post_processing_operand"
      },
   ...
   ],
   "dimensions":[
      "dimension_name",
      ...
   ],
   "timeRange":"time_range",
   "limit":results_limit,
   "filter":"filter",
   "groupByTimeUnit": "grouping",
   "outputFormat": "format",
   "csvDelimiter": "delimiter"
}
Attribut Beschreibung Erforderlich?
metrics

Array von Messwerten. Sie können einen oder mehrere Messwerte für eine Abfrage angeben, in der jeder Messwert enthalten ist. Nur der Name des Messwerts ist erforderlich:

  • name: (Erforderlich) Der Name des Messwerts, wie er in der Tabelle unter Messwerte definiert ist.
  • function: (Optional) Die Aggregationsfunktion als avg, min, max oder sum.

    Nicht alle Messwerte unterstützen alle Aggregationsfunktionen. Die Dokumentation zu Messwerten enthält eine Tabelle, die den Namen des Messwerts und die Funktion (avg, min, max, sum) unterstützt durch den Messwert enthält.

  • alias: (Optional) Der Name des Attributs, das die Messwertdaten in der Ausgabe enthält. Wenn nichts angegeben ist, wird standardmäßig der Messwertname zusammen mit dem Namen der Aggregationsfunktion verwendet.
  • operator: (Optional) Ein Vorgang, der für den Messwert ausgeführt werden soll, nachdem sein Wert berechnet wurde. Funktioniert mit dem Attribut value. Unterstützte Operationen umfassen: + - / % *.
  • value: (Optional) Der Wert, der vom angegebenen operator auf den berechneten Messwert angewendet wird.

Die Attribute operator und value definieren einen Nachbearbeitungsvorgang, der für den Messwert ausgeführt wird. Wenn Sie beispielsweise den Messwert response_processing_latency angeben, gibt der Messwert die durchschnittliche Antwortverarbeitungslatenz in Millisekunden zurück. Zum Umrechnen der Einheiten in Sekunden setzen Sie operator auf "/" und value auf ”1000.0“:


"metrics":[
  {
    "name":"response_processing_latency",
    "function":"avg",
    "alias":"average_response_time_in_seconds",
    "operator":"/",
    "value":"1000"
  }
]

Weitere Informationen finden Sie unter Referenz zu Analysemetriken, Dimensionen und Filtern.

Ja
dimensions Array von Dimensionen zum Gruppieren der Messwerte. Weitere Informationen finden Sie in der Liste der unterstützten Dimensionen. Sie können mehrere Dimensionen angeben. Ja
timeRange Zeitraum für die Abfrage.

Sie können die folgenden vordefinierten Strings verwenden, um den Zeitraum anzugeben:

  • last60minutes
  • last24hours
  • last7days

Alternativ können Sie timeRange als Struktur angeben, die Start- und Endzeitstempel im ISO-Format beschreibt: yyyy-mm-ddThh:mm:ssZ. Beispiel:


"timeRange": {
    "start": "2018-07-29T00:13:00Z",
    "end": "2018-08-01T00:18:00Z"
}
Ja
limit Maximale Anzahl von Zeilen, die im Ergebnis zurückgegeben werden können. Nein
filter Boolescher Ausdruck, der zum Filtern von Daten verwendet werden kann. Filterausdrücke können mit UND/ODER-Begriffen kombiniert werden und sollten vollständig von Klammern umschlossen sein, um Mehrdeutigkeiten zu vermeiden. Weitere Informationen zu den Feldern, nach denen gefiltert werden kann, finden Sie im Referenzmaterial zu Analysemesswerten, -dimensionen und -filtern. Weitere Informationen zu den Tokens, die Sie zum Erstellen von Filterausdrücken verwenden, finden Sie unter Filterausdruckssyntax. Nein
groupByTimeUnit Zeiteinheit, die zum Gruppieren der Ergebnisse verwendet wird. Gültige Werte sind: second, minute, hour, day, week oder month.

Wenn eine Abfrage groupByTimeUnit enthält, ist das Ergebnis eine Aggregation basierend auf der angegebenen Zeiteinheit. Der resultierende Zeitstempel ist nicht auf die Millisekunde genau. Wenn eine Abfrage groupByTimeUnit weglässt, ist der resultierende Zeitstempel auf die Millisekunde genau.

Nein
outputFormat Ausgabeformat. Gültige Werte sind: csv oder json. Standardwert ist json entsprechend dem durch Zeilenumbruch abgegrenzten JSON.

Hinweis: Konfigurieren Sie das Trennzeichen für die CSV-Ausgabe mit dem Attribut csvDelimiter.

Nein
csvDelimiter Trennzeichen in der CSV-Datei, wenn outputFormat auf csv gesetzt ist. Die Standardeinstellung ist das Zeichen , (Komma). Zu den unterstützten Trennzeichen gehören das Komma (,), der senkrechte Strich (|) und das Tabulatorzeichen (\t). Nein

Filterausdruckssyntax

In diesem Referenzabschnitt werden die Tokens beschrieben, mit denen Sie Filterausdrücke im Anfragetext erstellen können. Der folgende Ausdruck verwendet beispielsweise das Token „ge“ (größer oder gleich):

"filter":"(message_count ge 0)"
Token Beschreibung Beispiele
in In Liste aufnehmen

(apiproxy in 'ethorapi','weather-api')

(apiproxy in 'ethorapi')

(apiproxy in 'Search','ViewItem')

(response_status_code in 400,401,500,501)

Hinweis: Strings müssen in Anführungszeichen stehen.

notin Von Liste ausschließen

(response_status_code notin 400,401,500,501)
eq Gleich (==)

(response_status_code eq 504)

(apiproxy eq 'non-prod')
ne Nicht gleich (!=)

(response_status_code ne 500)

(apiproxy ne 'non-prod')
gt Größer als (>)

(response_status_code gt 500)
lt Kleiner als (<)

(response_status_code lt 500)
ge Größer als oder gleich (>=)

(target_response_code ge 400)
le Kleiner als oder gleich (<=)

(target_response_code le 300)
like Gibt "true" zurück, wenn das Zeichenfolgenmuster mit dem angegebenen Muster übereinstimmt.

Das Beispiel rechts stimmt so überein:

- jeder Wert, der das Wort "buy" enthält

- jeder Wert, der auf „item“ endet

- jeder Wert, der mit „Prod“ beginnt

– jeder Wert, der mit 4 beginnt, "response_status_code" ist numerisch


(apiproxy like '%buy%')

(apiproxy like '%item')

(apiproxy like 'Prod%')
not like Gibt "false" zurück, wenn das Zeichenfolgenmuster mit dem angegebenen Muster übereinstimmt.

(apiproxy not like '%buy%')

(apiproxy not like '%item')

(apiproxy not like 'Prod%')
and Ermöglicht die Verwendung von "und"-Logik, um mehr als einen Filterausdruck einzubeziehen. Der Filter enthält Daten, die alle Bedingungen erfüllen.

(target_response_code gt 399) and (response_status_code ge 400)
or Ermöglicht die Verwendung von 'oder' Logik, um verschiedene mögliche Filterausdrücke auszuwerten. Der Filter enthält Daten, die mindestens eine der Bedingungen erfüllen.

(response_size ge 1000) or (response_status_code eq 500)

Einschränkungen und Standardwerte

Im Folgenden finden Sie eine Liste mit Einschränkungen und Standardeinstellungen für die asynchrone Abfrageverarbeitungsfunktion.

Einschränkung Standardwert Beschreibung
Limit für Abfrageaufrufe Siehe: Beschreibung Sie können bis zu sieben Aufrufe pro Stunde an die Apigee API /queries senden, um einen asynchronen Bericht zu erstellen. Wenn Sie das Aufrufkontingent überschreiten, gibt die API den HTTP-Fehler 429 zurück.
Aktives Abfragelimit 10 Es sind bis zu zehn aktive Abfragen für eine Organisation/Umgebung möglich.
Zeitraum für das Ausführen der Abfrage 6 Stunden Abfragen, die länger als sechs Stunden dauern, werden beendet.
Abfragezeitraum Siehe: Beschreibung Der maximal zulässige Zeitraum für eine Abfrage beträgt 365 Tage.
Limits für Dimensionen und Messwerte 25 Die maximale Anzahl an Dimensionen und Messwerten, die Sie in der Nutzlast der Abfrage angeben können.

Informationen zu Abfrageergebnissen

Das folgende Beispiel zeigt ein Ergebnis im JSON-Format. Wie Sie die Ergebnisse anzeigen, hängt davon ab, welche Methode Sie zum Abrufen der Abfrageergebnisse verwendet haben:

  • Wenn Sie die Methode getResulturl verwendet haben, können Sie die Ergebnisse unter der URL anzeigen, die im Feld uri des Ergebnisses angegeben wurde. Bei dieser Methode gibt es keine Größenbeschränkung für die Ergebnisse einer Abfrage.
  • Wenn Sie die Methode getResult verwendet haben, werden die Ergebnisse in einer ZIP-Datei heruntergeladen.

    Die Methode getResult erzwingt eine Größenbeschränkung von 32 MB für die Ergebnisse einer Abfrage. Wenn die Ergebnisse 32 MB überschreiten, gibt die Abfrage den Statuscode 400 mit der Meldung „Abfrageergebnis ist größer als 32 MB zurück” zurück. Verwenden Sie die Methode getReulturl wie unter Abfrageergebnisse abrufen beschrieben, um dieses Limit zu vermeiden.

Die Ergebnisse bestehen aus JSON-Zeilen, die durch einen Zeilenumbruch getrennt sind, wie im folgenden Beispiel gezeigt:

{"message_count":"10209","apiproxy":"guest-auth-v3","hour":"2018-08-07 19:26:00 UTC"}
{"message_count":"2462","apiproxy":"carts-v2","hour":"2018-08-06 13:16:00 UTC"}
…

Sie können die Ergebnisse von der URL abrufen, bis die Daten im Repository abgelaufen sind. Weitere Informationen finden Sie unter Einschränkungen und Standardwerte.

Beispiele

Beispiel 1: Summe der Nachrichtenanzahl

Abfrage der Summe der Nachrichtenanzahl in den letzten 60 Minuten.

Abfrage

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @last60minutes.json

Dabei ist $TOKEN auf Ihr OAuth 2.0-Zugriffstoken festgelegt. Weitere Informationen hierzu finden Sie unter OAuth 2.0-Zugriffstoken abrufen. Informationen zu den in diesem Beispiel verwendeten curl-Optionen finden Sie unter curl verwenden. Eine Beschreibung der verwendeten Umgebungsvariablen finden Sie unter Umgebungsvariablen für Apigee API-Anfragen festlegen.

Anfragetext von last60minutes.json anfordern

{
   "metrics":[
      {
         "name":"message_count",
         "function":"sum"
      }
   ],
   "dimensions":[
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":"last60minutes"
}

Beispiel 2: Benutzerdefinierter Zeitraum

Abfrage mit einem benutzerdefinierten Zeitraum.

Abfrage

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @custom-timerange.json

Dabei ist $TOKEN auf Ihr OAuth 2.0-Zugriffstoken festgelegt. Weitere Informationen hierzu finden Sie unter OAuth 2.0-Zugriffstoken abrufen. Informationen zu den in diesem Beispiel verwendeten curl-Optionen finden Sie unter curl verwenden. Eine Beschreibung der verwendeten Umgebungsvariablen finden Sie unter Umgebungsvariablen für Apigee API-Anfragen festlegen.

Anfragetext von custom-timerange.json

{
   "metrics":[
      {
         "name":"message_count",
         "function":"sum"
      },
      {
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "dimensions":[
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Beispiel 3: Transaktionen pro Minute

Abfrage des Messwerts für Transaktionen pro Minute (tpm).

Abfrage

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @tpm.json

Dabei ist $TOKEN auf Ihr OAuth 2.0-Zugriffstoken festgelegt. Weitere Informationen hierzu finden Sie unter OAuth 2.0-Zugriffstoken abrufen. Informationen zu den in diesem Beispiel verwendeten curl-Optionen finden Sie unter curl verwenden. Eine Beschreibung der verwendeten Umgebungsvariablen finden Sie unter Umgebungsvariablen für Apigee API-Anfragen festlegen.

Anfragetext von tpm.json

{
   "metrics":[
      {
         "name":"tpm"
      }
   ],
   "dimensions":[
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{
      "start":"2018-07-01T11:00:00Z",
      "end":"2018-07-30T11:00:00Z"
   }
}

Beispielergebnis

Auszug aus der Ergebnisdatei:

{"tpm":149995.0,"apiproxy":"proxy_1","minute":"2018-07-06 12:16:00 UTC"}
{"tpm":149998.0,"apiproxy":"proxy_1","minute":"2018-07-09 15:12:00 UTC"}
{"tpm":3.0,"apiproxy":"proxy_2","minute":"2018-07-11 16:18:00 UTC"}
{"tpm":148916.0,"apiproxy":"proxy_1","minute":"2018-07-15 17:14:00 UTC"}
{"tpm":150002.0,"apiproxy":"proxy_1","minute":"2018-07-18 18:11:00 UTC"}
...

Beispiel 4: Filterausdruck verwenden

Abfrage mit einem Filterausdruck, der einen booleschen Operator verwendet.

Abfrage

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @filterCombo.json

Dabei ist $TOKEN auf Ihr OAuth 2.0-Zugriffstoken festgelegt. Weitere Informationen hierzu finden Sie unter OAuth 2.0-Zugriffstoken abrufen. Informationen zu den in diesem Beispiel verwendeten curl-Optionen finden Sie unter curl verwenden. Eine Beschreibung der verwendeten Umgebungsvariablen finden Sie unter Umgebungsvariablen für Apigee API-Anfragen festlegen.

Anfragetext von filterCombo.json

{
   "metrics":[
      {
         "name":"message_count",
         "function":"sum"
      },
      {
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "filter":"(apiproxy ne \u0027proxy_1\u0027) and (apiproxy ne \u0027proxy_2\u0027)",
   "dimensions":[
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Beispiel 5: Übergabe des Ausdrucks im Messwertparameter

Abfrage mit einem Ausdruck, der als Teil des Messwerts übergeben wird. Sie können nur einfache Ein-Operator-Ausdrücke verwenden.

Abfrage

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @metricsExpression.json

Dabei ist $TOKEN auf Ihr OAuth 2.0-Zugriffstoken festgelegt. Weitere Informationen hierzu finden Sie unter OAuth 2.0-Zugriffstoken abrufen. Informationen zu den in diesem Beispiel verwendeten curl-Optionen finden Sie unter curl verwenden. Eine Beschreibung der verwendeten Umgebungsvariablen finden Sie unter Umgebungsvariablen für Apigee API-Anfragen festlegen.

Anfragetext von metricsExpression.json anfordern

{
   "metrics":[
      {
         "name":"message_count",
         "function":"sum",
         "operator":"/",
         "value":"7"
      }
   ],
   "dimensions":[
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":10,
   "timeRange":"last60minutes"
}