Configurare i report sull'utilizzo per Google

Se scegli i 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) Segnala l'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 all'API services.check per controllare la configurazione del servizio. Nella risposta, se l'oggetto checkErrors[] è vuoto, effettua una chiamata all'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 di 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 corrisponde a usageReportingId del diritto.
  • startTime e endTime rappresentano le ore di inizio e 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 all'API services.check invia un errore nell'oggetto checkErrors[] e al cliente non viene addebitato alcun costo per l'intervallo corrispondente.
  • MetricValueSet contiene uno o più intervalli di tempo intermedi e i valori aggiornati corrispondenti delle metriche. Devi definire le metriche del servizio quando scegli e invii il modello di determinazione dei prezzi. Puoi visualizzare e fare riferimento agli identificatori delle metriche nella sezione Integrazione tecnica di Producer Portal.
  • userLabels sono etichette create dall'utente, definite come stringhe 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