根据文档
- "traceidratio" TraceIdRatioBased
- "parentbased_traceidratio" ParentBased (root = TraceIdRatioBased)
我的理解:
-
traceidratio
将进行采样,无论采样是在源/父端进行的。(意思是:采样过的轨迹要再次采样??) -
parentbased_traceidratio
将在父节点的基础上尊重采样标志。
但我认为似乎并非如此。两者的区别是什么?
背景:将istio
上的采样设置为100
,并将环境变量设置为OTEL_TRACES_SAMPLER
为traceidratio
或parentbased_traceidratio
,将OTEL_TRACES_SAMPLER_ARG
设置为0.001
,并没有显示应用程序本身的任何减少/采样。(我们在机甲上找到的所有痕迹都表明没有减少或采样)。一个简单的基于python的应用程序,使用开放遥测-python。将OTEL设置为调试日志也没有显示任何具体的内容。
通过文档设置env变量应该改变应用程序中的跟踪采样。
traceidratio
将忽略在父span上做出的决定,并将根据比率做出新的决定。一个张成的空间不能采样两次。在创建跨度时,我们做一个抽样决策,这只会发生一次;我们要么做出新的决定,要么尊重父母的决定。
因此,将OTEL_TRACES_SAMPLER
设置为traceidratio
与0.001
应该减少跨度的数量。