Перейти к содержанию

Шпаргалка TraceQL

TraceQL — язык запросов трейсов в Tempo. Позволяет выбирать спаны по атрибутам, строить структурный поиск и агрегации.

Базовый поиск

{ .service.name = "api-gw" }

Все трейсы, в которых атрибут .service.name равен api-gw.

Фильтры по атрибутам

{ "status" = "error" }
{ duration > 2s }
{ .http.method = "POST" }
{ .http.status_code >= 400 }

Строковые атрибуты в кавычках, числовые — без.

Регулярные выражения на атрибутах

{ name =~ "api-.*" }
{ .http.url =~ ".*search.*" }

Вложенные/родительские фильтры

{ parent:span.name = "db:query" }

Родительский спан (тот, что выше по дереву трейса) с именем db:query. Удобно для поиска первопричины: какой внешний вызов вызвал сбой.

Комбинация условий для спана

{ .service = "db" && .name = "query" }

Оба условия должны выполниться для выбранного спана: сервис db И имя операции query.

Поиск по ресурсу

{ resource.service.name = "payment" && .http.status_code = 500 }

Агрегации (Tempo 2.5+)

{ .name = "db:query" } | rate()
{ .name = "db:query" } | count_over_time()

Распределение частоты появления выполняемых спанов.


Далее: Регулярные выражения в Grafana