Skip to content
Closed
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ ddtrace/contrib/internal/litellm @DataDog/ml-observ
ddtrace/contrib/_litellm.py @DataDog/ml-observability
ddtrace/contrib/internal/pydantic_ai @DataDog/ml-observability
ddtrace/contrib/_pydantic_ai.py @DataDog/ml-observability
ddtrace/aiobs/ @DataDog/ml-observability
tests/llmobs @DataDog/ml-observability
tests/contrib/openai @DataDog/ml-observability
tests/contrib/langchain @DataDog/ml-observability
Expand Down
Empty file added ddtrace/_aiobs/__init__.py
Empty file.
Empty file.
Empty file.
28 changes: 28 additions & 0 deletions ddtrace/_aiobs/integrations/ray/tracer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import os


os.environ["DD_TRACE_OTEL_ENABLED"] = "true"

from opentelemetry.trace import set_tracer_provider

from ddtrace.opentelemetry import TracerProvider
from ddtrace.trace import TraceFilter
from ddtrace.trace import tracer


class RayTraceFilter(TraceFilter):
def process_trace(self, trace):
for span in trace:
span.span_type = "ray." + span.name
span.name = "ray.job"
span.service = os.environ.get("DD_SERVICE", "unspecified-ray-job")
span.set_metric("_dd.djm.enabled", 1)
span.set_metric("_dd.filter.kept", 1)
span.set_metric("_dd.measured", 1)
span.set_metric("_sampling_priority_v1", 2)
return trace


def setup_tracing() -> None:
tracer.configure(trace_processors=[RayTraceFilter()])
set_tracer_provider(TracerProvider())
Loading