Вимірювання загального часу запиту, а не часу обслуговування
OpenTelemetry eBPF Instrumentation — це інструмент для автоматичної інструментації застосунків на основі eBPF, який здатний відстежувати загальний час запиту для вашого серверного коду.
Коли виконується запит до віддаленого сервісу, сприйнятий час відповіді клієнта відрізняється від виміряного часу відповіді на сервері.
Наступна діаграма ілюструє різні затримки, які можуть виникнути з боку клієнта:

- Загальний час запиту: час з точки зору клієнта, включаючи затримку в мережі, балансування навантаження та час, проведений у службі.
- Час обслуговування: час з точки зору сервісу, який не включає затримку в мережі та накладні витрати на балансування навантаження.
Якщо ви відстежуєте тільки час обслуговування, ви можете пропустити важливі проблеми з продуктивністю, які впливають на користувачів. Наприклад, повільний балансувальник навантаження, затримка в мережі або проблеми з розвʼязанням DNS.
eBPF дозволяє нам подолати обмеження інструментів ручної інструментації. OBI вставляє точки трасування в функції ядра connect/receive/write/close (також у середовищі виконання Go в разі застосунків Go). Ця інструментація на низькому рівні забезпечує більш точні метрики та дозволяє захоплювати час запитів з точки зору клієнта.
OBI повідомляє про трейси, які розділені на різні відрізки:

Вищезгадане зображення показує типову структуру трейсу, як про неї повідомляє OBI:
- Загальний час запиту: час з точки зору клієнта
- Час обслуговування: час з точки зору сервісу
- Час SQL: час, витрачений на SQL-запити (якщо використовується)
Відрізки трейсів генеруються на рівні ядра та здатні захоплювати загальний час запиту з точки зору клієнта. Це дозволяє вам виявляти проблеми, які можуть бути непомітні лише з точки зору сервісу.
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!