Tracer Query Language (TQL) — это язык запросов для фильтрации и выборки данных в Tracer.
TQL дополняет общие и расширенные фильтры для сбоев и даёт больше возможностей, чем префиксные фильтры (такие ка к !key:yourKey=yourValue), которые использовались в Tracer ранее.
TQL позволяет
AND и OR;Например, можно составить такое выражение:
text !~ "timeout" AND (sdk <= 18 OR sdk IN ("30", "31", "33")) AND (version NOT IN ("1.2.3", "2.0.0") OR versionCode NOT IN ("23400000", "56700000"))
AND (key("Key scenario [386]") != Control AND prop("buildBranch") != "develop")
В практическом смысле это значит, что вы можете
Поставьте курсор в поле ввода TQL и пользуйтесь подсказками.

Сейчас TQL предоставляет базовую функционально сть:
<поле> <оператор> <значение> AND <поле> <оператор> <значение> OR <поле> <оператор> <значение>
Позже в языке появится поддержка дополнительных полей и предикатов.
| Поле | Тип | Поддерживаемые операторы | Примеры использования |
|---|---|---|---|
| text | STRING | ~, !~ | text ~ "crash"text !~ "error" |
| version | VERSION | =, !=, IN, NOT IN | version = 1.2.3version IN (1.2.3, 2.0.0) |
| versionCode | INTEGER | =, !=, <, <=, >, >=, IN, NOT IN | versionCode = 123versionCode IN ("123", "124") |
| severity | ENUM | =, !=, <, <=, >, >=, IN, NOT IN | severity = CRASHseverity IN ("CRASH", "FATAL") |
| environment | STRING | =, !=, IN, NOT IN | environment = "production"environment IN ("default", "test") |
| status | ENUM | =, !=, IN, NOT IN | status = "Fixed"status IN ("Fixed", "Regressed") |
| vendor | STRING | =, !=, IN, NOT IN | vendor = "Google"vendor IN ("Google", "Apple") |
| device | STRING | =, !=, IN, NOT IN | device = "Samsung"device IN ("Samsung", "Pixel") |
| sdk | INTEGER | =, !=, <, <=, >, >=, IN, NOT IN | sdk < "10"sdk IN ("30", "31", "33") |
| issueKey | STRING | =, !=, IN, NOT IN | issueKey = "TRACER-123"issueKey IN ("TRACER", "BUG") |
| prop(propName) | STRING | =, !=, IN, NOT IN | prop("device") = "Pixel" |
| key(keyName) | STRING | =, !=, IN, NOT IN | key("errorCode") = "AUTHENTICATION" |
| component | STRING | =, !=, IN, NOT IN | component = "main"component IN ("Login", "Settings") |
| os | STRING | =, !=, IN, NOT IN | os = "macOS" |
Обратите внимание: если поле имеет тип ENUM, можно указывать для него значения только из списка допустимых. Посмотрите,
severity) допустимы;status) можно указывать.Посмотрите описание операторов:
| Оператор | Символ | Типы данных | Примечание |
|---|---|---|---|
| EQUALS | = | STRING, VERSION, ENUM, INTEGER | Равно |
| NOT EQUALS | != | STRING, VERSION, ENUM, INTEGER | Не равно |
| GREATER THAN | > | VERSION, ENUM, INTEGER | Больше |
| GREATER THAN EQUALS | >= | VERSION, ENUM, INTEGER | Больше или равно |
| LESS THAN | < | VERSION, ENUM, INTEGER | Меньше |
| LESS THAN EQUALS | <= | VERSION, ENUM, INTEGER | Меньше или равно |
| IN | IN | VERSION, ENUM, INTEGER | Входит в список |
| NOT IN | NOT IN | VERSION, ENUM, INTEGER | Не входит в список |
| CONTAINS | ~ | STRING | Содержит подстроку |
| DOES NOT CONTAIN | !~ | STRING | Не содержит подстроку |