In diesem Dokument erfahren Sie, wie Sie häufige Probleme bei der Verwendung von Cloud Trace beheben, 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 wurden, sind für die
Cloud Trace API nicht zugänglich. Wenn Sie beispielsweise versuchen, diese Traces aufzulisten, schlägt der Befehl mit dem Fehler
404 Not Foundfehl.
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-Dienstkonto nicht die erforderlichen Berechtigungen gewährt 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 System das Dienstkonto nicht erstellen.
So beheben Sie den Fehler:
- Rufen Sie in der Google Cloud Console die Seite APIs & Services auf und aktivieren Sie die Cloud Monitoring API:
-
Rufen Sie in der Google Cloud Console die Seite IAM auf:
Wenn Sie diese Seite über die Suchleiste suchen, wählen Sie das Ergebnis aus, dessen Zwischenüberschrift IAM &Admin lautet.
Führen Sie auf der Seite IAM folgende Schritte aus:
Wählen Sie Von Google bereitgestellte Rollenzuweisungen einschließen aus.
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, erstellt das System das Monitoring-Dienstkonto. Die Speicheraktion schlägt fehl, weil dieses Dienstkonto nicht die erforderlichen IAM-Rollen hat.
Weisen Sie dem Monitoring-Dienstkonto die folgenden Rollen zu:
- Monitoring-Dienst-Agent (
roles/monitoring.notificationServiceAgent) für Ihr Projekt. - BigQuery-Datenbetrachter (
roles/bigquery.dataViewer) für Ihr verknüpftes BigQuery-Dataset.
- Monitoring-Dienst-Agent (
Fehlermeldung, dass eine Ansicht nicht vorhanden ist
Sie geben eine SQL-Abfrage in den 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.
Prüfen Sie, ob die Syntax Ihrer Ansicht korrekt ist, um diesen Fehler zu beheben:
Prüfen Sie, ob der vollständig 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 anzeigen.
Wenn die Google Cloud Projekt-ID, der Standort, die Bucket-ID, die Dataset-ID oder die Ansichts-ID Punkte enthalten,
(.), prüfen Sie, ob das Feld in einzelne Graviszeichen eingeschlossen ist,(`).Wenn die ID von Ihr Google Cloud Projekt beispielsweise
example.com:bluebirdlautet, dann lautet dieFROMAnweisung wie folgt: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 wie der folgenden angezeigt:
Get started with Observability Analytics
Wenn Sie Observability Analytics verwenden möchten, klicken Sie im Fenster auf close Schließen.
Die vorherige Meldung wird angezeigt, wenn Sie keine Log-Buckets haben, für die ein Upgrade auf Observability Analytics durchgeführt wurde. Ihre Tracedaten werden jedoch nicht in einem Log-Bucket gespeichert.
Join von mehreren Ansichten schlägt fehl
Sie schreiben eine Abfrage, die mehrere Ansichten zusammenführt, aber die Abfrage wird als ungültig markiert.
Nicht alle Ansichten können zusammengeführt werden.
Für das Zusammenführen von Ansichten gelten die folgenden Einschränkungen:
-
Die Standorte der Ansichten erfüllen eine der folgenden Bedingungen:
- Alle Ansichten haben denselben Standort.
- Alle Ansichten befinden sich entweder am Standort
globaloderus.
-
Wenn für Speicherressourcen kundenverwaltete Verschlüsselungsschlüssel (Customer Managed Encryption Keys, CMEK) verwendet werden, eine der folgenden Bedingungen erfüllt sein:
- Für Speicherressourcen, die CMEK verwenden, wird derselbe Cloud KMS-Schlüssel verwendet.
- Speicherressourcen, die CMEK verwenden, haben einen gemeinsamen Vorfahren, und dieser Vorfahre gibt einen Standard Cloud KMS-Schlüssel an, 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 dem Standard-Cloud KMS-Schlüssel des Vorfahren.
Angenommen, Sie haben zwei Ansichten, die sich am selben Standort befinden. Dann können Sie diese Ansichten zusammenführen, wenn eine der folgenden Bedingungen erfüllt ist:
- Für die Speicherressourcen wird kein CMEK verwendet.
- Für eine Speicherressource wird CMEK verwendet, für die andere nicht.
- Für beide Speicherressourcen wird CMEK verwendet und beide verwenden denselben Cloud KMS-Schlüssel.
Für beide Speicherressourcen wird CMEK verwendet, aber sie verwenden unterschiedliche Schlüssel. Die Ressourcen haben jedoch einen gemeinsamen Vorfahren, der einen Standard-Cloud KMS-Schlüssel angibt, der sich am selben Standort wie den Speicherressourcen befindet.
Angenommen, die Ressourcenhierarchie für einen Log-Bucket und einen Bucket für die Beobachtbarkeit umfasst dieselbe Organisation. Sie können Ansichten für diese Buckets zusammenführen, wenn Sie für diese Organisation die Standardressourceneinstellungen für Cloud Logging und für Buckets für die Beobachtbarkeit mit demselben Standard-Cloud KMS-Schlüssel für den Speicherort konfiguriert haben.
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 zugewiesen wurden. Eine Liste dieser Rollen finden Sie unter Link zu einem 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, die erfordert, dass sich BigQuery-Datasets an einem bestimmten Standort befinden. In diesem Fall können Sie nur ein verknüpftes BigQuery-Dataset für ein Dataset für die Beobachtbarkeit erstellen, das sich an diesem bestimmten Standort befindet.
Keine Daten auf der Seite Trace Explorer
Sie haben eine Anwendung, die Tracedaten 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 Tracedaten sehen können:
- Sie haben nicht die Berechtigungen, die zum Ansehen der Daten erforderlich sind.
- Trace-Spans wurden nicht an Ihr Projekt gesendet.
- Ihre Anwendung hat nicht die Berechtigungen, die zum Schreiben von Tracedaten erforderlich sind.
- Ihre Trace-Spans werden nicht gespeichert.
In den folgenden Unterabschnitten finden Sie Informationen zur Fehlerbehebung für die aufgeführten Fehlerszenarien.
Prüfen, ob Sie die Berechtigung zum Ansehen von Tracedaten haben
Wenn Sie Tracedaten ansehen möchten, müssen Sie die
Rolle „Cloud Trace-Nutzer“ (roles/cloudtrace.user)haben.
Prüfen, ob Trace-Spans an Ihr Projekt gesendet werden
So prüfen Sie, ob Spans an Ihr Projekt gesendet werden:
-
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.Beide APIs können Trace-Spans aufnehmen. 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.
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 Tracedaten an Ihr Projekt gesendet.
Prüfen, ob Ihre Anwendung die erforderlichen Berechtigungen zum Schreiben von Trace-Spans hat
So prüfen Sie, ob Ihre Anwendung die Berechtigung zum Schreiben von Tracedaten in Ihr Projekt hat:
Rufen Sie die Seite Aktivierte APIs und Dienste auf, suchen Sie nach den Zeilen für die Cloud Trace API und die Telemetry API und prüfen Sie die Spalte Fehler.
Wenn in der Spalte Fehler für eine der beiden APIs ein Wert ungleich null angezeigt wird, treten Fehler beim Lesen oder Schreiben von Tracedaten über diese API auf. Wählen Sie die API aus, wählen Sie den Messwerte Tab aus und sehen Sie sich Fehler nach API-Methode an, um den Fehlertyp zu ermitteln:
Wenn Schreibvorgänge fehlschlagen, weisen Sie dem Dienstkonto, das Anmeldedaten bereitstellt, die folgenden Rollen zu:
- Cloud Trace API: Rolle „Cloud Trace-Agent“ (
roles/cloudtrace.agent). - Telemetry API: „Cloud Telemetry Trace Writer“ (
roles/telemetry.tracesWriter).
- Cloud Trace API: Rolle „Cloud Trace-Agent“ (
Prüfen, ob Ihre Tracedaten gespeichert sind
Trace-Spans werden in einem Bucket für die Beobachtbarkeit mit dem Namen _Trace gespeichert. Dieser Bucket
wird automatisch bereitgestellt, wenn Ihr Google Cloud Projekt Trace-Spans empfängt.
Es gibt jedoch mehrere Szenarien, in denen die Bereitstellung fehlschlägt.
So beheben Sie diesen Fehler:
- Google Cloud Console-Anleitung:
-
Rufen Sie in der Google Cloud Console die Seite
Trace Explorer auf:
Sie können diese Seite auch über die Suchleiste finden.
-
- Wenn ein Banner wie das folgende angezeigt wird, ist der Speicher für Ihre Tracedaten nicht bereitgestellt.
none {: .devsite-disable-click-to-copy} Trace storage is not initialized for this project. Enable trace storage to begin collecting trace data.Wenn Sie einen Bucket für die Beobachtbarkeit für Ihre Tracedaten bereitstellen möchten, rufen Sie das Banner auf und klicken Sie auf Aktivieren. Wenn Sie auf Aktivieren klicken, wird ein Span an Ihr Projekt gesendet. Nachdem das System den Span empfangen hat, wird der Befehl zum Erstellen eines Buckets für die Beobachtbarkeit mit dem Namen_Traceausgegeben. Dieser Vorgang kann einige Minuten dauern. Nach Abschluss der Bereitstellung wird ein Benachrichtigungsbanner angezeigt und Cloud Trace nimmt alle Tracedaten auf, die in der letzten Stunde gesendet wurden. Es kann einige Minuten dauern, bis die Daten im Trace Explorer angezeigt werden. Wenn Sie keine Daten sehen, aktualisieren Sie die Seite.Wenn der Befehl zum Aktivieren fehlschlägt, wird die folgende Meldung angezeigt:
Initializing trace storage has failed for an unexpected reason. Please file a support ticket for assistance.Wenn Sie den Fehler beheben möchten, wenden Sie sich an den Google Cloud Support und klicken Sie auf Ticket einreichen.
API-Anleitung:
- Buckets für die Beobachtbarkeit auflisten.
Wenn Ihr Projekt keinen
_Trace-Bucket hat, erstellen Sie einen.Weitere Informationen finden Sie unter Bucket für die Beobachtbarkeit erstellen.
Suche nach einem bestimmten Trace schlägt fehl
Sie geben eine Trace-ID auf der Seite Trace Explorer ein. Der Trace wird nicht gefunden und eine Meldung ähnlich der folgenden wird angezeigt:
The selected trace with ID abcde does not exist or is older than 30 days and has been deleted per our retention policy.
So beheben Sie diesen Fehler:
Prüfen Sie, ob sich der mit der Trace-ID verknüpfte Zeitstempel innerhalb des Aufbewahrungszeitraums befindet.
Ermitteln Sie das Google Cloud Projekt, in dem der Trace gespeichert ist, und prüfen Sie, ob in der Ressourcenauswahl in der Google Cloud Console dieses Projekt ausgewählt ist. Standardmäßig hat die Seite Trace Explorer nur Zugriff auf Tracedaten, die im ausgewählten Projekt gespeichert sind.
Ältere Daten fehlen auf der Seite Trace Explorer
Sie verwenden die Seite Trace Explorer und können aktuelle Daten ansehen. Wenn Sie jedoch die Zeitbereichsauswahl auf 30 Tage oder einen größeren Wert festlegen, werden die älteren Daten nicht angezeigt.
Auf der Seite Trace Explorer werden keine Daten für Zeiträume angezeigt, die länger als die Datenaufbewahrungsdauer von Cloud Trace sind, die 30 Tage beträgt.
Wenn die Zeitbereichsauswahl 30 Tage oder weniger beträgt, weisen die fehlenden Daten darauf hin, dass die Datenbank, die von der Seite Trace Explorer abgefragt wird, erst nach der Festlegung des Zeitbereichs erstellt wurde. Wenn Sie diesen Wert beispielsweise auf 20 Tage festlegen und nur die Daten der letzten 10 Tage sehen können, wurde die Datenbank vor 10 Tagen erstellt. Außerdem enthält diese Datenbank nur Traces, die an Ihr Google Cloud Projekt gesendet wurden, nachdem die Datenbank erstellt wurde.
Unvollständiger Trace wird angezeigt
Sie öffnen die Seite Trace Explorer und wählen einen Span aus, um ihn anzusehen. Im Flyout Details wird der Trace angezeigt, aber er ist nicht vollständig. Einige Spans werden nicht angezeigt.
Spans können aus folgenden Gründen fehlen:
Die Seite Trace Explorer durchsucht nicht alle Google Cloud Projekte , in denen Spandaten für den Trace gespeichert sind.
Ihre IAM-Rolle für ein Google Cloud Projekt, in dem Spandaten für den Trace gespeichert sind, enthält nicht die Berechtigungen, die zum Ansehen von Tracedaten erforderlich sind.
Es gibt ein Problem mit der Instrumentierung. Beispielsweise wurden nur einige Spans in einem Trace an Ihr Google Cloud Projekt gesendet.
So beheben Sie diese Probleme:
Legen Sie auf der Seite Trace Explorer das Element Bereich auf einen Tracebereich fest, in dem die Projekte aufgeführt sind, in denen die Spans für den ausgewählten Trace gespeichert sind.
Wenn kein Tracebereich vorhanden ist, der die im vorherigen Schritt ermittelten Projekte enthält, erstellen oder ändern Sie einen vorhandenen Tracebereich. Weitere Informationen finden Sie unter Tracebereiche erstellen und verwalten.
Prüfen Sie, ob Sie die Rolle „Cloud Trace-Nutzer“ (
roles/cloudtrace.user) für die Projekte haben, in denen die Spandaten gespeichert sind.
Sie haben nicht die erforderlichen Berechtigungen zum Ansehen von Tracedaten
Sie sehen die Seite Trace Explorer und die folgende Benachrichtigung wird angezeigt:
You don't have the required permissions to view trace data for one or more projects listed in the trace scope.
So beheben Sie dieses Problem:
- Maximieren Sie in der Symbolleiste das Element Bereich und ermitteln Sie den ausgewählten Tracebereich.
- Wählen Sie im Flyout Bereich eingrenzen die Option Bereiche verwalten aus.
- Suchen Sie den im ersten Schritt ermittelten Tracebereich und maximieren Sie die Details, um die Liste der Google Cloud Projekte aufzurufen.
- Prüfen Sie für jedes Google Cloud Projekt im Tracebereich, ob Sie
die Rolle „Cloud Trace-Nutzer“ (
roles/cloudtrace.user) haben. Wenn Sie diese Rolle für ein Projekt nicht haben, bitten Sie einen Administrator oder Projektinhaber, Ihnen diese Rolle zuzuweisen.
Regionenübergreifende Abfragen werden nicht unterstützt
Sie öffnen die Seite Trace Explorer und eine Meldung ähnlich der folgenden wird angezeigt:
Error loading chart data. Cross-regional queries are not supported. The selected scope comprises buckets residing in multiple locations: list of locations.
Die Fehlermeldung weist darauf hin, dass die Seite Trace Explorer eine Abfrage für Daten ausgeben muss, die an verschiedenen Standorten gespeichert sind.
So beheben Sie diesen Fehler:
Beschränken Sie die Tracedaten auf die Daten, die von Ihrem ausgewählten Projekt gespeichert werden:
- Rufen Sie die Symbolleiste der Seite Trace Explorer auf und maximieren Sie das Menü Bereich.
- Wählen Sie im Flyout Bereich eingrenzen die Option Aktuelles Projekt aus.
Wählen Sie einen Tracebereich aus, in dem Projekte aufgeführt sind, deren Daten am selben Standort gespeichert sind. Verwenden Sie die Optionen im Menü Bereich, um diese Änderung vorzunehmen.
Entfernen Sie aus dem ausgewählten Tracebereich die Projekte, deren Daten an einem anderen Standort als Ihr ausgewähltes Projekt gespeichert sind:
- Rufen Sie die Symbolleiste der Seite Trace Explorer auf und maximieren Sie das Menü Bereich.
- Wählen Sie im Flyout Bereich eingrenzen die Option Bereiche verwalten aus.
- Auf der Seite Tracebereiche können Sie jeden Tracebereich bearbeiten.
Führen Sie den Befehl zum Auflisten von Buckets für die Beobachtbarkeit aus, um den Speicherort Ihrer Tracedaten zu ermitteln. Geben Sie im Pfadparameter Ihr Projekt an und legen Sie für den LOCATION das Feld auf einen Bindestrich
(-)fest, der als Platzhalter fungiert.
Meldung „Fehlende Span-ID“ im Trace
Ihr Trace enthält die Meldung „Fehlende Span-ID“.
In Systemen für verteiltes Tracing sind unvollständige Traces zu erwarten. Ein Trace ist unvollständig, wenn ein Stichproben-Span einen Verweis auf einen anderen Span enthält, der nicht empfangen wurde. Der nicht aufgelöste Verweis kann folgende Ursachen haben:
- Der referenzierte Span wurde nicht als Stichprobe erfasst.
- Der referenzierte Span wurde als Stichprobe erfasst, aber noch nicht von Cloud Trace empfangen oder der Span wurde empfangen, aber nicht gespeichert.
Wenn Sie einen unvollständigen Trace ansehen, wird im Bereich mit den Trace-Details die Meldung „Fehlende Span-ID“ angezeigt.
Wenn Sie die Meldung „Fehlende Span-ID“ immer wieder sehen, versuchen Sie Folgendes:
Prüfen Sie für von Ihnen verwaltete Komponenten, ob sie das Flag des Headers
sampledberücksichtigen und weitergeben, wenn dieses Feld vorhanden ist. Diese Einstellung ist ein Hinweis für untergeordnete Komponenten, die Anfrage als Stichprobe zu erfassen. Weitere Informationen zu Trace-Headern finden Sie unter Protokolle für die Weitergabe von Kontext.Google Cloud Dienste berücksichtigen diesen Hinweis in der Regel. Sie begrenzen jedoch auch die Rate, mit der sie Tracedaten schreiben.
Wenn Sie Cloud Service Mesh verwenden, prüfen Sie, ob Sie die Anleitung zum Weitergeben des Trace-Kontexts für diese Konfigurationen befolgen. Die Anleitung für Cloud Service Mesh finden Sie unter Weitergabe von Trace-Kontext.
Log- und Tracedaten können nicht korreliert werden
Sie führen eine der folgenden Aktionen aus:
Sie sehen einen Trace-Span und möchten verknüpfte Logeinträge ansehen. Es werden jedoch entweder keine Logdaten aufgeführt oder wenn Sie die Seite Log-Explorer öffnen, werden keine Logeinträge angezeigt.
Sie sehen einen Logeintrag und möchten verknüpfte Trace-Spans ansehen. Wenn Sie jedoch die Optionen im Logeintrag verwenden, um die Seite Trace Explorer zu öffnen, werden keine Tracedaten angezeigt.
Konfigurieren Sie den Bereich für die Beobachtbarkeit, um diese Fehler zu beheben. In diesem Bereich wird angegeben, welche Ihrer Tracebereiche und Logbereiche verwendet werden sollen, wenn die entsprechenden Explorer-Seiten geöffnet werden. Weitere Informationen finden Sie unter Bereiche für die Beobachtbarkeit für Abfragen für mehrere Projekte konfigurieren.
Keine Tracedaten nach dem Aktualisieren der Go-App zur Verwendung von OpenTelemetry
Ihre Anwendung verwendet die Clientbibliothek zum Erfassen von Traces. Nachdem Sie Ihre Anwendung auf OpenTelemetry aktualisiert haben, werden keine Cloud Trace-Daten mehr angezeigt.
Da einige Cloud-Clientbibliotheken für Go in OpenCensus integriert sind, müssen Sie eine OpenCensus-Bridge verwenden. Weitere Informationen zum Problem, das durch die Bridge gelöst wird, finden Sie unter OpenCensus-Bridge.
Informationen zum Update der Cloud-Clientbibliotheken für Go finden Sie unter Problem 4237.