Filtros do Cloud Trace

Use filtros de trace para selecionar um conjunto de traces do Cloud Trace. Você pode fazer isso da seguinte forma:

  • Como o parâmetro de filtro em uma consulta usando o método de API list.

  • Como o parâmetro do filtro Solicitação ao criar um relatório de análise.

  • Como o campo Filtro na página Lista de traces. Para informações sobre como criar e modificar esses filtros, consulte Filtros.

Com os filtros, é possível especificar uma ou mais condições que precisam ser atendidas para que um trace seja exibido. A sintaxe do filtro permite definir quando as correspondências são exatas ou quando são testes de prefixo. Todas as correspondências diferenciam maiúsculas de minúsculas.

Visão geral do filtro

Os filtros de traces consistem em uma sequência de comparações denominada termos. Os traces precisam corresponder a todos os termos no filtro a serem selecionados. Por exemplo, o filtro a seguir corresponde a traces com latência de um segundo ou mais e que contêm um período chamado /modules.GetNumInstances:

+span:/modules.GetNumInstances latency:1s

Todas as comparações de string diferenciam maiúsculas e minúsculas.

Atributos booleanos

Se quiser especificar valores para atributos booleanos, use 0 para falso e 1 para verdadeiro. Por exemplo:

Client:0

Caracteres especiais

Para procurar um valor que contenha um espaço ou o caractere de dois pontos (:), coloque-o entre aspas duplas ("). Por exemplo:

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

Para procurar o caractere de aspas duplas ou de barra invertida (\) dentro de uma string entre aspas, faça o escape do caractere com uma barra invertida. Por exemplo:

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

Sintaxe do filtro

Na tabela a seguir e em outros lugares nesta página, NAME refere-se ao nome de um campo, enquanto VALUE refere-se ao valor de um par de chave-valor. As strings _PREFIX e _EXACT são indicações visuais de se um teste é um prefixo ou uma correspondência exata. Por exemplo, root:[NAME_PREFIX] significa que o nome do período raiz precisa começar com [NAME_PREFIX].

A tabela a seguir lista a sintaxe usada nos filtros do Cloud Trace:

API Trace
Filtro de solicitações no Relatórios de análise página
Filtro na página Lista de traces
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:[LABEL_KEY]:[VALUE_PREFIX]*
+[LABEL_KEY]: [VALUE_EXACT] Label:[LABEL_KEY]:+[VALUE]*
^[LABEL_KEY]: [VALUE_PREFIX] Label:[LABEL_KEY]:^[VALUE_PREFIX]*
+^[LABEL_KEY]: [VALUE_EXACT] Label:[LABEL_KEY]:^+[VALUE_EXACT]*, †
method:[VALUE_PREFIX] LABEL:method:[VALUE_PREFIX]
latency:10ms MinLatency:10ms
url:[VALUE_PREFIX] URL:[VALUE_PREFIX]

* Não use as seguintes palavras-chave do Trace como chaves de rótulo: root, span, label, method, latency e url. Não é possível consultar traces com essas chaves de rótulo.
Na página Lista de trace, a anotação +^ é convertida em ^+ quando você pressiona Digite.

O restante desta página contém uma descrição para filtros ao usar a API Trace e o Filtro de solicitação na página Relatórios de análise. Se você estiver usando o campo Filtro na página Lista de traces, poderá usar o mapeamento na tabela anterior para criar uma expressão equivalente.

Exemplos de filtros de solicitação

Os termos do filtro estão listados abaixo:

root:[NAME_PREFIX]

O nome do período raiz do trace precisa começar com [NAME_PREFIX]. Por exemplo, o filtro a seguir corresponde a um trace chamado "/_ah/background", mas não a um "/_ahx/background":

root:/_ah/
+root:[NAME]

O nome do período raiz do trace precisa ser exatamente [NAME]. Exemplo:

+root:/_ah/background
[NAME_PREFIX]

Essa sintaxe é um atalho para root:[NAME_PREFIX].

+[NAME]

Essa sintaxe é um atalho para +root:[NAME].

span:[NAME_PREFIX]

O trace precisa ter pelo menos um intervalo cujo nome comece com [NAME_PREFIX]. Por exemplo:

span:/modules.
+span:[NAME]

O trace precisa ter pelo menos um espaço cujo nome seja exatamente [NAME]. Por exemplo,

span:/modules.GetNumInstances
latency:[DURATION]

O trace precisa ter uma latência geral maior ou igual a [DURATION]. A duração é expressa como um número inteiro seguido por um especificador de unidades: s para segundos, ms para milissegundos ou ns para nanossegundos. Se não houver um especificador de unidade, as unidades serão milissegundos. Por exemplo, as quatro durações a seguir são iguais:

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

O trace precisa conter exatamente a chave de rótulo especificada. O valor do rótulo (se houver) não importa. Por exemplo:

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

O trace precisa conter exatamente a chave de rótulo especificada, e o valor do marcador precisa começar com [VALUE_PREFIX]. Por exemplo, o termo a seguir corresponde a traces cuja versão do App Engine começa com "2017".

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

O trace precisa conter exatamente a chave de rótulo e o valor especificados. Por exemplo:

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

Essa sintaxe é um atalho para o teste de rótulo, /http/method:[VALUE_PREFIX].

+method:[VALUE_EXACT]

Essa sintaxe é um atalho para o teste de rótulo, +/http/method:[VALUE_EXACT].

url:[VALUE_PREFIX]

Essa sintaxe é um atalho para o teste de rótulo, /http/url:[VALUE_PREFIX].

+url:[VALUE_EXACT]

Essa sintaxe é um atalho para o teste de rótulo, +/http/url:[VALUE_EXACT].

Exemplos de pesquisa de período raiz

Para restringir o termo de pesquisa apenas ao período raiz, adicione um (^) antes de um termo de pesquisa e depois do opcional (+). No campo Filtro na página Lista de traces, se você adicionar a anotação +^, ela será convertida em ^+ quando você pressionar Enter.

Veja a seguir alguns termos de pesquisa somente com o período raiz e suas equivalências:

^label:[LABEL_KEY]
Esta é uma pesquisa de período raiz para label:[LABEL_KEY].
^[LABEL_KEY]:[VALUE_PREFIX]
Esta é uma pesquisa de período raiz para [LABEL_KEY]:[VALUE_PREFIX].
+^[LABEL_KEY]:[VALUE]
Esta é uma pesquisa de período raiz para +[LABEL_KEY]:[VALUE].
^method:[VALUE_PREFIX]
Esta é uma pesquisa de período raiz para method:[VALUE_PREFIX].
+^method:[VALUE]
Esta é uma pesquisa de período raiz para +method:[VALUE].
^url:[VALUE_PREFIX]
Esta é uma pesquisa de período raiz para url:[VALUE_PREFIX].
+^url:[VALUE]
Esta é uma pesquisa de período raiz para +url:[VALUE].
^span:[NAME_PREFIX]
É equivalente a root:[NAME_PREFIX].
+^span:[NAME]
É equivalente a +root:[NAME].

Ao criar uma consulta com termos mistos, a pesquisa pode ser ainda mais personalizada. Por exemplo:

    +^url:/main /images method:200

Corresponde a traces quando o rótulo do período raiz /http/url é exatamente "/main", o nome do período raiz tem o prefixo /images e qualquer período tem o valor 200 para o rótulo /http/method.

Resolver problemas

Baixo desempenho

Se o filtro de trace for complicado, ele levará mais tempo para ser executado e poderá expirar. Para melhorar o desempenho, simplifique o filtro.

Nenhum resultado

Se o filtro não retornar nenhum trace, verifique o seguinte:

  • Verifique se não existem espaços no filtro, exceto os que separam as comparações.

  • Verifique se as letras maiúsculas e minúsculas e a ortografia de todas as palavras no filtro estão corretas. Por exemplo, se você digitar incorretamente uma palavra-chave como method:GET, o filtro será interpretado como label:method:GET, que não corresponde a nenhum trace.

  • Para testar os termos de filtro um de cada vez, use o filtro "Lista de traces" ou o API Explorer. Se um dos termos não retornar resultados, o problema poderá estar nele.