Настройка источника данных Jaeger
В этом документе объясняется, как настроить источник данных Jaeger в Grafana, включая параметры подключения, аутентификацию, сопоставление трассировок и провижининг.
Прежде чем начать
Перед настройкой источника данных убедитесь, что у вас есть:
- Разрешения Grafana: роль администратора организации
- Экземпляр Jaeger: запущенный экземпляр Jaeger с доступной конечной точкой запросов (по умолчанию:
http://localhost:16686)
Добавление источника данных
Чтобы добавить источник данных Jaeger:
- В левом боковом меню нажмите Connections.
- Нажмите Add new connection.
- Введите
Jaegerв строке поиска. - Выберите Jaeger.
- Нажмите Add new data source.
Параметры подключения
Настройте базовые параметры подключения для источника данных.
Аутентификация
Источник данных Jaeger поддерживает следующие методы аутентификации.
Базовая аутентификация
Чтобы использовать базовую аутентификацию:
- Выберите Basic auth в раскрывающемся списке.
- Введите имя пользователя в поле User.
- Введите пароль в поле Password.
Передача удостоверения OAuth
Выберите Forward OAuth identity в раскрывающемся списке, чтобы передавать вышестоящее удостоверение OAuth пользователя в источник данных. Это полезно, когда Jaeger находится за прокси-сервером аутентификации.
Пользовательские заголовки
Вы можете добавлять пользовательские HTTP-заголовки к запросам, отправляемым экземпляру Jaeger. Используйте это для передачи токенов авторизации или других необходимых заголовков.
Чтобы добавить пользовательские заголовки, разверните раздел Additional settings и настройте их в разделе Custom HTTP headers.
Настройка TLS
Чтобы настроить TLS/mTLS для подключения, разверните раздел Additional settings и настройте следующие параметры:
Private data source connect
Private data source connect — только для пользователей Grafana Cloud.
Note
Этот раздел отображается только тогда, когда в экземпляре Grafana включена функция защищённого SOCKS-прокси.
Private data source connect, или PDC, позволяет установить приватное защищённое соединение между экземпляром, или стеком, Grafana Cloud и источниками данных, защищёнными внутри частной сети. Нажмите раскрывающийся список, чтобы найти URL для PDC. Дополнительные сведения о Grafana PDC см. в разделах Private data source connect (PDC) и Configure Grafana private data source connect (PDC) с инструкциями по настройке подключения PDC.
Нажмите Manage private data source connect, чтобы открыть страницу подключения PDC и просмотреть сведения о конфигурации.
Сопоставление трассировок с журналами
Параметр Trace to logs настраивает функцию сопоставления трассировок с журналами, которая связывает спаны трассировок со связанными записями журналов.
Note
Если вы используете Grafana Cloud, откройте обращение в службу поддержки в Cloud Portal, чтобы получить доступ к этой функции.
Существует два способа настроить сопоставление трассировок с журналами:
- Простая конфигурация: используйте запрос по умолчанию с фильтрацией по тегам.
- Пользовательский запрос: напишите запрос с использованием синтаксиса переменных шаблонов для подстановки значений из трассировки или спана.
Использование простой конфигурации
- Выберите целевой источник данных в раскрывающемся списке.
- Задайте Span start time shift и Span end time shift, чтобы расширить или сместить диапазон времени, если временные метки журналов не совпадают точно с временными метками спанов.
- Настройте Tags для использования в запросе к журналам. Теги должны присутствовать в атрибутах спана или ресурсах, чтобы ссылка появилась. Вы можете переименовать теги, если целевой источник данных не допускает точки в метках (например, переименуйте
http.statusвhttp_status). - При необходимости включите Filter by trace ID или Filter by span ID, чтобы дополнительно отфильтровать журналы.
Настройка пользовательского запроса
- Выберите целевой источник данных в раскрывающемся списке.
- Задайте Span start time shift и Span end time shift.
- При необходимости настройте Tags для сопоставления. Используйте переменную
${__tags}в пользовательском запросе для подстановки сопоставленных тегов. Если вы не сопоставляете теги, вы всё равно можете ссылаться на любой тег спана напрямую, напримерmethod="${__span.tags.method}". - Включите Use custom query.
- Напишите пользовательский запрос с использованием переменных, перечисленных в этой таблице. Ссылка появляется только тогда, когда все переменные имеют непустые значения.
Переменные для пользовательских запросов
Чтобы использовать переменную, оберните её в ${}. Например: ${__span.name}.
Параметры сопоставления трассировок с журналами
Сопоставление трассировок с метриками
Параметр Trace to metrics позволяет связывать спаны трассировок со связанными запросами к метрикам.
Чтобы настроить сопоставление трассировок с метриками:
- Выберите целевой источник данных метрик в раскрывающемся списке.
- Настройте Tags для сопоставления атрибутов спана с именами меток метрик. Например, сопоставьте
k8s.podсpod. - Создайте связанные запросы, используя ключевое слово
$__tagsдля подстановки сопоставленных тегов.
Каждый связанный запрос состоит из:
- Link Label: (необязательно) Описательная метка для связанного запроса.
- Query: Запрос, выполняемый при переходе от трассировки к источнику данных метрик. Используйте
$__tagsдля подстановки тегов. Например, запросrequests_total{$__tags}с тегамиk8s.pod=podиclusterдаётrequests_total{pod="nginx-554b9", cluster="us-east-1"}.
Граф узлов
Параметр Node graph находится в разделе Additional settings, который по умолчанию свёрнут. Разверните раздел Additional settings на странице настройки источника данных, чтобы получить к нему доступ.
Параметр Node graph включает визуализацию Node Graph, которая отключена по умолчанию.
При включении Grafana отображает Node Graph над представлением трассировки, показывая связи между сервисами в трассировке.
Панель спанов
Параметр Span bar находится в разделе Additional settings, который по умолчанию свёрнут. Разверните раздел Additional settings на странице настройки источника данных, чтобы получить к нему доступ.
Параметр Span bar управляет дополнительной информацией, отображаемой в строке панели спанов представления трассировки.
Временные параметры идентификатора трассировки
Параметр Query Trace by ID with Time Params находится в разделе Additional settings, который по умолчанию свёрнут. Разверните раздел Additional settings на странице настройки источника данных, чтобы получить к нему доступ.
Переключатель Enable Time Parameters управляет тем, отправляет ли Grafana параметры времени start и end при запросе трассировки по идентификатору. Включите это, если ваш экземпляр Jaeger выигрывает от поиска трассировок с ограничением по времени.
Проверка подключения
Нажмите Save & test, чтобы проверить подключение к источнику данных. Успешная проверка отображает сообщение Data source is working.
Если проверка не удалась, обратитесь к разделу Устранение неполадок источника данных Jaeger за помощью в решении распространённых ошибок.
Провижининг источника данных
Вы можете определить и настроить источник данных в файлах YAML в рамках системы провижининга Grafana. Дополнительные сведения о провижининге см. в разделе Provisioning Grafana.
Пример провижининга
apiVersion: 1
datasources:
- name: Jaeger
type: jaeger
uid: jaeger-ds
url: http://localhost:16686
access: proxy
basicAuth: true
basicAuthUser: <USERNAME>
isDefault: false
jsonData:
tracesToLogsV2:
datasourceUid: 'loki'
spanStartTimeShift: '1h'
spanEndTimeShift: '-1h'
tags:
- key: 'job'
- key: 'instance'
- key: 'pod'
- key: 'namespace'
filterByTraceID: false
filterBySpanID: false
customQuery: true
query: 'method="$${__span.tags.method}"'
tracesToMetrics:
datasourceUid: 'prom'
spanStartTimeShift: '-2m'
spanEndTimeShift: '2m'
tags:
- key: 'service.name'
value: 'service'
- key: 'job'
queries:
- name: 'Sample query'
query: 'sum(rate(traces_spanmetrics_latency_bucket{$$__tags}[5m]))'
nodeGraph:
enabled: true
traceIdTimeParams:
enabled: true
spanBar:
type: 'Duration'
secureJsonData:
basicAuthPassword: <PASSWORD>
Замените <USERNAME> и <PASSWORD> на ваши учётные данные Jaeger.
Провижининг с помощью Terraform
Вы можете настроить источник данных Jaeger с помощью Terraform и провайдера Grafana для Terraform.
Дополнительные сведения о провижининге ресурсов с помощью Terraform см. в документации Grafana as code using Terraform.
Пример Terraform
Следующий пример создаёт источник данных Jaeger:
terraform {
required_providers {
grafana = {
source = "grafana/grafana"
version = ">= 2.0.0"
}
}
}
provider "grafana" {
url = "<YOUR_GRAFANA_URL>"
auth = "<YOUR_SERVICE_ACCOUNT_TOKEN>"
}
resource "grafana_data_source" "jaeger" {
type = "jaeger"
name = "Jaeger"
url = "http://localhost:16686"
json_data_encoded = jsonencode({
nodeGraph = {
enabled = true
}
traceIdTimeParams = {
enabled = true
}
tracesToLogsV2 = {
datasourceUid = "loki"
filterByTraceID = true
filterBySpanID = false
tags = [
{ key = "service.name", value = "service" },
{ key = "job" }
]
}
})
}
Пример Terraform с базовой аутентификацией
Следующий пример создаёт источник данных Jaeger с базовой аутентификацией:
resource "grafana_data_source" "jaeger_auth" {
type = "jaeger"
name = "Jaeger"
url = "http://localhost:16686"
basic_auth_enabled = true
basic_auth_username = "<USERNAME>"
json_data_encoded = jsonencode({
nodeGraph = {
enabled = true
}
traceIdTimeParams = {
enabled = true
}
})
secure_json_data_encoded = jsonencode({
basicAuthPassword = "<PASSWORD>"
})
}
Замените следующие заполнители:
<YOUR_GRAFANA_URL>: URL вашего экземпляра Grafana (например,https://your-org.grafana.netдля Grafana Cloud)<YOUR_SERVICE_ACCOUNT_TOKEN>: токен сервисной учётной записи с разрешениями на источники данных<USERNAME>: имя пользователя для базовой аутентификации<PASSWORD>: пароль для базовой аутентификации
Все доступные параметры конфигурации см. в документации ресурса источника данных провайдера Grafana.