Zipkin
Після виконання цього завдання ви дізнаєтесь, як забезпечити участь вашого застосунку у зборі трейсів за допомогою Zipkin, незалежно від мови програмування, фреймворку або платформи, яку ви використовуєте для створення застосунку.
Це завдання використовує зразок застосунку Bookinfo як приклад.
Щоб дізнатися, як Istio обробляє трейси, відвідайте розділ огляд цього завдання.
Перш ніж почати
Дотримуйтесь інструкцій у розділі Встановлення Zipkin для розгортання Zipkin у вашому кластері.
Розгорніть зразок застосунку Bookinfo.
Налаштування Istio для розподіленого трейсингу
Налаштування постачальника розширень
Встановіть Istio з постачальником розширень посилаючись на сервіс Zipkin:
$ cat <<EOF > ./tracing.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
meshConfig:
enableTracing: true
defaultConfig:
tracing: {} # відключіть застарілі параметри трейсингу MeshConfig
extensionProviders:
- name: zipkin
zipkin:
address: 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
Доступ до інфопанелі (дашбоарду)
Детальніше про конфігурацію доступу до надбудов Istio через шлюз можна прочитати в завданні Віддалений доступ до надбудов телеметрії.
Для тестування (та тимчасового доступу) ви також можете використовувати перенаправлення портів. Використовуйте наступну команду, припускаючи, що ви розгорнули Zipkin у просторі імен istio-system
:
$ istioctl dashboard zipkin
Генерація трейсів за допомогою 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
На панелі пошуку натисніть на плюсик. Виберіть
serviceName
з першого списку,productpage.default
з другого списку, а потім натисніть на іконку пошуку:Панель трейсів Натисніть на результат пошуку
ISTIO-INGRESSGATEWAY
, щоб побачити деталі, що відповідають останньому запиту до/productpage
:Детальний вигляд трейсів Трасування складається з набору відрізків, де кожен відрізок відповідає одному з сервісів Bookinfo, які викликаються під час виконання запиту до
/productpage
, або внутрішньому компоненту Istio, наприклад:istio-ingressgateway
.
Очищення
Завершіть всі процеси
istioctl
, які можуть все ще працювати, за допомогою комбінації клавіш Control-C або наступної команди:$ killall istioctl
Якщо ви не плануєте виконувати інші завдання, ознайомтеся з інструкціями Очищення після використання Bookinfo, щоб вимкнути застосунок.