Mit der App Optimize API können Sie Ihre Kosten- und Ressourcennutzungsdaten analysieren, indem Sie Berichte erstellen. Um diese Informationen abzurufen, erstellen Sie zuerst einen Bericht, indem Sie eine API-Anfrage senden. In dieser Anfrage definieren Sie den Umfang der Daten, wie sie aggregiert oder gruppiert werden sollen und welche Filter angewendet werden sollen.
Wenn der Bericht fertig ist, können Sie die Daten lesen.
Informationen zu verfügbaren Bereichen, Dimensionen, Messwerten und Filtern sowie zu gültigen Kombinationen dieser Einstellungen finden Sie unter Berichte.
Hinweis
-
Für die Beispiele in diesem Leitfaden benötigen Sie ein Google Cloud Projekt mit aktiven Ressourcen, die analysiert werden sollen. Für die App Optimize API sind Abrechnungs- und Nutzungsdaten erforderlich, um aussagekräftige Ergebnisse zu liefern. Berichte, die für neue oder leere Projekte ausgeführt werden, sind leer.
Dieses Projekt wurde von Ihnen ausgewählt und wird durch PROJECT_ID identifiziert. Der Einfachheit halber wird in diesem Leitfaden das Projekt sowohl die Berichtsressource hosten als auch den Datenbereich bereitstellen.
Mit der App Optimize API können Berichte in einem Projekt erstellt werden, in denen Daten aus einem anderen Quellprojekt oder aus Anwendungen in Einzelprojekt- oder Ordnergrenzen analysiert werden. Wenn Sie einen Bericht zu einer App Hub-Anwendung erstellen, die aus mehreren Projekten bestehen kann, benötigen Sie die erforderlichen Berechtigungen für Monitoring und Abrechnung für alle zugehörigen Projekte der Anwendung, um den Bericht zu erstellen.
-
Prüfen Sie, ob die App Optimize API für das Projekt aktiviert ist, mit dem Sie die Berichtsressource erstellen und verwalten. In den Beispielen in dieser Dokumentation ist das das Projekt, das durch
PROJECT_IDidentifiziert wird. - Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Prüfen Sie, ob Sie die Berechtigungen haben, die für diese Anleitung erforderlich sind.
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Prüfen Sie, ob Sie die Berechtigungen haben, die für diese Anleitung erforderlich sind.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt mit aktiven Ressourcen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Berichts mit dieser Anleitung benötigen:
-
App Optimize-Administrator (
roles/appoptimize.admin) -
Monitoring Viewer (
roles/monitoring.viewer) -
Betrachter (
roles/viewer) oder eine andere Rolle, diebilling.resourceCosts.getgewährt
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Weitere Informationen zu den für die App Optimize API erforderlichen Berechtigungen und Rollen finden Sie unter Zugriffssteuerung mit IAM.
Bericht erstellen
In den folgenden Schritten wird beschrieben, wie Sie die Berichterstellung starten. In diesem Beispiel wird ein Bericht erstellt, mit dem Sie die Kosten und die durchschnittliche CPU-Auslastung des ausgewählten Projekts in der letzten Woche nachvollziehen können. Im Bericht werden diese Informationen für jede einzelne Ressource aufgeschlüsselt, einschließlich des Ressourcentyps, des Google Cloud Produkts, zu dem sie gehört, und ihres Standorts.
Senden Sie eine HTTP-POST-Anfrage an den Ressourcenpfad projects.locations.reports der REST API, um die Berichtsressource zu erstellen.
So erstellen Sie einen Bericht:
Verwenden Sie den folgenden
curl-Befehl, um die Anfrage zu senden. Der Anfragetext enthält die Berichtsdefinition, einschließlich des angeforderten Bereichs, der Dimensionen, der Messwerte und aller Filter.curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{ "scopes": [ { "project": "projects/PROJECT_ID" } ], "dimensions": [ "location", "product_display_name", "project", "resource", "resource_type" ], "metrics": [ "cost", "cpu_mean_utilization" ], "filter": "hour >= now - duration(\"168h\")" }' \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/reports?report_id=REPORT_ID"Ersetzen Sie Folgendes:
PROJECT_ID: Projekt-ID in Google Cloud .REPORT_ID: Eine eindeutige ID für Ihren neuen Bericht, z. B.my-resource-cost-report-1.
Die API gibt ein LRO-Objekt (Long-Running Operation, Vorgang mit langer Ausführungszeit) zurück. Notieren Sie sich das Feld
namein der Antwort, das Sie zum Prüfen des Vorgangsstatus verwenden:{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": false }In der Antwort ist das Feld
doneauffalsegesetzt. Das bedeutet, dass die Berichterstellung läuft.Wenn Sie prüfen möchten, ob der Bericht fertig ist, senden Sie eine
GET-HTTP-Anfrage an den Vorgangname, der im vorherigen Schritt zurückgegeben wurde:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"Ersetzen Sie
PROJECT_IDundOPERATION_IDdurch die Werte aus der LRO-Antwort.Prüfen Sie die Antwort, um den Status des Vorgangs zu ermitteln:
- Wenn der Bericht noch generiert wird, sieht die Antwort ähnlich wie die ursprüngliche LRO-Antwort aus, wobei
doneauffalsefestgelegt ist. Warten Sie kurz, z. B. 5 bis 15 Sekunden, und wiederholen Sie diesen Schritt, um den Status noch einmal abzurufen. Wenn die Berichterstellung abgeschlossen ist, enthält die Antwort
"done": trueund die Berichtsressource im Feldresponse:{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.Report", "name": "projects/PROJECT_ID/locations/global/reports/REPORT_ID", "dimensions": [ "location", "product_display_name", "project", "resource", "resource_type" ], "scopes": [ { "project": "projects/PROJECT_ID" } ], "filter": "hour >= now - duration(\"168h\")", "expireTime": "2026-02-05T18:50:25.273833857Z", "metrics": [ "cost", "cpu_mean_utilization" ] } }Wenn bei der LRO ein Fehler auftritt, enthält die Antwort anstelle des Felds
responsedas Felderrormit Details zum Fehler.
- Wenn der Bericht noch generiert wird, sieht die Antwort ähnlich wie die ursprüngliche LRO-Antwort aus, wobei
Sobald der Vorgang erfolgreich abgeschlossen ist, können Sie die Daten des Berichts lesen.
Limits für gleichzeitige Ausführungen
Wenn Sie einen Bericht erstellen, ruft die App Optimize API Kostendaten aus Cloud Billing und Nutzungsdaten aus Cloud Monitoring für jedes target_project des Berichts ab.
- Bei einem Bericht, der auf ein einzelnes Projekt beschränkt ist, ist dieses Projekt das Zielprojekt.
- Bei einer App Hub-Anwendung ist jedes Projekt, das einen Dienst oder eine Arbeitslast in der Anwendung enthält, ein Zielprojekt.
Die App Optimize API erzwingt eine Gleichzeitigkeitsquote namens Gleichzeitige CreateReport-Vorgänge, die maximal 10 gleichzeitige Anfragen für Berichtsdaten pro Zielprojekt zulässt. Wenn Sie einen Bericht erstellen, berechnet die App Optimize API die Anzahl der Zielprojekte im Bericht und reserviert die erforderliche Anzahl von Kontingenteinheiten, bis der LRO für die Erstellung des Berichts abgeschlossen ist.
Berichte, die in weniger als wenigen Minuten fertig sind, werden aufgrund des Zeitpunkts der Messung auf Systemebene möglicherweise nicht auf Ihr Limit für gleichzeitige Anfragen angerechnet.
Sie können Ihre aktuelle API-Aktivität auf der Seite Kontingente und Systemlimits in der Google Cloud Console ansehen und diese Limits verwalten.
Wenn Sie mehrere Berichte gleichzeitig erstellen möchten, sollten Sie berücksichtigen, wann Ihre Teams Berichte ausführen und wie Ihre App Hub-Anwendungen strukturiert sind:
- Wenn mehrere Teams Berichte mit denselben Zielprojekten erstellen, können Sie die Startzeiten für die Berichtserstellung für jedes Team staffeln.
- Anwendungen können Ressourcen aus mehreren Projekten enthalten und mehrere Anwendungen können Ressourcen aus einem einzelnen Projekt verwenden. Wenn Berichte gleichzeitig für diese Arten von Anwendungen erstellt werden, werden mehrere Anfragen an Zielprojekte gesendet.
Stellen Sie sich beispielsweise ein Team vor, das an einer Reihe von Anwendungen zum Erlernen kreativer Künste arbeitet, mit Standard- und Premium-Varianten. In der folgenden Tabelle sehen Sie in der ersten Spalte die Liste der Anwendungen. In den verbleibenden Spalten gibt das Häkchensymbol () an, dass ein Projekt Dienste oder Arbeitslasten für eine aufgeführte Anwendung enthält.
| Anwendung | common-project | dance-project | draw-project | animate-project | music-project |
|---|---|---|---|---|---|
| dance-app | |||||
| draw-app | |||||
| music-app | |||||
| animate-app | |||||
| choreograph-app | |||||
| storyteller-app | |||||
| dance-premium-app | |||||
| draw-premium-app | |||||
| music-premium-app | |||||
| animate-premium-app | |||||
| choreograph-premium-app | |||||
| storyteller-premium-app |
Wenn Sie Berichte für Kosten- und Nutzungsdaten für alle aufgeführten Anwendungen gleichzeitig erstellen, verwendet die App Optimize API in einigen Projekten mehr als eine Einheit Ihres Parallelitätslimits. Insbesondere das freigegebene Projekt common-project erhält 12 Anfragen zu Kosten- und Nutzungsdaten. Da diese Zahl das Limit für die Parallelität überschreitet, schlagen zwei Datenanfragen fehl.
Um dieses Problem zu vermeiden, könnte das Team zuerst Berichte für die Standardversionen der Anwendungen und dann für die Premium-Version erstellen.
Nächste Schritte
- Weitere Informationen zu Dimensionen, Messwerten und Filtern finden Sie unter Berichte.
- Weitere Möglichkeiten zum Verwalten von Berichten: