As was already discussed in #1844 (comment) current specification says very little about non-probabilistic samplers. In this issue I would like to talk about non-probabilistic not ParentBased samplers.
E.g. if I want to implement a healthcheck filtering using custom Sampler current spec allows me to implement it like this (in pseudocode):
if (attributes.url == '/healthcheck')
return DROP
else
return RECORD_AND_SAMPLE
This most probably will result in broken traces, where healthcheck span will not be exported, but its child will be and it will have parent span context pointing to non-existing span.
Should we augment the spec and require, or at least strongly recommend, that any non-probabilistic traces should be ParentBased ?
Alternatively, should we forbid setting span as a parent if that span has Sampled flag unset?
As was already discussed in #1844 (comment) current specification says very little about non-probabilistic samplers. In this issue I would like to talk about non-probabilistic not ParentBased samplers.
E.g. if I want to implement a healthcheck filtering using custom Sampler current spec allows me to implement it like this (in pseudocode):
This most probably will result in broken traces, where healthcheck span will not be exported, but its child will be and it will have parent span context pointing to non-existing span.
Should we augment the spec and require, or at least strongly recommend, that any non-probabilistic traces should be ParentBased ?
Alternatively, should we forbid setting span as a parent if that span has Sampled flag unset?