Шпаргалка 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()
Распределение частоты появления выполняемых спанов.