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.

Hinweise

(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 für Ihre Vorgänge check und report denselben operationId.
  • 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 sollte die startTime eines report-Vorgangs denselben Wert wie die endTime des vorherigen report-Vorgangs haben. 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 Zwischenzeiträume und die entsprechenden aktualisierten Messwerte. Sie definieren die Messwerte Ihres Dienstes, wenn Sie Ihr Preismodell auswählen und einreichen. Sie können die Kennungen für Ihre Messwerte im Producer Portal im Abschnitt Technische Integration aufrufen und referenzieren.
  • userLabels sind von Nutzern erstellte Labels, die als Schlüssel/Wert-Strings definiert werden, die bestimmten Syntaxanforderungen entsprechen. 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