Configurare i report sull'utilizzo inviati a Google

Se scegli prezzi basati sull'utilizzo per il tuo prodotto, devi segnalare l'utilizzo della tua app all'API Service Control.

Per un'introduzione a Service Control, consulta la guida introduttiva.

Prima di iniziare

(Per i prezzi basati sull'utilizzo) Report sull'utilizzo

Quando viene creato un diritto, devi chiamare l'API Partner Procurement per recuperare un usageReportingId utilizzando la seguente richiesta HTTP GET:

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

La risposta contiene informazioni sul diritto nel seguente formato:

{
  "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "YOUR_PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-messaging-service",
  "plan": "pro",
  "usageReportingId": "USAGE_REPORTING_ID",
  "state": "ENTITLEMENT_ACTIVATION_REQUESTED",
  "updateTime": "...",
  "createTime": "..."
}

Per segnalare l'utilizzo, devi prima effettuare una chiamata API services.check per controllare la configurazione del servizio. Nella risposta, se l'oggetto checkErrors[] è vuoto, effettua una chiamata API services.report per inviare il report sull'utilizzo.

Il report sull'utilizzo è un'API Service Control Operation. Di seguito è riportato un esempio di report sull'utilizzo per example-messaging-service che invia informazioni sullo spazio di archiviazione utilizzato dal cliente:

POST https://servicecontrol.googleapis.com/v1/services/example-messaging-service.gcpmarketplace.example.com:report
{
  "operations": [{
    "operationId": "1234-example-operation-id-4567",
    "operationName": "Hourly Usage Report",
    "consumerId": "USAGE_REPORTING_ID",
    "startTime": "2019-02-06T12:00:00Z",
    "endTime": "2019-02-06T13:00:00Z",
    "metricValueSets": [{
      "metricName": "example-messaging-service/UsageInGiB",
      "metricValues": [{ "int64Value": "150" }]
    }],
    "userLabels": {
      "cloudmarketplace.googleapis.com/resource_name": "order_history_cache",
      "cloudmarketplace.googleapis.com/container_name": "storefront_prod",
      "environment": "prod",
      "region": "us-west2"
    }
  }]
}

dove:

  • operationId è una stringa univoca generata dall'istanza di servizio. Utilizza lo stesso operationId per le operazioni check e report.
  • consumerId è uguale a usageReportingId del diritto.
  • startTime e endTime rappresentano l'ora di inizio e l'ora di fine dell'intervallo totale per l'operazione report. Nella maggior parte dei casi, il startTime di un'operazione report deve avere lo stesso valore del endTime dell'operazione report precedente. Se il servizio di un cliente viene disattivato prima del startTime di un'operazione report, la chiamata API services.check invia un errore nell'oggetto checkErrors[] e al cliente non viene addebitato l'intervallo corrispondente.
  • MetricValueSet contiene uno o più intervalli di tempo intermedi e i valori delle metriche aggiornati corrispondenti. Definisci le metriche del tuo servizio quando scegli e invii il modello di determinazione dei prezzi. Puoi visualizzare e fare riferimento agli identificatori delle tue metriche nella sezione Integrazione tecnica di Producer Portal.
  • userLabels sono etichette create dall'utente, definite come coppie chiave-valore che seguono specifici requisiti di sintassi. Queste etichette vengono inoltrate agli strumenti di gestione dei costi di fatturazione Cloud per l'attribuzione. Per consigli relativi all'etichettatura dell'utilizzo, consulta Best practice per l'etichettatura dell'utilizzo.

Se l'API services.check restituisce uno o più dei seguenti errori, ti consigliamo di interrompere la fornitura del servizio al cliente finché l'errore non viene risolto:

  • SERVICE_NOT_ACTIVATED
  • BILLING_DISABLED
  • PROJECT_DELETED