Berichtslogs

Auf dieser Seite wird beschrieben, wie Sie mit Service Infrastructure verwaltete Dienste so konfigurieren, dass Logs an Dienstersteller- und Dienstnutzerprojekte gesendet werden.

Die Service Control API nimmt strukturierte oder unstrukturierte Log-Daten an, die dann zusammengefasst und an Cloud Logging weitergeleitet werden. Sowohl Sie als auch die Nutzer Ihrer verwalteten Dienste können die Logdaten mit der Google Cloud Console und der Google API Console ansehen oder die Cloud Logging API verwenden, um programmatisch auf die Daten zuzugreifen.

Mit Logging allein kann ein verwalteter Dienst Logs für Sie als Entwickler des verwalteten Dienstes erzeugen. Wenn Sie dagegen die Service Control API verwenden, können Sie auch Logs für Ihre Nutzer generieren. Damit haben Nutzer die Möglichkeit, die Verwendung des verwalteten Dienstes nachzuvollziehen und zu diagnostizieren.

Logs konfigurieren

Bevor Sie Logs an die Service Control API senden, müssen Sie in der Dienstkonfiguration drei verschiedene Informationen angeben:

  • Log-Namen: Sie können ein oder mehrere Logs haben. Jedes Log hat einen eindeutigen Namen. Mit einzelnen Logs können bestimmte Datentypen isoliert werden, wenn sie so einfacher darzustellen oder zu verwenden sind.

  • Überwachte Ressourcen: Eine überwachte Ressource stellt eine Cloudentität dar, die Logging-Daten erzeugt. Zum Definieren einer überwachten Ressource in der Dienstkonfiguration lesen Sie die technische Spezifikation unter monitored_resource.proto. Es wird dringend empfohlen, dieselbe überwachte Ressource sowohl für das monitoring als auch für das Logging zu verwenden.

  • Log-Konfiguration: Hiermit können Sie die überwachte Ressource angeben, die mit einem Log-Stream und dem Dienstersteller- oder Dienstnutzerprojekt verbunden ist, an das die einzelnen Logs gesendet werden sollen. Informationen zum Konfigurieren der Log-Verknüpfung finden Sie für die technische Spezifikation unter logging.proto.

Im folgenden Beispiel einer Dienstkonfiguration wird das Log activity_log zum Senden an den Dienstnutzer konfiguriert.

# The definition of the monitored resource to be used.
monitored_resources:
- type: library.appspot.com/Branch
  description: A library branch
  display_name: Library Branch
  launch_stage: ALPHA
  labels:
  - key: resource_container
    description: The Google Cloud resource container (ie. project id) for
    the branch.
  - key: location
    description: The Google Cloud region the branch is located.
  - key: branch_id
    description: The ID of the branch.

# The log name to be used.
logs:
- name: activity_log

# The logging configuration.
logging:
  consumer_destinations:
  - monitored_resource: library.appspot.com/Branch
    logs:
    - activity_log

Nachdem Sie eine solche Konfiguration erstellt haben, müssen Sie Dienstkonfigurationen verwalten und Dienst-Rollouts verwalten, um die Dienstkonfiguration an die Service Management API zu übertragen, die die überwachte Ressource in Cloud Logging konfiguriert.

Berichterstattung mit Protokollen

Nach Abschluss der Dienstkonfigurationsübertragung können Sie die Service Control API aufrufen, um Logeinträge zu melden. Im folgenden Beispiel wird der Aufruf anhand des Befehls gcurl demonstriert. Informationen zum Einrichten dieses Vorgangs finden Sie unter Erste Schritte mit der Service Control API.

gcurl -d "{
  'operations': [ {
    'operationId': 'e8bf36ef-f9b5-4274-b4f9-079a3731e6e5',
    'operationName': 'New book arrived',
    'consumerId': 'projects/library-consumer',
    'startTime': '`date +%FT%T%:z`',
    'endTime': '`date +%FT%T%:z`',
    'labels': {
      'location': 'us-east1',
      'branch_id': 'my-test-library-branch'
    },
    'logEntries': [ {
      'severity': 'INFO',
      'textPayload': 'new book arrived',
      'name': 'activity_log'
    } ]
  } ]
}" https://servicecontrol.googleapis.com/v1/services/endpointsapis.appspot.com:report