Налаштування вибірки трейсів
Istio надає кілька способів налаштування вибірки трейсів. На цій сторінці ви дізнаєтеся і зрозумієте всі різні способи налаштування вибірки.
Перед початком
- Переконайтеся, що ваші застосунки передають заголовки трейсингу, як описано тут6.
Доступні конфігурації вибірки трейсів
Вибірка за відсотком: випадкова швидкість вибірки для відсотка запитів, які будуть вибрані для генерації трейсів.
Власний OpenTelemetry Sampler: реалізація власного семплера, яка повинна бути поєднана з
OpenTelemetryTracingProvider
.
Вибірка за відсотком
Випадкова швидкість вибірки за відсотком використовує зазначене значення відсотка для вибору запитів для вибірки.
Швидкість вибірки повинна бути в діапазоні від 0.0 до 100.0 з точністю 0.01. Наприклад, щоб трейсити 5 запитів з кожних 10000, використовуйте значення 0.05.
Є три способи налаштування випадкової швидкості вибірки:
Telemetry API
Вибірку можна налаштувати для різних масштабів: для всієї mesh-мережі, для простору імен або для конкретного навантаження, що забезпечує велику гнучкість. Щоб дізнатися більше, будь ласка, ознайомтеся з документацією Telemetry API7.
Встановіть Istio без налаштування sampling
всередині defaultConfig
:
Увімкніть провайдера трейсингу через Telemetry API та задайте randomSamplingPercentage
.
Використання MeshConfig
Випадкова вибірка за відсотком може бути налаштована глобально через MeshConfig
.
Потім увімкніть провайдера трейсингу через Telemetry API. Зверніть увагу, що ми не задаємо randomSamplingPercentage
тут.
Використання анотації proxy.istio.io/config
Ви можете додати анотацію proxy.istio.io/config
до метаданих вашого Pod, щоб перевизначити будь-які налаштування вибірки на рівні мережі.
Наприклад, щоб перевизначити вибірку на рівні мережі вище, ви додасте наступне до вашого manifest файлу pod:
Власний OpenTelemetry Sampler
Специфікація OpenTelemetry визначає Sampler API. Sampler API дозволяє створювати власний семплер, який може здійснювати більш інтелектуальні та ефективні рішення для вибірки, такі як Probability Sampling8.
Такі семплери потім можна поєднати з OpenTelemetryTracingProvider
.
Поточні конфігурації семплера в Istio:
Власні семплери налаштовуються через MeshConfig
. Ось приклад конфігурації семплера Dynatrace:
Порядок пріоритету
З кількома способами налаштування вибірки важливо розуміти порядок пріоритету кожного методу.
При використанні випадкової вибірки за відсотком порядок пріоритету є:
Telemetry API > Анотація Pod > MeshConfig |
Це означає, що якщо значення визначено в усіх з зазначених, вибирається значення з Telemetry API.
Коли налаштований власний OpenTelemetry семплер, порядок пріоритету є:
Custom OTel Sampler > (Telemetry API | Анотація Pod | MeshConfig ) |
Це означає, що якщо налаштований власний OpenTelemetry семплер, він перевизначить усі інші методи. Крім того, значення випадкової вибірки встановлено на 100
і не може бути змінене. Це важливо, оскільки власний семплер має отримувати 100% відрізків для правильного прийняття рішень.
Розгортання OpenTelemetry Collector
Створіть простір імен для OpenTelemetry Collector:
Розгорніть OpenTelemetry Collector. Ви можете використовувати цей приклад конфігурації10 як відправну точку.
Розгортання Bookinfo
Розгорніть Bookinfo як демонстраційний застосунок.
Генерація трейсів за допомогою Bookinfo
Коли Bookinfo запущено і працює, відвідайте
http://$GATEWAY_URL/productpage
один або кілька разів, щоб згенерувати інформацію про трейси.Щоб побачити дані трасування, потрібно надіслати запити до вашої служби. Кількість запитів залежить від коефіцієнта відбору Istio і може бути налаштована за допомогою Telemetry API7. При стандартному значенні для коефіцієнта відбору в 1% вам потрібно надіслати принаймні 100 запитів, перш ніж перші трейси стануть видимими.
Щоб надіслати 100 запитів до служби
productpage
, використовуйте наступну команду:
Очищення
Видаліть ресурс Telemetry:
Видаліть будь-які процеси
istioctl
, які можуть ще працювати, використовуючи control-C або:Видаліть OpenTelemetry Collector: