From ae7ca32b843adf2511119ca57f3d6b5673b8468a Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Mon, 16 Jun 2025 13:30:55 +0200 Subject: [PATCH 1/2] fix(resource-manager): do not register processor if tracing disabled --- langfuse/_client/client.py | 1 + langfuse/_client/resource_manager.py | 40 +++++++++++++++------------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/langfuse/_client/client.py b/langfuse/_client/client.py index 2837dcfef..c94ed9deb 100644 --- a/langfuse/_client/client.py +++ b/langfuse/_client/client.py @@ -219,6 +219,7 @@ def __init__( media_upload_thread_count=media_upload_thread_count, sample_rate=sample_rate, mask=mask, + tracing_enabled=self._tracing_enabled, ) self._mask = self._resources.mask diff --git a/langfuse/_client/resource_manager.py b/langfuse/_client/resource_manager.py index 5eceb3fe5..23a26909b 100644 --- a/langfuse/_client/resource_manager.py +++ b/langfuse/_client/resource_manager.py @@ -92,6 +92,7 @@ def __new__( media_upload_thread_count: Optional[int] = None, sample_rate: Optional[float] = None, mask: Optional[MaskFunction] = None, + tracing_enabled: Optional[bool] = None, ) -> "LangfuseResourceManager": if public_key in cls._instances: return cls._instances[public_key] @@ -113,6 +114,7 @@ def __new__( media_upload_thread_count=media_upload_thread_count, sample_rate=sample_rate, mask=mask, + tracing_enabled=tracing_enabled or True, ) cls._instances[public_key] = instance @@ -134,6 +136,7 @@ def _initialize_instance( httpx_client: Optional[httpx.Client] = None, sample_rate: Optional[float] = None, mask: Optional[MaskFunction] = None, + tracing_enabled: bool = True, ): self.public_key = public_key self.secret_key = secret_key @@ -141,26 +144,27 @@ def _initialize_instance( self.mask = mask # OTEL Tracer - tracer_provider = _init_tracer_provider( - environment=environment, release=release, sample_rate=sample_rate - ) + if tracing_enabled: + tracer_provider = _init_tracer_provider( + environment=environment, release=release, sample_rate=sample_rate + ) - langfuse_processor = LangfuseSpanProcessor( - public_key=self.public_key, - secret_key=secret_key, - host=host, - timeout=timeout, - flush_at=flush_at, - flush_interval=flush_interval, - ) - tracer_provider.add_span_processor(langfuse_processor) + langfuse_processor = LangfuseSpanProcessor( + public_key=self.public_key, + secret_key=secret_key, + host=host, + timeout=timeout, + flush_at=flush_at, + flush_interval=flush_interval, + ) + tracer_provider.add_span_processor(langfuse_processor) - tracer_provider = cast(TracerProvider, otel_trace_api.get_tracer_provider()) - self._otel_tracer = tracer_provider.get_tracer( - LANGFUSE_TRACER_NAME, - langfuse_version, - attributes={"public_key": self.public_key}, - ) + tracer_provider = cast(TracerProvider, otel_trace_api.get_tracer_provider()) + self._otel_tracer = tracer_provider.get_tracer( + LANGFUSE_TRACER_NAME, + langfuse_version, + attributes={"public_key": self.public_key}, + ) # API Clients From e3553af14212be8fda45586649fd8e4b3d19975f Mon Sep 17 00:00:00 2001 From: Hassieb Pakzad <68423100+hassiebp@users.noreply.github.com> Date: Mon, 16 Jun 2025 13:53:47 +0200 Subject: [PATCH 2/2] Update langfuse/_client/resource_manager.py Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com> --- langfuse/_client/resource_manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langfuse/_client/resource_manager.py b/langfuse/_client/resource_manager.py index 23a26909b..72b55b276 100644 --- a/langfuse/_client/resource_manager.py +++ b/langfuse/_client/resource_manager.py @@ -114,7 +114,7 @@ def __new__( media_upload_thread_count=media_upload_thread_count, sample_rate=sample_rate, mask=mask, - tracing_enabled=tracing_enabled or True, + tracing_enabled=tracing_enabled if tracing_enabled is not None else True, ) cls._instances[public_key] = instance