diff --git a/ddtrace/_trace/_span_link.py b/ddtrace/_trace/_span_link.py index fc8a4f472d..f635af3820 100644 --- a/ddtrace/_trace/_span_link.py +++ b/ddtrace/_trace/_span_link.py @@ -26,17 +26,11 @@ import dataclasses from enum import Enum -from typing import Any -from typing import Dict from typing import Optional -from ddtrace.internal.logger import get_logger from ddtrace.internal.utils.formats import flatten_key_value -log = get_logger(__name__) - - class SpanLinkKind(Enum): """ A collection of standard SpanLink kinds. It's possible to use others, but these should be used when possible. @@ -132,41 +126,3 @@ def __str__(self) -> str: f"trace_id={self.trace_id} span_id={self.span_id} attributes={attrs_str} " f"tracestate={self.tracestate} flags={self.flags} dropped_attributes={self._dropped_attributes}" ) - - -# Span Pointers are currently private, so let's put them here for now - - -_SPAN_POINTER_SPAN_LINK_TRACE_ID = 0 -_SPAN_POINTER_SPAN_LINK_SPAN_ID = 0 - - -class _SpanPointerDirection(Enum): - UPSTREAM = "u" - DOWNSTREAM = "d" - - -class _SpanPointer(SpanLink): - def __init__( - self, - pointer_kind: str, - pointer_direction: _SpanPointerDirection, - pointer_hash: str, - extra_attributes: Optional[Dict[str, Any]] = None, - ): - super().__init__( - trace_id=_SPAN_POINTER_SPAN_LINK_TRACE_ID, - span_id=_SPAN_POINTER_SPAN_LINK_SPAN_ID, - attributes={ - "ptr.kind": pointer_kind, - "ptr.dir": pointer_direction.value, - "ptr.hash": pointer_hash, - **(extra_attributes or {}), - }, - ) - - self.kind = SpanLinkKind.SPAN_POINTER.value - - def __post_init__(self): - # Do not want to do the trace_id and span_id checks that SpanLink does. - pass diff --git a/ddtrace/_trace/_span_pointer.py b/ddtrace/_trace/_span_pointer.py new file mode 100644 index 0000000000..e8914361c3 --- /dev/null +++ b/ddtrace/_trace/_span_pointer.py @@ -0,0 +1,42 @@ +from enum import Enum +from typing import Any +from typing import Dict +from typing import Optional + +from ddtrace._trace._span_link import SpanLink +from ddtrace._trace._span_link import SpanLinkKind + + +_SPAN_POINTER_SPAN_LINK_TRACE_ID = 0 +_SPAN_POINTER_SPAN_LINK_SPAN_ID = 0 + + +class _SpanPointerDirection(Enum): + UPSTREAM = "u" + DOWNSTREAM = "d" + + +class _SpanPointer(SpanLink): + def __init__( + self, + pointer_kind: str, + pointer_direction: _SpanPointerDirection, + pointer_hash: str, + extra_attributes: Optional[Dict[str, Any]] = None, + ): + super().__init__( + trace_id=_SPAN_POINTER_SPAN_LINK_TRACE_ID, + span_id=_SPAN_POINTER_SPAN_LINK_SPAN_ID, + attributes={ + "ptr.kind": pointer_kind, + "ptr.dir": pointer_direction.value, + "ptr.hash": pointer_hash, + **(extra_attributes or {}), + }, + ) + + self.kind = SpanLinkKind.SPAN_POINTER.value + + def __post_init__(self): + # Do not want to do the trace_id and span_id checks that SpanLink does. + pass diff --git a/ddtrace/_trace/span.py b/ddtrace/_trace/span.py index 047d40b866..cee7aeb4b0 100644 --- a/ddtrace/_trace/span.py +++ b/ddtrace/_trace/span.py @@ -16,8 +16,8 @@ from ddtrace import config from ddtrace._trace._span_link import SpanLink from ddtrace._trace._span_link import SpanLinkKind -from ddtrace._trace._span_link import _SpanPointer -from ddtrace._trace._span_link import _SpanPointerDirection +from ddtrace._trace._span_pointer import _SpanPointer +from ddtrace._trace._span_pointer import _SpanPointerDirection from ddtrace._trace.context import Context from ddtrace._trace.types import _MetaDictType from ddtrace._trace.types import _MetricDictType diff --git a/tests/tracer/test_encoders.py b/tests/tracer/test_encoders.py index 9a76523e40..7fb6728780 100644 --- a/tests/tracer/test_encoders.py +++ b/tests/tracer/test_encoders.py @@ -17,7 +17,7 @@ import pytest from ddtrace._trace._span_link import SpanLink -from ddtrace._trace._span_link import _SpanPointerDirection +from ddtrace._trace._span_pointer import _SpanPointerDirection from ddtrace._trace.context import Context from ddtrace._trace.span import Span from ddtrace.constants import ORIGIN_KEY diff --git a/tests/tracer/test_span.py b/tests/tracer/test_span.py index 7bff58dd02..fd8f995f56 100644 --- a/tests/tracer/test_span.py +++ b/tests/tracer/test_span.py @@ -9,7 +9,7 @@ import pytest from ddtrace._trace._span_link import SpanLink -from ddtrace._trace._span_link import _SpanPointerDirection +from ddtrace._trace._span_pointer import _SpanPointerDirection from ddtrace._trace.span import Span from ddtrace.constants import ENV_KEY from ddtrace.constants import ERROR_MSG