Семплінг

Семплінг — це процес, який обмежує кількість відрізків, що генеруються системою. Точний семплер, який ви повинні використовувати, залежить від ваших конкретних потреб, але загалом ви повинні приймати рішення на початку трасування і дозволяти рішенню про семплінг поширюватися на інші сервіси.

Sampler можна встановити на постачальника трасувальника за допомогою опції WithSampler, як показано нижче:

provider := trace.NewTracerProvider( trace.WithSampler(trace.AlwaysSample()), )

AlwaysSample та NeverSample є самопояснювальними значеннями. AlwaysSample означає, що кожен відрізок семплюється, тоді як NeverSample означає, що жоден відрізок не семплюється. Коли ви тільки починаєте, або в середовищі розробки, використовуйте AlwaysSample.

Інші семплери включають:

  • TraceIDRatioBased, який семплює частину відрізків, на основі частки, заданої семплеру. Якщо ви встановите .5, половина всіх відрізків буде семплюватися.
  • ParentBased, це декоратор семплера, який поводиться по-різному, залежно від батьківського відрізка. Якщо відрізок не має батька, використовується декорований семплер для прийняття рішення про семплінг на основі батьківського відрізк. Типово, ParentBased семплює відрізки, які мають батьків, що були семпльовані, і не семплює відрізки, чиї батьки не були семпльовані.

Стандартно, постачальник трасувальника використовує семплер ParentBased з семплером AlwaysSample.

У промисловому середовищі розгляньте можливість використання семплера ParentBased з семплером TraceIDRatioBased.