Візуалізація метрик за допомогою Grafana
Це завдання показує, як налаштувати та використовувати Панель управління Istio для моніторингу трафіку мережі. В рамках цього завдання ви будете використовувати надбудову Grafana Istio та вебінтерфейс для перегляду даних трафіку сервісної мережі.
Як приклад використовуватиметься застосунок Bookinfo.
Перед початком
- Встановіть Istio у вашому кластері.
- Встановіть надбудову Grafana.
- Встановіть надбудову Prometheus.
- Розгорніть застосунок Bookinfo.
Перегляд Панелі управління Istio
Перевірте, що сервіс
prometheus
працює у вашому кластері.У середовищах Kubernetes виконайте наступну команду:
$ kubectl -n istio-system get svc prometheus NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE prometheus ClusterIP 10.100.250.202 <none> 9090/TCP 103s
Перевірте, що сервіс Grafana працює у вашому кластері.
У середовищах Kubernetes виконайте наступну команду:
$ kubectl -n istio-system get svc grafana NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE grafana ClusterIP 10.103.244.103 <none> 3000/TCP 2m25s
Відкрийте Панель управління Istio через UI Grafana.
У середовищах Kubernetes виконайте наступну команду:
$ istioctl dashboard grafana
Відвідайте http://localhost:3000/d/G8wLrJIZk/istio-mesh-dashboard у вашому веб-браузері.
Панель управління Istio виглядатиме приблизно так:
Панель управління Istio Надішліть трафік до мережі.
Для 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
Оновіть сторінку кілька разів (або виконайте команду кілька разів), щоб згенерувати невелику кількість трафіку.
Перегляньте Панель управління Istio знову. Вона повинна показувати згенерований трафік. Виглядати це буде приблизно так:
Панель управління Istio з трафіком Вона надає глобальний огляд Mesh разом із сервісами та робочими навантаженнями в мережі. Ви можете отримати більше деталей про сервіси та робочі навантаження, перейшовши до їхніх специфічних панелей управління, як описано нижче.
Візуалізуйте Панелі управління Service.
З меню навігації в лівому куті панелі управління Grafana ви можете перейти до Панелі управління Сервісами Istio або відвідати http://localhost:3000/d/LJ_uJAvmk/istio-service-dashboard у вашому вебоглядачі.
Панель управління Сервісами Istio виглядатиме приблизно так:
Панель управління Сервісами Istio Вона надає деталі про метрики для сервісу та робочих навантажень клієнтів (робочі навантаження, які викликають цей сервіс) і робочих навантажень сервісу (робочі навантаження, які надають цей сервіс) для цього сервісу.
Візуалізуйте Панелі управління Робочими навантаженнями.
З меню навігації в лівому куті панелі управління Grafana ви можете перейти до Панелі управління Робочими навантаженнями Istio або відвідати http://localhost:3000/d/UbsSZTDik/istio-workload-dashboard у вашому вебоглядачі.
Панель управління Робочими навантаженнями Istio виглядатиме приблизно так:
Панель управління Робочими навантаженнями Istio Вона надає деталі про метрики для кожного робочого навантаження та вхідні робочі навантаження (робочі навантаження, які надсилають запити до цього робочого навантаження) і вихідні сервіси (сервери, до яких це робоче навантаження надсилає запити) для цього робочого навантаження.
Про панелі управління Grafana
Панель управління Istio складається з трьох основних розділів:
Огляд Мережі. Цей розділ надає глобальний огляд Мережі та показує HTTP/gRPC та TCP робочі навантаження в Mesh.
Індивідуальні Сервіси. Цей розділ надає метрики про запити та відповіді для кожного окремого сервісу в мережі (HTTP/gRPC та TCP). Також надаються метрики про робочі навантаження клієнтів та сервісу для цього сервісу.
Індивідуальні Робочі навантаження. Цей розділ надає метрики про запити та відповіді для кожного окремого робочого навантаження в мережі (HTTP/gRPC та TCP). Також надаються метрики про вхідні робочі навантаження та вихідні сервіси для цього робочого навантаження.
Більше про те, як створювати, налаштовувати та редагувати панелі управління, читайте в документації Grafana.
Очищення
Видаліть будь-які процеси
kubectl port-forward
, які можуть бути запущені:$ killall kubectl
Якщо ви не плануєте досліджувати подальші завдання, дотримуйтесь інструкцій з очищення Bookinfo для завершення роботи застосунку.