Jaeger
Після завершення цього завдання ви зможете зрозуміти, як ваш застосунок може брати участь у трейсингу з Jaeger, незалежно від мови, фреймворка або платформи, який ви використовуєте для створення застосунку.
Це завдання використовує Bookinfo як демонстраційний застосунок.
Щоб дізнатися, як Istio обробляє трейсинг, відвідайте огляд цього завдання.
Перед початком
Слідуйте документації з установки Jaeger для розгортання Jaeger у вашому кластері.
Розгорніть демонстраційний застосунок 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
Коли застосунок 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
У лівій частині панелі управління виберіть
productpage.default
зі списку Service та натисніть Find Traces:Панель трейсингу Клацніть на останньому трейсі вгорі, щоб переглянути деталі, що відповідають останньому запиту до
/productpage
:Детальний перегляд трейсів Трейс складається з набору відрізків, де кожен відрізок відповідає сервісу Bookinfo, викликаному під час виконання запиту
/productpage
, або внутрішньому компоненту Istio, наприклад:istio-ingressgateway
.
Очищення
Видаліть будь-які процеси
istioctl
, які можуть все ще працювати, використовуючи control-C або:$ killall istioctl
Якщо ви не плануєте досліджувати жодних подальших завдань, зверніться до інструкцій з очищення Bookinfo, щоб завершити роботу з застосунком.