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

Шпаргалка 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