Редактор запросов Zipkin
В этом документе объясняется, как использовать редактор запросов Zipkin для запроса и визуализации трассировок. Вы можете искать трассировки по ID, просматривать доступные трассировки с помощью каскадного селектора служб и промежутков или загрузить файл трассировки JSON для визуализации.
Общую документацию по запросам к источникам данных в Grafana см. в разделе Запрос и преобразование данных.
Запрос по ID трассировки
Чтобы запросить конкретную трассировку по её ID:
- Выберите тип запроса TraceID.
- Введите ID трассировки в поле Trace ID.
- Нажмите Shift+Enter, чтобы выполнить запрос.
ID трассировок Zipkin — это шестнадцатеричные строки из 16 или 32 символов, например efe9cb8857f68c8f или 463ac35c9f6413ad48485a3953bb6124.
Вы также можете использовать
переменные шаблонов в поле ID трассировки. Например, ${traceId} заменяется текущим значением переменной при выполнении запроса.
Запрос по селектору трассировок
Вы можете просматривать и выбирать трассировки с помощью каскадного селектора Traces вместо ручного ввода ID трассировки. Это полезно, когда вы хотите исследовать трассировки, не зная конкретного ID трассировки.
Селектор трассировок имеет три уровня:
- Service: выберите интересующую вас службу, например
frontendилиapi-gateway. - Span: выберите конкретную операцию в выбранной службе, например
GET /api/users. - Trace: выберите конкретную трассировку, в которой произошла выбранная операция, представленную именем корневой операции и длительностью трассировки (например,
get /api [23 ms]).
Когда вы выбираете трассировку на третьем уровне, ID трассировки заполняется автоматически, и запрос выполняется.
Note
Селектор трассировок перечисляет трассировки в пределах текущего выбранного диапазона времени Explore. Если вы не видите ожидаемых трассировок, попробуйте расширить диапазон времени.
Загрузка файла трассировки JSON
Вы можете загрузить файл JSON, содержащий одну трассировку, и визуализировать её. Если в файле несколько трассировок, Grafana визуализирует первую трассировку.
Чтобы загрузить файл трассировки:
- Нажмите Import trace.
- Перетащите файл JSON или нажмите, чтобы выбрать файл.
Файл должен содержать массив JSON промежутков в формате промежутка Zipkin v2.
Пример трассировки с одним промежутком
[
{
"traceId": "efe9cb8857f68c8f",
"id": "efe9cb8857f68c8f",
"kind": "SERVER",
"name": "get /api",
"timestamp": 1627975249601797,
"duration": 23457,
"localEndpoint": { "serviceName": "backend", "ipv4": "127.0.0.1", "port": 9000 },
"tags": {
"http.method": "GET",
"http.path": "/api"
}
}
]
Пример трассировки с несколькими промежутками
Следующий пример показывает трассировку с родительским промежутком и дочерним промежутком, представляющую службу frontend, вызывающую службу backend:
[
{
"traceId": "efe9cb8857f68c8f",
"id": "efe9cb8857f68c8f",
"kind": "SERVER",
"name": "get /api",
"timestamp": 1627975249601797,
"duration": 23457,
"localEndpoint": { "serviceName": "frontend", "ipv4": "127.0.0.1", "port": 8080 },
"tags": {
"http.method": "GET",
"http.path": "/api",
"http.status_code": "200"
}
},
{
"traceId": "efe9cb8857f68c8f",
"parentId": "efe9cb8857f68c8f",
"id": "8608dc6ce5cafe8e",
"kind": "CLIENT",
"name": "get /api/data",
"timestamp": 1627975249602000,
"duration": 18200,
"localEndpoint": { "serviceName": "backend", "ipv4": "127.0.0.1", "port": 9000 },
"tags": {
"http.method": "GET",
"http.path": "/api/data",
"http.status_code": "200"
}
}
]
Просмотр сопоставления данных в интерфейсе трассировки
Аннотации Zipkin появляются в представлении трассировки как журналы со значением аннотации, отображаемым под ключом аннотации. Это позволяет просматривать события с временными метками, которые произошли во время промежутка, такие как попытки повтора или промахи кэша.
Фильтры промежутков
Используя фильтры промежутков, вы можете фильтровать промежутки в средстве просмотра временной шкалы трассировки. Чем больше фильтров вы добавляете, тем более конкретными становятся отфильтрованные промежутки.
Вы можете добавить один или несколько из следующих фильтров:
Чтобы показывать только совпавшие промежутки, включите Show matches only.
Примеры фильтров промежутков
- Найти медленные вызовы базы данных: установите Service name в вашу службу базы данных и минимум Duration в
100ms. - Найти ошибки: добавьте фильтр Tags для
error=trueилиhttp.status_code=500. - Изолировать конкретную службу: установите Service name и включите Show matches only, чтобы скрыть все остальные промежутки.
Ссылка на ID трассировки из журналов
Вы можете ссылаться на трассировки Zipkin из журналов в Loki, Elasticsearch, Splunk и других источниках данных журналов, настроив внутреннюю ссылку.
Чтобы настроить эту функцию, обратитесь к разделу Производные поля документации источника данных Loki или к разделу Ссылки на данные документации источника данных Elasticsearch или Splunk.
Ссылка на ID трассировки из метрик
Вы можете ссылаться на трассировки Zipkin из метрик в источниках данных Prometheus, настроив экземпляр (exemplar).
Чтобы настроить эту функцию, обратитесь к документации введение в экземпляры.
Устранение проблем с запросами
Если вы сталкиваетесь с проблемами с запросами, обратитесь к разделу Устранение неполадок источника данных Zipkin.