L'API App Optimize ti aiuta ad analizzare i dati relativi ai costi e all'utilizzo delle risorse generando report. Per ottenere queste informazioni, devi prima creare un report inviando una richiesta API. In questa richiesta, definisci l'ambito dei dati, la modalità di aggregazione o raggruppamento e gli eventuali filtri da applicare.
Quando il report è pronto, puoi leggere i dati.
Per informazioni su ambiti, dimensioni, metriche e filtri disponibili e sulle combinazioni valide di queste impostazioni, consulta Informazioni sui report.
Prima di iniziare
-
Gli esempi in questa guida richiedono un Google Cloud progetto con risorse attive da analizzare. L'API App Optimize ha bisogno di dati di fatturazione e utilizzo per produrre risultati significativi; i report eseguiti su progetti nuovi o vuoti saranno vuoti.
Questo progetto è scelto da te ed è identificato da PROJECT_ID. Per semplicità, in questa guida il tuo progetto ospiterà la risorsa report e fornirà l'ambito dei dati.
L'API App Optimize supporta la creazione di report in un progetto che analizzano i dati di un progetto di origine diverso o di applicazioni in limiti a livello di progetto singolo o di cartella. Se generi un report su un'applicazione App Hub, che può essere composta da più progetti, devi disporre delle autorizzazioni di monitoraggio e fatturazione richieste per tutti i progetti associati all'applicazione per creare il report.
-
Assicurati che l'API App Optimize sia abilitata
per il progetto che utilizzerai per creare e gestire la risorsa
report. Negli esempi di questa documentazione, si tratta del progetto identificato da
PROJECT_ID. - Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Verifica di disporre delle autorizzazioni necessarie per completare questa guida.
-
Installa Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Verifica di disporre delle autorizzazioni necessarie per completare questa guida.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare un report utilizzando questa guida, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto con risorse attive:
-
Amministratore ottimizzazione app (
roles/appoptimize.admin) -
Monitoring Viewer (
roles/monitoring.viewer) -
Visualizzatore (
roles/viewer) (o un altro ruolo che concedebilling.resourceCosts.get)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per saperne di più sui ruoli e sulle autorizzazioni richiesti per l'API App Optimize, consulta Controllo dell'accesso con IAM.
crea un report
I passaggi seguenti descrivono come avviare la creazione del report. Questo esempio crea un report per aiutarti a comprendere i costi e l'utilizzo medio della CPU del progetto scelto nell'ultima settimana. Il report suddivide queste informazioni per ogni singola risorsa, incluso il tipo di risorsa, il prodotto Google Cloud di cui fa parte e la sua posizione.
Per creare la risorsa report, invia una richiesta HTTP POST al percorso della risorsa
projects.locations.reports dell'API REST.
Segui questi passaggi per creare un report.
Utilizza il seguente comando
curlper inviare la richiesta. Il corpo della richiesta contiene la definizione del report, inclusi l'ambito, le dimensioni, le metriche e gli eventuali filtri richiesti.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"Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto Google Cloud .REPORT_ID: un ID univoco per il nuovo report, ad esempiomy-resource-cost-report-1.
L'API restituisce un oggetto operazione a lunga esecuzione (LRO). Prendi nota del campo
namenella risposta, che utilizzerai per controllare lo stato dell'operazione:{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.appoptimize.v1beta.OperationMetadata" }, "done": false }Nella risposta, il campo
doneèfalse, il che indica che la generazione del report è in corso.Per verificare se il report è pronto, invia una richiesta HTTP
GETall'operazionenamerestituita nel passaggio precedente:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://appoptimize.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/operations/OPERATION_ID"Sostituisci
PROJECT_IDeOPERATION_IDcon i valori della risposta LRO.Esamina la risposta per determinare lo stato dell'operazione:
- Se il report è ancora in fase di generazione, la risposta sarà simile alla risposta LRO iniziale, con
doneimpostato sufalse. Devi attendere un breve periodo, ad esempio da 5 a 15 secondi, e riprovare a eseguire il polling ripetendo questo passaggio. Al termine della generazione del report, la risposta avrà
"done": truee includerà la risorsa del report nel camporesponse:{ "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" ] } }Se l'operazione di lunga durata rileva un errore, la risposta conterrà un campo
erroranziché il camporesponse, fornendo dettagli sull'errore.
- Se il report è ancora in fase di generazione, la risposta sarà simile alla risposta LRO iniziale, con
Una volta completata l'operazione, puoi leggere i dati del report.
Limiti di concorrenza
Quando crei un report, l'API App Optimize recupera i dati di costo da Fatturazione Cloud e i dati di utilizzo da Cloud Monitoring per ogni target_project del report.
- Per un report limitato a un singolo progetto, questo è il progetto di destinazione.
- Per un'applicazione App Hub, ogni progetto che contiene un servizio o un carico di lavoro nell'applicazione è un progetto di destinazione.
L'API App Optimize applica una quota di concorrenza denominata Operazioni CreateReport simultanee, che consente un massimo di 10 richieste simultanee per i dati dei report per progetto di destinazione. Quando crei un report, l'API App Optimize calcola il numero di progetti di destinazione nel report e blocca il numero richiesto di unità di quota finché l'operazione di lunga durata per la creazione del report non è terminata.
I report che vengono completati in meno di qualche minuto potrebbero non essere conteggiati ai fini del limite di simultaneità a causa della tempistica di misurazione a livello di sistema.
Puoi visualizzare l'attività API attuale e gestire questi limiti nella pagina Quote e limiti di sistema della console Google Cloud .
Se prevedi di creare più report contemporaneamente, considera quando i tuoi team eseguono i report e come sono strutturate le tue applicazioni App Hub:
- Se più team eseguono report che includono gli stessi progetti target, puoi scaglionare gli orari di inizio della creazione dei report per ogni team.
- Le applicazioni possono includere risorse di più progetti e più di un'applicazione potrebbe utilizzare risorse di un singolo progetto. La creazione simultanea di report per questi tipi di applicazioni genera più richieste ai progetti di destinazione.
Ad esempio, prendi in considerazione un team che lavora a una suite di applicazioni per l'apprendimento delle arti creative, con varianti standard e premium. La seguente tabella mostra l'elenco delle applicazioni nella prima colonna. Nelle colonne rimanenti, l'icona del segno di spunta () indica che un progetto contiene servizi o carichi di lavoro per un'applicazione elencata.
| Applicazione | 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 |
Se crei report per i dati di costi e utilizzo per tutte le applicazioni elencate
contemporaneamente, l'API App Optimize utilizza più di un'unità del
limite di concorrenza in alcuni progetti. In particolare, il progetto condiviso
common-project riceve 12 richieste di dati su costi e utilizzo. Poiché
questo numero supera il limite di concorrenza, 2 richieste di dati non andranno a buon fine.
Per evitare questo problema, il team potrebbe eseguire prima i report per le versioni standard delle applicazioni e poi eseguire i report per la versione premium.
Passaggi successivi
- Per comprendere dimensioni, metriche e filtri, consulta Informazioni sui report.
- Esplora altri modi per gestire i report: