Последнее обновление: августа 11, 2026

Настройка источника данных Zipkin

В этом документе объясняется, как настроить источник данных Zipkin в Grafana, включая настройки подключения, аутентификацию, интеграции trace-to-logs и trace-to-metrics, а также провижининг с помощью YAML или Terraform.

Перед началом

Перед настройкой источника данных убедитесь, что у вас есть:

  • Разрешения Grafana: роль Organization administrator
  • Экземпляр Zipkin: работающий экземпляр Zipkin, доступный с вашего сервера Grafana

Добавление источника данных

Чтобы добавить источник данных Zipkin:

  1. Нажмите Connections в меню слева.
  2. Нажмите Add new connection.
  3. Введите Zipkin в строке поиска.
  4. Выберите Zipkin.
  5. Нажмите Add new data source.

Настройка параметров

Следующая таблица описывает базовые параметры конфигурации для источника данных Zipkin.

Настройка Описание
Name Имя, используемое для ссылки на источник данных на панелях и в запросах.
Default Переключатель, делающий этот источник данных используемым по умолчанию для новых панелей.
URL URL экземпляра Zipkin, например http://localhost:9411.

Аутентификация

Источник данных Zipkin поддерживает следующие методы аутентификации:

  • Basic authentication: укажите имя пользователя и пароль для аутентификации в экземпляре Zipkin.
  • TLS client authentication: настройте клиентские сертификаты для взаимного TLS.
  • Forward OAuth identity: передайте OAuth-токен пользователя в экземпляр Zipkin.
  • With credentials: отправляйте учётные данные (cookie, клиентские сертификаты TLS) с межсайтовыми запросами.

Вы также можете настроить пользовательские заголовки и параметры TLS в разделе Advanced HTTP settings, который находится внутри Additional settings.

Trace to logs

Trace to logs settings
Trace to logs settings

Note

Если вы используете Grafana Cloud, откройте обращение в поддержку в Cloud Portal, чтобы получить доступ к этой функции.

Настройка Trace to logs настраивает функцию trace to logs, доступную при интеграции Grafana с Zipkin. Эта функция позволяет переходить от промежутка в представлении трассировки непосредственно к соответствующим журналам.

Есть два способа настроить функцию trace to logs:

  • Использовать упрощённую конфигурацию с запросом по умолчанию, или
  • Настроить пользовательский запрос, где вы можете использовать язык шаблонов для интерполяции переменных из трассировки или промежутка.

Использование простой конфигурации

  1. Выберите целевой источник данных в раскрывающемся списке.

    Вы также можете нажать Open advanced data source picker, чтобы увидеть больше параметров, включая добавление источника данных.

  2. Задайте сдвиг начального и конечного времени. Поскольку временные метки журналов могут не совпадать точно с временными метками промежутков в трассировке, вам может потребоваться расширить или сдвинуть диапазон времени, чтобы найти нужные журналы.

  3. Выберите, какие теги использовать в запросе журналов. Настроенные вами теги должны присутствовать в атрибутах или ресурсах промежутка, чтобы появилась ссылка trace to logs на промежутке. При необходимости вы можете настроить новое имя для тега. Это полезно, если в имени тега есть точки, а целевой источник данных не допускает точек в метках. Например, вы можете переопределить http.status в http_status.

  4. При необходимости включите настройку Filter by trace ID и/или Filter by span ID, чтобы дополнительно отфильтровать журналы, если ваши журналы постоянно содержат ID трассировки или промежутка.

Настройка пользовательского запроса

  1. Выберите целевой источник данных в раскрывающемся списке.

    Вы также можете нажать Open advanced data source picker, чтобы увидеть больше параметров, включая добавление источника данных.

  2. Задайте сдвиг начального и конечного времени. Поскольку временные метки журналов могут не совпадать точно с временными метками промежутков в трассировке, вам может потребоваться расширить или сдвинуть диапазон времени, чтобы найти нужные журналы.

  3. При необходимости выберите теги для сопоставления. Эти теги можно использовать в пользовательском запросе с переменной ${__tags}. Эта переменная интерполирует сопоставленные теги в виде списка в подходящем для источника данных синтаксисе и включает только теги, присутствующие в промежутке. При необходимости вы можете настроить новое имя для тега. Это полезно, когда в имени тега есть точки, а целевой источник данных не допускает точек в метках. Например, вы можете переопределить http.status в http_status. Если вы не сопоставляете здесь никакие теги, вы всё равно можете использовать любой тег в запросе, например так: method="${__span.tags.method}".

  4. Пропустите настройки Filter by trace ID и Filter by span ID, так как они не могут использоваться с пользовательским запросом.

  5. Включите Use custom query.

  6. Укажите пользовательский запрос, который будет использоваться для запроса журналов. Вы можете использовать различные переменные, чтобы сделать запрос релевантным для текущего промежутка. Ссылка появляется только в том случае, если все переменные интерполированы непустыми значениями, чтобы предотвратить создание недопустимого запроса.

Переменные для пользовательских запросов

Чтобы использовать переменную, оберните её в ${}. Например: ${__span.name}.

Имя переменной Описание
__tags Эта переменная использует сопоставление тегов из интерфейса для создания строки сопоставителя меток в синтаксисе конкретного источника данных. Переменная использует только теги, присутствующие в промежутке. Ссылка всё равно создаётся, даже если в промежутке присутствует только один из этих тегов. Вы можете использовать это, если для полезности запроса не требуются все теги.
__span.spanId ID промежутка.
__span.traceId ID трассировки.
__span.duration Длительность промежутка.
__span.name Имя промежутка.
__span.tags Пространство имён для тегов в промежутке. Чтобы получить доступ к конкретному тегу с именем version, вы использовали бы ${__span.tags.version}. Если тег содержит точку, обращайтесь к нему как ${__span.tags["http.status"]}.
__trace.traceId ID трассировки.
__trace.duration Длительность трассировки.
__trace.name Имя трассировки.

Настройки Trace to logs

Следующая таблица описывает параметры конфигурации trace to logs.

Имя настройки Описание
Data source Определяет целевой источник данных. Вы можете выбрать источники данных Loki, Elasticsearch, Splunk, OpenSearch, FalconLogScale, Google Cloud Logging и VictoriaMetrics Logs.
Span start time shift Сдвигает начальное время для запроса журналов на основе начального времени промежутка. Вы можете использовать единицы времени, такие как 5s, 1m, 3h. Чтобы расширить время в прошлое, используйте отрицательное значение. По умолчанию: 0.
Span end time shift Сдвигает конечное время для запроса журналов на основе конечного времени промежутка. Вы можете использовать единицы времени. По умолчанию: 0.
Tags Определяет теги для использования в запросе журналов. По умолчанию: cluster, hostname, namespace, pod, service.name, service.namespace. Вы можете изменить имя тега, чтобы удалить точки из имени, если они не допускаются в целевом источнике данных. Например, сопоставьте http.status с http_status.
Filter by trace ID Переключает, добавлять ли ID трассировки к запросу журналов.
Filter by span ID Переключает, добавлять ли ID промежутка к запросу журналов.
Use custom query Переключает использование пользовательского запроса с интерполяцией.
Query Поле ввода для написания пользовательского запроса. Используйте интерполяцию переменных, чтобы настроить его с помощью переменных из промежутка.

Trace to metrics

Настройка Trace to metrics позволяет переходить от промежутка в представлении трассировки к запросу метрик в настроенном источнике данных метрик.

Чтобы настроить trace to metrics:

  1. Выберите целевой источник данных в раскрывающемся списке.

    Вы также можете нажать Open advanced data source picker, чтобы увидеть больше параметров, включая добавление источника данных.

  2. Создайте любые нужные связанные запросы.

Имя настройки Описание
Data source Определяет целевой источник данных.
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"}.

Дополнительные настройки

Раздел Additional settings сворачиваемый и содержит необязательные настройки для графа узлов, панели промежутков, расширенной конфигурации HTTP и безопасного SOCKS-прокси (когда он включён в вашей конфигурации Grafana).

Граф узлов

Переключатель Enable node graph включает визуализацию Node graph, которая отключена по умолчанию.

После его включения Grafana отображает граф узлов над представлением трассировки.

Панель промежутков

Настройка Span bar позволяет отображать дополнительную информацию в строке панели промежутков.

Раскрывающийся список Label имеет три варианта:

Метка Описание
None Ничего не добавляет в строку панели промежутков.
Duration (По умолчанию) Отображает длительность промежутка в строке панели промежутков.
Tag Отображает тег промежутка в строке панели промежутков. Введите Tag key, чтобы указать, какое значение тега отображать, например component.

Проверка подключения

Нажмите Save & test, чтобы проверить подключение. Успешное подключение отображает сообщение Data source is working.

Если вы сталкиваетесь с ошибками, обратитесь к разделу Устранение неполадок источника данных Zipkin.

Провижининг источника данных

Вы можете определить и настроить источник данных в файлах YAML в рамках системы провижининга Grafana. Дополнительную информацию о провижининге и доступных параметрах конфигурации см. в разделе Провижининг Grafana.

Пример провижининга

YAML
apiVersion: 1

datasources:
  - name: Zipkin
    type: zipkin
    uid: zipkin-ds
    url: http://localhost:9411
    access: proxy
    basicAuth: true
    basicAuthUser: my_user
    readOnly: false
    isDefault: false
    jsonData:
      tracesToLogsV2:
        datasourceUid: 'loki'
        spanStartTimeShift: '1h'
        spanEndTimeShift: '-1h'
        tags: ['job', 'instance', 'pod', 'namespace']
        filterByTraceID: false
        filterBySpanID: false
        customQuery: true
        query: 'method="$${__span.tags.method}"'
      tracesToMetrics:
        datasourceUid: 'prom'
        spanStartTimeShift: '1h'
        spanEndTimeShift: '-1h'
        tags: [{ key: 'service.name', value: 'service' }, { key: 'job' }]
        queries:
          - name: 'Sample query'
            query: 'sum(rate(traces_spanmetrics_latency_bucket{$$__tags}[5m]))'
      nodeGraph:
        enabled: true
      spanBar:
        type: 'None'
    secureJsonData:
      basicAuthPassword: my_password

Настройка с помощью Terraform

Вы можете настроить источник данных Zipkin с помощью Terraform и провайдера Grafana для Terraform.

Дополнительную информацию о провижининге ресурсов с помощью Terraform см. в документации Grafana как код с использованием Terraform.

Базовый пример Terraform

Следующий пример создаёт базовый источник данных Zipkin:

hcl
resource "grafana_data_source" "zipkin" {
  name = "Zipkin"
  type = "zipkin"
  url  = "http://localhost:9411"
}

Пример Terraform с trace to logs

Следующий пример включает конфигурацию trace to logs, которая связывает трассировки с источником данных Loki:

hcl
resource "grafana_data_source" "zipkin" {
  name = "Zipkin"
  type = "zipkin"
  url  = "http://localhost:9411"

  json_data_encoded = jsonencode({
    tracesToLogsV2 = {
      datasourceUid    = grafana_data_source.loki.uid
      spanStartTimeShift = "1h"
      spanEndTimeShift   = "-1h"
      filterByTraceID  = true
      filterBySpanID   = false
      tags = [
        { key = "service.name", value = "service" },
        { key = "namespace" }
      ]
    }
    nodeGraph = {
      enabled = true
    }
  })
}

Пример Terraform с базовой аутентификацией

Следующий пример включает базовую аутентификацию:

hcl
resource "grafana_data_source" "zipkin" {
  name = "Zipkin"
  type = "zipkin"
  url  = "http://localhost:9411"

  basic_auth_enabled  = true
  basic_auth_username = "zipkin_user"

  secure_json_data_encoded = jsonencode({
    basicAuthPassword = var.zipkin_password
  })

  json_data_encoded = jsonencode({
    nodeGraph = {
      enabled = true
    }
  })
}

Все доступные параметры конфигурации см. в документации по ресурсу источника данных провайдера Grafana.