Baggage
В OpenTelemetry Baggage — це контекстна інформація, яка знаходиться поруч з контекстом. Baggage — це сховище ключ-значення, що дозволяє поширювати будь-які дані, які вам подобаються, поряд з контекстом.
Baggage дозволяє передавати дані між сервісами та процесами, роблячи їх доступними для додавання до трейсів, метрик або логів у цих сервісах.
Приклад
Baggage часто використовується в трасуванні для поширення додаткових даних між сервісами.
Наприклад, уявіть, що у вас є clientId на початку запиту, але ви хочете, щоб цей ID був доступний на всіх відрізках у трейсі, деяких метриках в іншому сервісі та деяких логах по ходу. Оскільки трейс може охоплювати кілька сервісів, вам потрібен спосіб поширювати ці дані без копіювання clientId у багатьох місцях вашого коду.
Використовуючи Поширення контексту для передачі baggage між цими сервісами, clientId доступний для додавання до будь-яких додаткових відрізків, метрик або логів. Крім того, інструменти автоматично поширюють baggage за вас.
Для чого слід використовувати OTel Baggage?
Baggage найкраще використовувати для включення інформації, яка зазвичай доступна лише на початку запиту, далі вниз по потоку. Це може включати такі речі, як Ідентифікація облікового запису, Ідентифікатори користувачів, Ідентифікатори Product та IP-адреси походження, наприклад.
Поширення цієї інформації за допомогою baggage дозволяє глибше аналізувати телеметрію в бекенді. Наприклад, якщо ви включите інформацію, таку як Ідентифікатор користувача у відрізок, який відстежує виклик бази даних, ви зможете набагато легше відповісти на запитання такі як “які користувачі відчувають найповільніші виклики до бази даних?” Ви також можете записати інформацію про операцію нижче за потоком і включити той самий Ідентифікатор користувача в дані журналу.
Міркування щодо безпеки Baggage
Чутливі елементи Baggage можуть бути передані ресурсам, якім вони не призначені, таким як сторонні API. Це тому, що автоматичне інструментування включає Baggage у більшість мережевих запитів вашого сервісу. Зокрема, Baggage та інші частини контексту трасування надсилаються в заголовках HTTP, що робить їх видимими для будь-кого, хто перевіряє ваш мережевий трафік. Якщо трафік обмежений у вашій мережі, то цей ризик може не застосовуватися, але майте на увазі, що сервіси нижче за потоком можуть поширювати Baggage за межі вашої мережі.
Крім того, немає вбудованих перевірок цілісності, щоб переконатися, що елементи Baggage є вашими, тому будьте обережні при їх читанні.
Baggage не те саме, що атрибути
Важливо зазначити, що baggage — це окреме сховище ключ-значення і не повʼязане з атрибутами у відрізках, метриках або логах без явного їх додавання.
Щоб додати елементи baggage до атрибутів, вам потрібно явно прочитати дані з baggage і додати їх як атрибути до ваших відрізків, метрик або логів.
Оскільки одним із поширених випадків використання Baggage є додавання даних до Атрибутів відрізків по всьому трейсу, кілька мов мають Процесори відрізків Baggage, які додають дані з baggage як атрибути при створенні відрізків.
Для отримання додаткової інформації дивіться специфікацію baggage.
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!