Nutzungsberichte an Google senden

Wenn Sie für Ihr Produkt nutzungsbasierte Preise wählen, müssen Sie die Nutzung Ihrer App an die Service Control API melden.

Eine Einführung zu Service Control finden Sie im Startleitfaden.

Hinweis

(Für nutzungsbasierte Preise) Nutzung melden

Wenn eine Berechtigung erstellt wird, müssen Sie die Partnerbeschaffungs-API aufrufen, um eine usageReportingId mithilfe der folgenden HTTP GET-Anfrage abzurufen:

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

Die Antwort enthält Informationen zur Berechtigung im folgenden Format:

{
  "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": "..."
}

Zum Melden der Nutzung müssen Sie zuerst einen services.check-API-Aufruf ausführen, um die Konfiguration des Dienstes zu prüfen. Wenn das Objekt checkErrors[] leer ist, führen Sie in der Antwort einen API-Aufruf services.report aus, um den Nutzungsbericht zu senden.

Der Nutzungsbericht ist eine Service Control API Operation. Das folgende Beispiel zeigt einen Nutzungsbericht für example-messaging-service, der Informationen über den vom Kunden verwendeten Speicher sendet:

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"
    }
  }]
}

wobei

  • operationId ist ein eindeutiger String, den Ihre Dienstinstanz generiert. Verwenden Sie Dieselbe operationId für die check- und report-Vorgänge.
  • consumerId ist mit dem usageReportingId aus der Berechtigung identisch.
  • startTime und endTime stellen die Start- und Endzeit des Gesamtintervalls für den report-Vorgang dar. In den meisten Fällen entspricht der startTime einer Der Vorgang report muss denselben Wert wie endTime des vorheriger report-Vorgang. Wenn der Dienst eines Kunden deaktiviert ist, bevor der startTime eines report-Vorgangs ausgeführt wird, sendet der API-Aufruf services.check einen Fehler im Objekt checkErrors[] und dem Kunden wird nichts für das entsprechende Intervall in Rechnung gestellt.
  • MetricValueSet enthält ein oder mehrere Zwischenintervalle und die entsprechenden aktualisierten Messwerte. Sie definieren die Messwerte Ihres Dienstes, wenn Sie Ihr Preismodell auswählen und einreichen. Die IDs für Ihre Messwerte können Sie in der Bereich Technische Integration im Producer Portal.
  • userLabels sind von Nutzern erstellte Labels, die als Schlüssel/Wert-Paar-Strings definiert sind, die folgen Sie spezifischen Syntaxanforderungen. Diese Labels werden an die Cloud Management-Tools zur Kostenverwaltung zur Attribution weitergeleitet. Empfehlungen zur Verwendung von Labels finden Sie unter Best Practices für die Verwendung von Labels.

Wenn die services.check-API einen oder mehrere der folgenden Fehler zurückgibt, empfehlen wir, die Bereitstellung Ihres Dienstes für den Kunden einzustellen, bis der Fehler behoben ist:

  • SERVICE_NOT_ACTIVATED
  • BILLING_DISABLED
  • PROJECT_DELETED