Fehler beheben

In diesem Dokument finden Sie Informationen zur Behebung häufiger Probleme bei der Verwendung von Cloud Trace, z. B. fehlende Spandaten, Abfragefehler in Observability Analytics und Validierungsfehler beim Erstellen von Benachrichtigungsrichtlinien.

Bekannte Probleme

In diesem Abschnitt werden bekannte Probleme aufgeführt:

  • Spans, die mit der Telemetry API in Ihr Google Cloud -Projekt geschrieben werden, sind für die Cloud Trace API nicht zugänglich. Wenn Sie beispielsweise versuchen, diese Traces aufzulisten, schlägt der Befehl mit einem 404 Not Found-Fehler fehl.

Fehlerbehebung bei Observability Analytics

In diesem Abschnitt wird beschrieben, wie Sie Fehler beheben, die bei der Verwendung von Observability Analytics zum Abfragen Ihrer Tracedaten auftreten können.

Benachrichtigungsrichtlinie kann aufgrund eines Validierungsfehlers nicht gespeichert werden

Sie versuchen, eine Benachrichtigungsrichtlinie zu speichern, mit der Ihre Tracedaten überwacht werden, und erhalten eine Fehlermeldung wie die folgende:

The following error occurred when validating your SQL Alert: Error authenticating service account `service-12345@gcp-sa-monitoring-notification.iam.gserviceaccount.com`. BigQuery returned an error.

Diese Fehlermeldung weist darauf hin, dass dem Monitoring Service Account nicht die erforderlichen Berechtigungen erteilt wurden oder dass es nicht vorhanden ist. Dieses Konto wird automatisch vom System erstellt, wenn bestimmte vom Nutzer initiierte Aktionen ausgeführt werden. Wenn die Cloud Monitoring API jedoch deaktiviert ist, kann das Dienstkonto nicht erstellt werden.

So beheben Sie den Fehler:

  1. Rufen Sie in der Google Cloud Console die Seite APIs und Dienste auf und aktivieren Sie die Cloud Monitoring API:

    APIs & Dienste aufrufen

  2. Rufen Sie in der Google Cloud Console die Seite IAM auf:

    IAM aufrufen

    Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM & Admin lautet.

  3. Führen Sie auf der Seite IAM die folgenden Schritte aus:

    1. Wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.

    2. Wenn das Monitoring-Dienstkonto nicht aufgeführt ist, erstellen Sie eine SQL-basierte Benachrichtigungsrichtlinie und versuchen Sie, die Richtlinie zu speichern.

      Wenn Sie die Richtlinie speichern, wird das Monitoring-Dienstkonto erstellt. Die Speicheraktion schlägt fehl, weil dieses Dienstkonto nicht die erforderlichen IAM-Rollen hat.

    3. Weisen Sie dem Monitoring-Dienstkonto die folgenden Rollen zu:

Fehlermeldung, dass eine Ansicht nicht vorhanden ist

Sie geben eine SQL-Abfrage im Abfragebereich der Seite Observability Analytics ein, aber der SQL-Parser gibt den folgenden Fehler aus:

projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID/datasets/DATASET_ID/views/OBS_VIEW_ID does not exist

Der vorherige Fehler wird gemeldet, wenn die in der FROM-Anweisung angegebene Ansicht nicht gefunden werden kann.

So beheben Sie diesen Fehler: Vergewissern Sie sich, dass Ihre Ansicht die richtige Syntax aufweist:

  • Prüfen Sie, ob der voll qualifizierte Name der Ansicht der Syntax entspricht, die für das Benennungsschema von Observability Analytics erforderlich ist. Die erforderliche Syntax für eine Ansicht finden Sie, indem Sie die Standardabfrage der Ansicht aufrufen.

  • Wenn die Google Cloud Projekt-ID, der Standort, die Bucket-ID, die Dataset-ID oder die Ansichts-ID Punkte ((.)) enthält, muss das Feld in einzelne Graviszeichen ((`)) eingeschlossen werden.

    Wenn die ID Ihres Google Cloud -Projekts beispielsweise example.com:bluebird lautet, sieht die FROM-Anweisung so aus:

    FROM `example.com:bluebird`.`us`.`_Trace`.`Spans`.`_AllSpans`
    

Meldung „Erste Schritte mit Observability Analytics“ wird angezeigt

Sie öffnen die Seite Observability Analytics und es wird ein Fenster mit einer Meldung ähnlich der folgenden angezeigt:

Get started with Observability Analytics

Klicken Sie im Fenster auf  Schließen, um Observability Analytics zu verwenden.

Die vorherige Meldung wird angezeigt, wenn Sie keine Log-Buckets haben, für die ein Upgrade zur Verwendung von Observability Analytics durchgeführt wurde. Ihre Tracedaten werden jedoch nicht in einem Log-Bucket gespeichert.

Zusammenführen mehrerer Ansichten schlägt fehl

Sie schreiben eine Abfrage, mit der mehrere Ansichten verknüpft werden, aber die Abfrage wird als ungültig markiert.

Nicht alle Ansichten können verknüpft werden.

Für das Zusammenführen von Ansichten gelten die folgenden Einschränkungen:

  1. Die Positionen der Ansichten erfüllen eine der folgenden Bedingungen:

    • Alle Ansichten haben denselben Standort.
    • Alle Ansichten befinden sich entweder am Standort global oder us.
  2. Wenn für Speicherressourcen kundenverwaltete Verschlüsselungsschlüssel (Customer Managed Encryption Keys, CMEK) verwendet werden, gilt eine der folgenden Bedingungen:

    • Für Speicherressourcen, die CMEK verwenden, wird derselbe Cloud KMS-Schlüssel verwendet.
    • Speicherressourcen, die CMEK verwenden, haben einen gemeinsamen Ancestor, in dem ein standardmäßiger Cloud KMS-Schlüssel angegeben ist, der sich am selben Standort wie die Speicherressourcen befindet.

    Wenn für eine oder mehrere Speicherressourcen CMEK verwendet wird, verschlüsselt das System temporäre Daten, die durch den Join generiert werden, entweder mit dem gemeinsamen Cloud KMS-Schlüssel oder mit dem standardmäßigen Cloud KMS-Schlüssel des übergeordneten Elements.

Angenommen, Sie haben zwei Ansichten, die sich am selben Speicherort befinden. Anschließend können Sie diese Ansichten zusammenführen, wenn eine der folgenden Bedingungen zutrifft:

  • Für die Speicherressourcen wird kein CMEK verwendet.
  • Eine Speicherressource verwendet CMEK, die andere nicht.
  • Beide Speicherressourcen verwenden CMEK und denselben Cloud KMS-Schlüssel.
  • Beide Speicherressourcen verwenden CMEK, aber unterschiedliche Schlüssel. Die Ressourcen haben jedoch einen gemeinsamen Ancestor, der einen standardmäßigen Cloud KMS-Schlüssel angibt, der sich am selben Ort wie die Speicherressourcen befindet.

    Angenommen, die Ressourcenhierarchie für einen Log-Bucket und einen Observability-Bucket umfasst dieselbe Organisation. Sie können Ansichten für diese Buckets verknüpfen, wenn Sie für diese Organisation die Standardressourceneinstellungen für Cloud Logging und für Observability-Buckets mit demselben standardmäßigen Cloud KMS-Schlüssel für den Speicherort konfiguriert haben.

Das Erstellen eines verknüpften BigQuery-Datasets schlägt mit einem Berechtigungsfehler fehl

Sie versuchen, ein verknüpftes BigQuery-Dataset zu erstellen, aber der Vorgang schlägt mit einem Fehler ähnlich dem folgenden fehl:

ERROR: (gcloud.beta.observability.buckets.datasets.links.create) {
  "code": 7,
  "message": "The caller does not have permission"
}

So beheben Sie das Problem:

  • Prüfen Sie, ob Ihnen die erforderlichen IAM-Rollen gewährt wurden. Eine Liste dieser Rollen finden Sie unter Verknüpfung für ein Dataset erstellen.

  • Prüfen Sie die Richtlinien Ihrer Organisation, um festzustellen, ob Einschränkungen für BigQuery-Datasets gelten. Angenommen, Sie erstellen eine benutzerdefinierte Einschränkung, für die BigQuery-Datasets an einem bestimmten Standort sein müssen. In diesem Fall können Sie nur ein verknüpftes BigQuery-Dataset für ein Observability-Dataset erstellen, das sich an diesem bestimmten Standort befindet.

Abfrage eines verknüpften BigQuery-Datasets schlägt fehl, weil das Dataset nicht gefunden wird

Sie senden eine Anfrage an ein verknüpftes BigQuery-Dataset und der Befehl schlägt mit einer Fehlermeldung wie „Dataset not found“ (Dataset nicht gefunden) fehl.

Versuchen Sie Folgendes, um dieses Problem zu beheben:

  • Prüfen Sie, ob der Pfad zum Dataset-Namen korrekt ist.
  • Führen Sie den folgenden gcloud beta observability buckets datasets links list-Befehl aus und prüfen Sie, ob in der Antwort Ihr verknüpftes BigQuery-Dataset aufgeführt ist.

    Wenn Ihr verknüpftes BigQuery-Dataset nicht aufgeführt ist, ist es verwaist. Um dieses Problem zu beheben, löschen Sie das verknüpfte BigQuery-Dataset.

    Ein Projekt kann ein verwaistes verknüpftes BigQuery-Dataset haben, wenn Sie IAM-Rollenzuweisungen für ein Dienstkonto widerrufen, das von Google Cloud Observability zum Verwalten von Daten verwendet wird, und dann einen Link in einem Observability-Dataset löschen. In diesem Fall kann Google Cloud Observability das verknüpfte BigQuery-Dataset nicht löschen.

Keine Daten auf der Seite Trace Explorer

Sie haben eine Anwendung, die Trace-Daten an Ihr Google Cloud -Projekt sendet. Wenn Sie jedoch die Seite Trace Explorer öffnen, werden keine Daten angezeigt.

Es gibt mehrere mögliche Gründe, warum Sie keine Trace-Daten sehen können:

  • Sie haben nicht die erforderlichen Berechtigungen zum Ansehen der Daten.
  • Trace-Spans wurden nicht an Ihr Projekt gesendet.
  • Ihre Anwendung hat nicht die erforderlichen Berechtigungen zum Schreiben von Tracedaten.
  • Die Spannen Ihrer Traces werden nicht gespeichert.

In den folgenden Unterabschnitten finden Sie Informationen zur Fehlerbehebung für die aufgeführten Fehlerszenarien.

Prüfen, ob Sie berechtigt sind, Trace-Daten aufzurufen

Wenn Sie Trace-Daten ansehen möchten, muss Ihnen die Rolle „Cloud Trace-Nutzer“ (roles/cloudtrace.user) zugewiesen sein.

Prüfen, ob Trace-Spans an Ihr Projekt gesendet werden

So prüfen Sie, ob Spans an Ihr Projekt gesendet werden:

  1. Aktivieren Sie die Cloud Trace API und die Telemetry API.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    APIs aktivieren

    Mit beiden APIs können Trace-Spans erfasst werden. Die Telemetry API wird jedoch empfohlen, da sie mit dem OpenTelemetry-Ökosystem kompatibel ist und großzügigere Limits als die Cloud Trace API hat.

  2. Rufen Sie die Seite Aktivierte APIs und Dienste auf und suchen Sie nach den Zeilen für die Cloud Trace API und die Telemetry API.

    Wenn die Anzahl der Anfragen für diese beiden APIs null ist, werden keine Trace-Daten an Ihr Projekt gesendet.

Prüfen Sie, ob Ihre Anwendung die erforderlichen Berechtigungen zum Schreiben von Trace-Spans hat.

So prüfen Sie, ob Ihre Anwendung die Berechtigung hat, Trace-Daten in Ihr Projekt zu schreiben: