Cloud Trace-Filter

Mit Cloud Trace-Filtern können Sie die Trace API-Methode list abfragen, um nur Traces abzurufen, die bestimmten Kriterien entsprechen, z. B. Spannenname, Mindestlatenz, HTTP-Attribute oder Labels.

Diese Filterausdrücke gelten nicht für die Seite Trace Explorer in der Google Cloud Console. Im Trace-Explorer können Sie Traces filtern, indem Sie die vordefinierten Filter im Bereich Span-Filter oder die Filterleiste verwenden. Weitere Informationen finden Sie unter Traces finden und ansehen.

Filterübersicht

Trace-Filter bestehen aus einer Reihe von Vergleichen, die als Bedingungen bezeichnet werden. Traces müssen mit allen Bedingungen in dem ausgewählten Filter übereinstimmen. Der folgende Filter entspricht beispielsweise Traces mit einer Latenz von einer Sekunde oder mehr, die einen Span mit dem Namen /modules.GetNumInstances enthalten:

+span:/modules.GetNumInstances latency:1s

Bei allen Stringvergleichen wird die Groß-/Kleinschreibung beachtet.

Boolesche Attribute

Verwenden Sie false für „false“ und true für „true“, um Werte für boolesche Attribute anzugeben:

Client:true

Sonderzeichen

Einfache Werte, die dem regulären Ausdruck [a-zA-Z0-9./_][a-zA-Z0-9./_-]* entsprechen, können ohne Anführungszeichen angegeben werden:

environment:production
path:/index.html
error_code:200

Werte, die andere Zeichen, einschließlich Leerzeichen, enthalten, müssen in doppelte Anführungszeichen (") gesetzt werden:

my-label:"Notice: This value contains spaces and a colon"

Wenn Sie in einem String in Anführungszeichen nach dem doppelten Anführungszeichen oder dem Backslash-Zeichen (\) suchen möchten, maskieren Sie das Zeichen mit einem Backslash:

my-label:"Notice: This value contains spaces, a colon, a \"quote\", and a backslash (\\)"

Filtersyntax

Auf dieser Seite bezieht sich NAME auf den Namen eines Felds und VALUE auf den Wert eines Schlüssel/Wert-Paars. Die Strings _PREFIX und _EXACT geben visuell an, ob es sich bei einem Test um einen Präfix- oder einen Exact Match-Test handelt. root:[NAME_PREFIX] bedeutet beispielsweise, dass der Name des Haupt-Spans mit [NAME_PREFIX] beginnen muss.

Im Rest dieses Dokuments wird die Filtersyntax für die Trace API beschrieben.

Beispiele für Anfragefilter

In der folgenden Liste werden die Filterbegriffe beschrieben:

root:[NAME_PREFIX]

Der Name des Haupt-Spans in dem Trace muss mit [NAME_PREFIX] beginnen. Der folgende Filter stimmt beispielsweise mit einem Trace namens "/_ah/background" überein, aber nicht mit einem namens "/_ahx/background":

root:/_ah/
+root:[NAME]

Der Name des Haupt-Spans in dem Trace muss genau [NAME] sein. Beispiel:

+root:/_ah/background
[NAME_PREFIX]

Diese Syntax ist ein Kurzbefehl für root:[NAME_PREFIX].

+[NAME]

Diese Syntax ist ein Kurzbefehl für +root:[NAME].

span:[NAME_PREFIX]

Die Trace muss mindestens einen Span enthalten, dessen Name mit [NAME_PREFIX] beginnt. Beispiel:

span:/modules.
+span:[NAME]

Die Trace muss mindestens einen Span enthalten, dessen Name genau mit [NAME] übereinstimmt. Beispiel:

+span:/modules.GetNumInstances
latency:[DURATION]

Die Gesamtlatenz des Traces muss größer oder gleich [DURATION] sein. Die Dauer wird als Ganzzahl gefolgt von einer Einheit angegeben: s für Sekunden, ms für Millisekunden oder ns für Nanosekunden. Wenn es kein Einheitenbezeichner gibt, sind die Einheiten Millisekunden. Die folgenden vier Zeiträume sind beispielsweise identisch:

12s 12000ms 12000000ns 12000
label:[LABEL_KEY]

Der Trace muss genau den festgelegten Labelschlüssel enthalten. Der Wert des Labels (falls vorhanden) spielt keine Rolle. Beispiel:

label:/http/url
[LABEL_KEY]:[VALUE_PREFIX]

Der Trace muss genau den angegebenen Labelschlüssel enthalten und der Wert des Labels muss mit [VALUE_PREFIX] beginnen. Der folgende Begriff entspricht beispielsweise Traces, deren App Engine-Version mit "2017" beginnt:

g.co/gae/app/module_version:2017
+[LABEL_KEY]:[VALUE_EXACT]

Der Trace muss den angegebenen Label-Schlüssel und -Wert genau enthalten. Beispiel:

+g.co/gae/app/module_version:201750925t173233.387410594824284458
method:[VALUE_PREFIX]

Diese Syntax ist eine Abkürzung für den Labeltest /http/method:[VALUE_PREFIX].

+method:[VALUE_EXACT]

Diese Syntax ist eine Abkürzung für den Labeltest +/http/method:[VALUE_EXACT].

url:[VALUE_PREFIX]

Diese Syntax ist eine Abkürzung für den Labeltest /http/url:[VALUE_PREFIX].

+url:[VALUE_EXACT]

Diese Syntax ist eine Abkürzung für den Labeltest +/http/url:[VALUE_EXACT].

Beispiele für Haupt-Span-Suchanfragen

Wenn Sie den Suchbegriff auf den Stamm-Span beschränken möchten, fügen Sie vor dem Suchbegriff und nach dem optionalen Pluszeichen (+) ein Caret-Zeichen (^) ein. Wenn Sie im Feld Filter auf der Seite Trace Explorer die Anmerkung +^ hinzufügen, wird sie in ^+ umgewandelt, wenn Sie die Eingabetaste drücken.

In der folgenden Liste finden Sie einige Suchbegriffe, die nur den Root-Zeitraum betreffen, und ihre Entsprechungen:

^label:[LABEL_KEY]
Dies ist eine Haupt-Span-Suche nach label:[LABEL_KEY].
^[LABEL_KEY]:[VALUE_PREFIX]
Dies ist eine Haupt-Span-Suche nach [LABEL_KEY]:[VALUE_PREFIX].
+^[LABEL_KEY]:[VALUE]
Dies ist eine Haupt-Span-Suche nach +[LABEL_KEY]:[VALUE].
^method:[VALUE_PREFIX]
Dies ist eine Haupt-Span-Suche nach method:[VALUE_PREFIX].
+^method:[VALUE]
Dies ist eine Haupt-Span-Suche nach +method:[VALUE].
^url:[VALUE_PREFIX]
Dies ist eine Haupt-Span-Suche nach url:[VALUE_PREFIX].
+^url:[VALUE]
Dies ist eine Haupt-Span-Suche nach +url:[VALUE].
^span:[NAME_PREFIX]
Dies entspricht root:[NAME_PREFIX].
+^span:[NAME]
Dies entspricht +root:[NAME].

Sie können Ihre Suche weiter anpassen, indem Sie eine Abfrage mit gemischten Begriffen erstellen. Beispiel:

+^url:/main /images method:200

entspricht Traces, wenn das Label des Stamm-Spans /http/url genau „/main“ ist, der Name des Stamm-Spans mit /images beginnt und ein beliebiger Span das Label /http/method mit dem Wert 200 hat.

Fehlerbehebung

In den folgenden Abschnitten wird beschrieben, wie Sie häufige Probleme mit Trace-Filtern beheben können.

Beeinträchtigte Leistung

Wenn Ihr Trace-Filter kompliziert ist, dauert die Ausführung länger und es kann zu einem Zeitüberschreitungsfehler kommen. Vereinfachen Sie den Filter, um dies zu vermeiden.

Keine Ergebnisse

Wenn Ihr Filter keine Spuren zurückgibt, prüfen Sie Folgendes:

  • Stellen Sie sicher, dass der Filter außer den Trennzeichen zwischen den Vergleichen keine weiteren Leerzeichen enthält.

  • Achten Sie darauf, dass die Groß- und Kleinschreibung und die Rechtschreibung aller Wörter im Filter korrekt sind. Wenn Sie beispielsweise ein Keyword wie method:GET falsch schreiben, wird der Filter als label:method:GET interpretiert, was mit keinen Traces übereinstimmt.

  • Wenn Sie die Filterbegriffe einzeln testen möchten, rufen Sie die API-Methode list auf und verwenden Sie dann den APIs Explorer. Wenn für einen der Begriffe keine Ergebnisse zurückgegeben werden, ist dieser Begriff möglicherweise der Grund dafür, dass keine Daten zurückgegeben werden.

    Der APIs Explorer ist geöffnet, wenn auf der Seite ein Bereich mit dem Titel Diese Methode testen angezeigt wird. Klicken Sie bei Bedarf auf Ausprobieren, um den APIs Explorer zu öffnen.