Einleitung
Auf dieser Seite wird beschrieben, wie Sie die Service Control API v2 verwenden können, um Telemetrieberichte für verwaltete Dienste zu erstellen, die in Service Infrastructure eingebunden sind. Sie richtet sich an Dienstersteller, die ihre Dienste umfassend in Google Cloud integrieren möchten.
Service Infrastructure ist eine grundlegende Plattform, mit der Entwickler APIs und Dienste erstellen, verwalten, sichern und nutzen können. Sie verwendet ein einfaches, allgemeines Dienstnutzungsmodell: Ein Verbraucher nutzt einen von einem Ersteller verwalteten Dienst. Alle Google APIs und Google Cloud APIs verwenden dieses Modell, da sie auch auf Service Infrastructure basieren.
Wenn ein Nutzer auf einen Dienst zugreift, meldet der Dienst relevante Telemetriedaten an die Plattform, damit sowohl der Nutzer als auch der Ersteller den Zugriff beobachten kann. Bei Service Infrastructure wird dieser Prozess als Telemetrieberichterstellung bezeichnet und schließt Analysen, Auditing, Abrechnung, Logging und Monitoring mit ein.
Service Control API Version 2
Die Service Control API v2 bietet eine einfache services.report
-Methode, mit der Telemetrieberichte für alle in Service Infrastructure integrierten Dienste bereitgestellt werden. Bei dieser Methode können Sie folgende Aktionen in einem einzigen Methodenaufruf durchführen:
- Analyse
- Audit
- Abrechnung
- Logging
- Überwachung
Wenn ein Dienst Telemetriedaten an die Service Control API meldet, werden die Daten je nach Dienstkonfiguration an den Nutzer, den Ersteller oder beide weitergegeben. Weitere Informationen zum Konfigurieren von Telemetrie finden Sie in den Abschnitten Logging und Monitoring von google.api.Service
.
Damit ein Dienst die Service Control API aufrufen kann, muss der Ersteller die Service Control API für das Erstellerprojekt aktivieren und der Aufrufer muss die erforderlichen Berechtigungen für den Dienst haben. Weitere Informationen finden Sie unter Erste Schritte mit Cloud APIs und Zugriffssteuerung für die Service Control API.
Anfrageattribute
Wenn ein Client auf einen Dienst zugreift, muss der Dienst den Zugriff in Form einer Reihe von API-Anfragen modellieren und jede Anfrage mit dem Code AttributeContext
beschreiben.
Wenn Sie mit der Service Control API API-Messwerte melden möchten, muss der Dienst die Methode services.report
für jede Anfrage mit den folgenden Funktionen aufrufen: Die Service Control API generiert die API-Messwerte und sendet sie an Cloud Monitoring.
Attribut | Beschreibung | Beispiel |
---|---|---|
origin.ip |
Die IP-Adresse des Aufrufers. | "1.2.3.4" |
api.service |
Der API-Dienstname. | "endpointsapis.appspot.com" |
api.operation |
Der API-Methodenname. | "google.example.hello.v1.HelloService.GetHello" |
api.version |
Der API-Versionsstring. | "v1" |
api.protocol |
Der API-Protokollname. | "https" |
request.id |
Eine eindeutige Anfrage-ID. | "123e4567-e89b-12d3-a456-426655440000" |
request.time |
Der Anfragezeitstempel. | "2019-07-31T05:20:00Z" |
request.method |
Der Name der HTTP-Methode. | "POST" |
request.scheme |
Das URL-Schema | "https" |
request.host |
Der HTTP-Host-Header | "endpointsapis.appspot.com" |
request.path |
Der URL-Pfad | "/v1/hello" |
response.code |
Der Antwortstatuscode. | 200 |
response.size |
Die Antwortgröße in Byte. | 100 |
response.time |
Der Antwortzeitstempel. | "2019-07-31T05:20:02Z" |
response.backend_latency |
Die Backend-Latenz. | "0.007s" |
Telemetrieberichte erstellen
Sobald Sie Ihre Dienstkonfiguration für die Service Management API bereitgestellt haben und Ihr Dienst bereit ist, Anfragen von Clients zu bearbeiten, können Sie services.report
für Ihren bereitgestellten Dienst aufrufen. Rufen Sie services.report
auf, um Telemetrieberichte zu erstellen, nachdem Ihr Dienst eine Anfrage erhalten hat.
Wenn Sie schnell mit den Telemetrieberichten experimentieren möchten, können Sie mit dem Befehl gcurl
die Methode services.report
aufrufen. Die Schritte zur Ersteinrichtung werden unter Erste Schritte mit der Service Control API erläutert.
Das folgende Beispiel zeigt, wie Sie mit dem Befehl gcurl
services.report
über HTTP aufrufen.
gcurl -d '{ "service_config_id": "latest", "operations": [{ "origin": { "ip": "1.2.3.4" }, "api": { "service": "endpointsapis.appspot.com", "operation", "google.example.endpointsapis.v1.Workspaces.GetWorkspace", "version": "v1", "protocol": "https" }, "request": { "id": "123e4567-e89b-12d3-a456-426655440000", "size": 50, "time": "2019-07-31T05:20:00Z", }, "response": { "size": 100, "code": 200, "time": "2019-07-31T05:20:02Z", "backend_latency": "0.007s" }, "destination": { "region_code": "us-central1" } "resource": { "name": "projects/123/locations/us-central1/workspaces/default" } }] }' https://servicecontrol.googleapis.com/v2/services/endpointsapis.appspot.com:report
Wenn der Vorgang erfolgreich war, ist die Antwort der Methode services.report
leer. Wenn der Vorgang fehlgeschlagen ist, enthält der API-Fehler detaillierte Fehlerinformationen.
Weitere Informationen zur Fehlerbehandlung finden Sie unter Leitfaden zum API-Design > Fehler.
Für Produktionsdienste sollten Sie eine der von Google bereitgestellten Clientbibliotheken verwenden, um die Service Control API aufzurufen. Diese Bibliotheken bieten eine hohe Nutzerfreundlichkeit und verarbeiten gängige Funktionen wie die Authentifizierung automatisch. Weitere Informationen erhalten Sie unter Erläuterung der Clientbibliotheken.