Налаштування трейсингу за допомогою Telemetry API

Istio надає можливість налаштувати розширені параметри трейсингу, такі як швидкість відбору і додавання власних теґів до звітів про відрізки (span). Це завдання показує, як налаштувати параметри трейсингу за допомогою Telemetry API.

Перед початком

  1. Переконайтеся, що ваші застосунки пропагують заголовки трейсингу, як описано тут.

  2. Дотримуйтесь посібника з установки трейсингу, розташованого в розділі Інтеграції, залежно від вашого вибраного бекенду трейсингу, щоб встановити відповідне програмне забезпечення та налаштувати постачальника розширення.

Установка

В цьому прикладі ми надсилатимемо трейси до zipkin, тому переконайтеся, що він встановлений:

Налаштування постачальника розширення

Встановіть Istio з постачальником розширення, посилаючись на сервіс Zipkin:

$ cat <<EOF > ./tracing.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing: {} # відключіть застарілі параметри трейсингу MeshConfig
    extensionProviders:
    - name: "zipkin"
      zipkin:
        service: zipkin.istio-system.svc.cluster.local
        port: 9411
EOF
$ istioctl install -f ./tracing.yaml --skip-confirmation

Увімкнення трейсингу

Увімкніть трейсинг, застосувавши наступну конфігурацію:

$ kubectl apply -f - <<EOF
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: mesh-default
  namespace: istio-system
spec:
  tracing:
  - providers:
    - name: "zipkin"
EOF

Перевірка результатів

Ви можете перевірити результати за допомогою Zipkin UI.

Налаштування

Налаштування відбору трейсів

Параметр швидкості відбору можна використовувати для контролю відсотка запитів, які надсилаються до вашої системи трейсингу. Це потрібно налаштувати залежно від вашого трафіку в мережі та обсягу даних трейсингу, які ви хочете збирати. Стандартно швидкість відбору становить 1%.

$ kubectl apply -f - <<EOF
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: mesh-default
  namespace: istio-system
spec:
  tracing:
  - providers:
    - name: "zipkin"
    randomSamplingPercentage: 100.00
EOF

Налаштування теґів трейсингу

Власні теґи можуть бути додані до відрізків на основі літералів, змінних середовища та заголовків запитів клієнтів для надання додаткової інформації у відрізках, специфічних для вашого середовища.

Ви можете налаштувати теґи, використовуючи один з трьох підтримуваних варіантів нижче.

  1. Літерал представляє статичне значення, яке додається до кожного відрізку.

    apiVersion: telemetry.istio.io/v1
    kind: Telemetry
    metadata:
    name: mesh-default
    namespace: istio-system
    spec:
      tracing:
      - providers:
        - name: "zipkin"
        randomSamplingPercentage: 100.00
        customTags:
          "provider":
            literal:
              value: "zipkin"
  2. Змінні середовища можна використовувати, де значення власного теґу заповнюється зі змінної середовища проксі навантаження.

    apiVersion: telemetry.istio.io/v1
    kind: Telemetry
    metadata:
      name: mesh-default
      namespace: istio-system
    spec:
      tracing:
        - providers:
          - name: "zipkin"
          randomSamplingPercentage: 100.00
          customTags:
            "cluster_id":
              environment:
                name: ISTIO_META_CLUSTER_ID
                defaultValue: Kubernetes # необов'язково
  3. Опція заголовків запитів клієнтів може бути використана для заповнення значення теґу з вхідного заголовка запиту клієнта.

    apiVersion: telemetry.istio.io/v1
    kind: Telemetry
    metadata:
      name: mesh-default
      namespace: istio-system
    spec:
      tracing:
        - providers:
          - name: "zipkin"
          randomSamplingPercentage: 100.00
          customTags:
            my_tag_header:
              header:
                name: <CLIENT-HEADER>
                defaultValue: <VALUE>      # необов'язково

Налаштування довжини теґів трейсингу

Стандартно максимальна довжина для шляху запиту, включеного в теґ відрізку HttpUrl, становить 256. Щоб змінити цю максимальну довжину, додайте наступне до вашого файлу tracing.yaml.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing: {} # відключіть застарілі параметри трейсингу через `MeshConfig`
    extensionProviders:
    - name: "zipkin"
      zipkin:
        service: zipkin.istio-system.svc.cluster.local
        port: 9411
        maxTagLength: <VALUE>
Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

Дякуємо за ваш відгук!