Skip to content

Commit 2163794

Browse files
authored
fix(scores): skip sampling if OTEL sampler not available (#1241)
1 parent 9c6a71d commit 2163794

1 file changed

Lines changed: 18 additions & 12 deletions

File tree

langfuse/_client/resource_manager.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -277,20 +277,26 @@ def add_score_task(self, event: dict, *, force_sample: bool = False):
277277
try:
278278
# Sample scores with the same sampler that is used for tracing
279279
tracer_provider = cast(TracerProvider, otel_trace_api.get_tracer_provider())
280-
should_sample = force_sample or (
281-
(
282-
tracer_provider.sampler.should_sample(
283-
parent_context=None,
284-
trace_id=int(event["body"].trace_id, 16),
285-
name="score",
286-
).decision
287-
== Decision.RECORD_AND_SAMPLE
288-
if hasattr(event["body"], "trace_id")
280+
should_sample = (
281+
force_sample
282+
or isinstance(
283+
tracer_provider, otel_trace_api.ProxyTracerProvider
284+
) # default to in-sample if otel sampler is not available
285+
or (
286+
(
287+
tracer_provider.sampler.should_sample(
288+
parent_context=None,
289+
trace_id=int(event["body"].trace_id, 16),
290+
name="score",
291+
).decision
292+
== Decision.RECORD_AND_SAMPLE
293+
if hasattr(event["body"], "trace_id")
294+
else True
295+
)
296+
if event["body"].trace_id
297+
is not None # do not sample out session / dataset run scores
289298
else True
290299
)
291-
if event["body"].trace_id
292-
is not None # do not sample out session / dataset run scores
293-
else True
294300
)
295301

296302
if should_sample:

0 commit comments

Comments
 (0)