Mithilfe von Trace-Filtern können Sie eine Reihe von Traces aus Cloud Trace auswählen. Sie haben folgende Möglichkeiten, Trace-Filter zu verwenden:
Als Filterparameter in einer Abfrage mit der API-Methode
list
.Als Anfragefilterparameter beim Erstellen eines Analyseberichts.
Als Feld Filter filter_list auf der Seite Trace Explorer. Informationen zum Erstellen und Ändern dieser Filter finden Sie unter Letzte Traces anzeigen.
Mit Filtern können Sie eine oder mehrere Bedingungen angeben, die erfüllt sein müssen, damit ein Trace angezeigt wird. Mit der Filtersyntax können Sie definieren, wann Übereinstimmungen bestehen oder wann es sich um Präfix-Tests handelt. Bei allen Übereinstimmungen wird zwischen Groß- und Kleinschreibung unterschieden.
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 erkennt beispielsweise Traces mit einer Latenz von mindestens einer Sekunde, 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 0
für "false" und 1
für "true", um Werte für boolesche Attribute anzugeben. Beispiel:
Client:0
Sonderzeichen
Setzen Sie den Wert in doppelte Anführungszeichen ("
), um nach einem Wert zu suchen, der ein Leerzeichen oder einen Doppelpunkt (:
) enthält. Beispiel:
label:"Notice: This value contains spaces and a colon"
Um in einem String in Anführungszeichen nach dem doppelten Anführungszeichen oder nach dem umgekehrten Schrägstrich (\
) zu suchen, müssen Sie das Zeichen mit einem umgekehrten Schrägstrich maskieren. Beispiel:
label:"Notice: This value contains spaces, a colon, a \"quote\", and a backslash (\\)"
Filtersyntax
In der folgenden Tabelle und an anderer Stelle auf dieser Seite bezieht sich NAME
auf den Namen eines Felds, während sich VALUE
auf den Wert eines Schlüssel/Wert-Paars bezieht. Die Strings _PREFIX
und _EXACT
sind visuelle Hinweise, ob ein Test ein Präfixtest oder eine genaue Übereinstimmung ist. root:[NAME_PREFIX]
bedeutet beispielsweise, dass der Name des Haupt-Spans mit [NAME_PREFIX]
beginnen muss.
In folgender Tabelle sind die Syntaxfilter aufgeführt, die in Cloud Trace verwendet werden:
Trace API- Anfragefilter auf der Seite Analyseberichte |
Filter auf der Seite Trace Explorer |
---|---|
root:[NAME_PREFIX] |
RootSpan:[NAME_PREFIX] |
+root:[NAME_EXACT] |
RootSpan:+[NAME_EXACT] |
span:[NAME_PREFIX] |
SpanName:[NAME_PREFIX] |
+span:[NAME_EXACT] |
SpanName:+[NAME_EXACT] |
[NAME_PREFIX] |
RootSpan:[NAME_PREFIX] |
label:[LABEL_KEY] |
HasLabel:[LABEL_KEY] |
[LABEL_KEY]:[VALUE_PREFIX] |
[LABEL_KEY]:[VALUE_PREFIX] * |
+[LABEL_KEY]:[VALUE_EXACT] |
[LABEL_KEY]:+[VALUE] * |
^[LABEL_KEY]:[VALUE_PREFIX] |
[LABEL_KEY]:^[VALUE_PREFIX] * |
+^[LABEL_KEY]:[VALUE_EXACT] |
[LABEL_KEY]:^+[VALUE_EXACT] *, † |
method:[VALUE_PREFIX] |
Method:[VALUE_PREFIX] |
latency:10ms |
MinLatency:10ms |
url:[VALUE_PREFIX] |
URL:[VALUE_PREFIX] |
* Verwenden Sie nicht die folgenden Trace-Keywords als Labelschlüssel: root
, span
, label
, method
, latency
und url
. Traces mit diesen Labelschlüsseln können nicht abgefragt werden.
* In der Trace-Anzeige wird die Annotation +^
in ^+
konvertiert, wenn Sie die Eingabetaste drücken.
Der Rest dieser Seite enthält eine Beschreibung für Filter zur Verwendung mit der Trace API und für den Anfragefilter auf der Seite Analyseberichte. Wenn Sie das Feld Filter auf der Seite Trace Explorer verwenden, können Sie die Zuordnung in der vorherigen Tabelle verwenden, um einen entsprechenden Ausdruck zu erstellen.
Beispiele für Anfragefilter
Im Folgenden werden die Filterbedingungen 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 in dem Trace muss größer oder gleich [DURATION] sein. Die Dauer wird als ganze Zahl gefolgt von einer Einheit angegeben:
s
für Sekunden,ms
für Millisekunden oderns
für Nanosekunden. Wenn es kein Einheitenbezeichner gibt, sind die Einheiten Millisekunden. Zum Beispiel sind die folgenden vier Werte für die Dauer 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 stimmt beispielsweise mit Traces überein, deren App Engine-Version mit
"2017"
beginnt.g.co/gae/app/module_version:2017
+[LABEL_KEY]:[VALUE_EXACT]
Der Trace muss genau den für das Label angegebenen Schlüssel und Wert enthalten. Beispiel:
+g.co/gae/app/module_version:201750925t173233.387410594824284458
method:[VALUE_PREFIX]
Die Syntax ist ein Kurzbefehl für den Labeltest
/http/method:[VALUE_PREFIX]
.+method:[VALUE_EXACT]
Die Syntax ist ein Kurzbefehl für den Labeltest
+/http/method:[VALUE_EXACT]
.url:[VALUE_PREFIX]
Diese Syntax ist ein Kurzbefehl für den Labeltest
/http/url:[VALUE_PREFIX]
.+url:[VALUE_EXACT]
Die Syntax ist ein Kurzbefehl für den Labeltest
+/http/url:[VALUE_EXACT]
.
Beispiele für Haupt-Span-Suchanfragen
Wenn Sie den Suchbegriff auf den Haupt-Span beschränken möchten, fügen Sie vor dem Suchbegriff und nach dem optionalen +
ein (^
) ein. Wenn Sie im Feld Filter auf der Seite Trace Explorer die Annotation +^
hinzufügen, wird sie beim Drücken der Eingabetaste in ^+
konvertiert.
Im Folgenden finden Sie einige Suchanfragen, die nur für den Haupt-Span gelten, und deren Äquivalenzen:
^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]
.
Durch Erstellen einer Abfrage mit gemischten Begriffen kann die Suche weiter angepasst werden. Beispiel:
+^url:/main /images method:200
Gleicht Traces ab, wenn das Label /http/url
des Haupt-Spans genau „/main“ ist, dem Namen des Haupt-Spans das Präfix /images
vorangestellt wird und das Label /http/method
jedes Spans auf „200“ gesetzt ist.
Fehlerbehebung
Dieser Abschnitt enthält Informationen zur Fehlerbehebung.
Beeinträchtigte Leistung
Wenn Ihr Trace-Filter komplex ist, dauert seine Ausführung länger und überschreitet möglicherweise das Zeitlimit. Vereinfachen Sie den Filter, um dies zu vermeiden.
Keine Ergebnisse
Prüfen Sie Folgendes, wenn Ihr Filter keine Traces zurückgibt:
Stellen Sie sicher, dass der Filter außer den Trennzeichen zwischen den Vergleichen keine weiteren Leerzeichen enthält.
Prüfen Sie die Groß-/Kleinschreibung und die Rechtschreibung aller Wörter im Filter. Wenn Sie beispielsweise einen Schlüsselbegriff wie
method:GET
falsch schreiben, wird der Filter alslabel:method:GET
interpretiert, was mit keinem Trace übereinstimmt.Wenn Sie die Filterbedingungen einzeln testen möchten, verwenden Sie den Trace Listen-Filter oder den API Explorer. Wenn eine der Bedingungen kein Ergebnis liefert, ist diese Bedingung möglicherweise das Problem.