Crea un report

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

  1. 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.

  2. 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.
  3. 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.
  4. Installa Google Cloud CLI.

  5. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  6. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  7. Verifica di disporre delle autorizzazioni necessarie per completare questa guida.

  8. Installa Google Cloud CLI.

  9. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. 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:

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.

  1. Utilizza il seguente comando curl per 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 esempio my-resource-cost-report-1.

    L'API restituisce un oggetto operazione a lunga esecuzione (LRO). Prendi nota del campo name nella 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.

  2. Per verificare se il report è pronto, invia una richiesta HTTP GET all'operazione name restituita 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_ID e OPERATION_ID con 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 done impostato su false. 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": true e includerà la risorsa del report nel campo response:

      {
        "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 error anziché il campo response, fornendo dettagli sull'errore.

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