Configurar los informes de uso en Google

Si eliges la opción de precios basada en el uso para tu producto, debes informar del uso de tu aplicación a la API Service Control.

Para obtener una introducción a Service Control, consulta la guía de inicio.

Antes de empezar

(En el caso de los precios basados en el uso) Informar del uso

Cuando se crea un derecho, debes llamar a la API Partner Procurement para obtener un usageReportingId. Para ello, usa la siguiente solicitud HTTP GET:

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

La respuesta contiene información sobre el derecho en el siguiente 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": "..."
}

Para informar del uso, primero debes hacer una llamada a la API services.check para comprobar la configuración del servicio. En la respuesta, si el objeto checkErrors[] está vacío, haz una llamada a la API services.report para enviar el informe de uso.

El informe de uso es una API Service Control Operation. A continuación, se muestra un ejemplo de informe de uso de example-messaging-service que envía información sobre el almacenamiento que usa el 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"
    }
  }]
}

donde:

  • operationId es una cadena única que genera la instancia de tu servicio. Usa el mismo operationId para las operaciones de check y report.
  • consumerId es igual que usageReportingId del derecho.
  • startTime y endTime representan las horas de inicio y finalización del intervalo total de la report operación. En la mayoría de los casos, el startTime de una operación report debe tener el mismo valor que el endTime de la operación report anterior. Si el servicio de un cliente se inhabilita antes de la startTime de una operación report, la llamada a la API services.check envía un error en el objeto checkErrors[] y no se cobra al cliente por el intervalo correspondiente.
  • MetricValueSet contiene uno o varios intervalos de tiempo intermedios y los valores de métrica actualizados correspondientes. Cuando eliges y envías tu modelo de precios, defines las métricas de tu servicio. Puede ver y consultar los identificadores de sus métricas en la sección Integración técnica de Producer Portal.
  • userLabels son etiquetas creadas por los usuarios, definidas como cadenas de pares clave-valor que siguen requisitos de sintaxis específicos. Estas etiquetas se reenvían a las herramientas de gestión de costes de Facturación de Cloud para la atribución. Para obtener recomendaciones relacionadas con el etiquetado de uso, consulta las prácticas recomendadas para el etiquetado de uso.

Si la API services.check devuelve uno o varios de los siguientes errores, le recomendamos que deje de prestar su servicio al cliente hasta que se resuelva el error:

  • SERVICE_NOT_ACTIVATED
  • BILLING_DISABLED
  • PROJECT_DELETED