Jaeger

Після завершення цього завдання ви зможете зрозуміти, як ваш застосунок може брати участь у трейсингу з Jaeger, незалежно від мови, фреймворка або платформи, який ви використовуєте для створення застосунку.

Це завдання використовує Bookinfo як демонстраційний застосунок.

Щоб дізнатися, як Istio обробляє трейсинг, відвідайте огляд цього завдання.

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

  1. Слідуйте документації з установки Jaeger для розгортання Jaeger у вашому кластері.

  2. Розгорніть демонстраційний застосунок Bookinfo.

Налаштування Istio для розподіленого трейсингу

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

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

$ cat <<EOF > ./tracing.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
       tracing: {} # disable legacy MeshConfig tracing options
    extensionProviders:
    - name: jaeger
      opentelemetry:
        port: 4317
        service: jaeger-collector.istio-system.svc.cluster.local
EOF
$ istioctl install -f ./tracing.yaml --skip-confirmation

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

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

Enable tracing by applying the following configuration:

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

Доступ до панелі управління

Завдання Віддалений доступ до надбудов телеметрії описує, як налаштувати доступ до надбудов Istio через шлюз.

Для тестування (та тимчасового доступу) ви також можете використовувати порт-форвардинг. Використовуйте наступне, припускаючи, що ви розгорнули Jaeger у просторі імен istio-system:

$ istioctl dashboard jaeger

Генерація трейсів за допомогою Bookinfo

  1. Коли застосунок Bookinfo буде запущено, отримайте доступ до http://$GATEWAY_URL/productpage один або кілька разів для генерації інформації про трейс.

    Щоб побачити дані трасування, потрібно надіслати запити до вашої служби. Кількість запитів залежить від коефіцієнта відбору Istio і може бути налаштована за допомогою Telemetry API. При стандартному значенні для коефіцієнта відбору в 1% вам потрібно надіслати принаймні 100 запитів, перш ніж перші трейси стануть видимими.

    Щоб надіслати 100 запитів до служби productpage, використовуйте наступну команду:

    $ for i in $(seq 1 100); do curl -s -o /dev/null "http://$GATEWAY_URL/productpage"; done
  2. У лівій частині панелі управління виберіть productpage.default зі списку Service та натисніть Find Traces:

    Панель трейсингу
    Панель трейсингу
  3. Клацніть на останньому трейсі вгорі, щоб переглянути деталі, що відповідають останньому запиту до /productpage:

    Детальний перегляд трейсів
    Детальний перегляд трейсів
  4. Трейс складається з набору відрізків, де кожен відрізок відповідає сервісу Bookinfo, викликаному під час виконання запиту /productpage, або внутрішньому компоненту Istio, наприклад: istio-ingressgateway.

Очищення

  1. Видаліть будь-які процеси istioctl, які можуть все ще працювати, використовуючи control-C або:

    $ killall istioctl
  2. Якщо ви не плануєте досліджувати жодних подальших завдань, зверніться до інструкцій з очищення Bookinfo, щоб завершити роботу з застосунком.

Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

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