Skip to content

Commit 9a2df17

Browse files
authored
Merge pull request #1115 from guardrails-ai/update_hub_exporter
use the batch exporter instead of the simple one
2 parents 7b5716a + 0fd1e72 commit 9a2df17

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

guardrails/run/async_runner.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ async def async_call(
281281
return llm_response
282282

283283
# TODO: Refactor this to use inheritance and overrides
284-
# @async_trace(name="/validation", origin="AsyncRunner.async_validate")
284+
@async_trace(name="/validation", origin="AsyncRunner.async_validate")
285285
async def async_validate(
286286
self,
287287
iteration: Iteration,

guardrails/utils/hub_telemetry_utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
)
99
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
1010
from opentelemetry.sdk.trace import TracerProvider
11-
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor
11+
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, BatchSpanProcessor
1212
from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator
1313
from opentelemetry.trace.propagation import set_span_in_context
1414

@@ -74,9 +74,9 @@ def initialize_tracer(
7474
self._tracer_provider = TracerProvider(resource=self._resource)
7575

7676
if export_locally:
77-
self._processor = SimpleSpanProcessor(ConsoleSpanExporter())
77+
self._processor = BatchSpanProcessor(ConsoleSpanExporter())
7878
else:
79-
self._processor = SimpleSpanProcessor(
79+
self._processor = BatchSpanProcessor(
8080
OTLPSpanExporter(endpoint=self._endpoint)
8181
)
8282

tests/integration_tests/test_telemetry.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ def test_hub_traces_go_to_hub_telem_sink(self, mocker):
8181
"guardrails.utils.hub_telemetry_utils.OTLPSpanExporter",
8282
return_value=hub_exporter,
8383
)
84+
hub_processor = SimpleSpanProcessor(hub_exporter)
85+
86+
mocker.patch(
87+
"guardrails.utils.hub_telemetry_utils.BatchSpanProcessor",
88+
return_value=hub_processor,
89+
)
8490

8591
from guardrails import Guard
8692
from tests.integration_tests.test_assets.validators import LowerCase
@@ -126,6 +132,13 @@ def test_no_cross_contamination(self, mocker):
126132
)
127133
mock_hub_otlp_span_exporter.return_value = hub_exporter
128134

135+
hub_processor = SimpleSpanProcessor(hub_exporter)
136+
137+
mocker.patch(
138+
"guardrails.utils.hub_telemetry_utils.BatchSpanProcessor",
139+
return_value=hub_processor,
140+
)
141+
129142
from guardrails.telemetry import default_otel_collector_tracer
130143
from guardrails import Guard
131144
from tests.integration_tests.test_assets.validators import LowerCase

0 commit comments

Comments
 (0)