Skip to content

Commit 1e2b595

Browse files
authored
[Otel plugin] Misc cleanup (#39658)
- Cleaned up the kind mappings. - Adjust some docstring formatting. Signed-off-by: Paul Van Eck <[email protected]>
1 parent 9bafcc4 commit 1e2b595

File tree

1 file changed

+26
-63
lines changed
  • sdk/core/azure-core-tracing-opentelemetry/azure/core/tracing/ext/opentelemetry_span

1 file changed

+26
-63
lines changed

sdk/core/azure-core-tracing-opentelemetry/azure/core/tracing/ext/opentelemetry_span/__init__.py

Lines changed: 26 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,23 @@
4848
_LAST_UNSUPPRESSED_SPAN = "LAST_UNSUPPRESSED_SPAN"
4949
_ERROR_SPAN_ATTRIBUTE = "error.type"
5050

51+
_OTEL_KIND_MAPPINGS = {
52+
OpenTelemetrySpanKind.CLIENT: SpanKind.CLIENT,
53+
OpenTelemetrySpanKind.CONSUMER: SpanKind.CONSUMER,
54+
OpenTelemetrySpanKind.PRODUCER: SpanKind.PRODUCER,
55+
OpenTelemetrySpanKind.SERVER: SpanKind.SERVER,
56+
OpenTelemetrySpanKind.INTERNAL: SpanKind.INTERNAL,
57+
}
58+
59+
_SPAN_KIND_MAPPINGS = {
60+
SpanKind.CLIENT: OpenTelemetrySpanKind.CLIENT,
61+
SpanKind.CONSUMER: OpenTelemetrySpanKind.CONSUMER,
62+
SpanKind.PRODUCER: OpenTelemetrySpanKind.PRODUCER,
63+
SpanKind.SERVER: OpenTelemetrySpanKind.SERVER,
64+
SpanKind.INTERNAL: OpenTelemetrySpanKind.INTERNAL,
65+
SpanKind.UNSPECIFIED: OpenTelemetrySpanKind.INTERNAL,
66+
}
67+
5168

5269
class _SuppressionContextManager(ContextManager):
5370
def __init__(self, span: "OpenTelemetrySpan"):
@@ -119,27 +136,8 @@ def __init__(
119136

120137
## kind
121138
span_kind = kind
122-
otel_kind = (
123-
OpenTelemetrySpanKind.CLIENT
124-
if span_kind == SpanKind.CLIENT
125-
else (
126-
OpenTelemetrySpanKind.PRODUCER
127-
if span_kind == SpanKind.PRODUCER
128-
else (
129-
OpenTelemetrySpanKind.SERVER
130-
if span_kind == SpanKind.SERVER
131-
else (
132-
OpenTelemetrySpanKind.CONSUMER
133-
if span_kind == SpanKind.CONSUMER
134-
else (
135-
OpenTelemetrySpanKind.INTERNAL
136-
if span_kind == SpanKind.INTERNAL
137-
else OpenTelemetrySpanKind.INTERNAL if span_kind == SpanKind.UNSPECIFIED else None
138-
)
139-
)
140-
)
141-
)
142-
)
139+
otel_kind = _SPAN_KIND_MAPPINGS.get(span_kind)
140+
143141
if span_kind and otel_kind is None:
144142
raise ValueError("Kind {} is not supported in OpenTelemetry".format(span_kind))
145143

@@ -210,23 +208,7 @@ def kind(self) -> Optional[SpanKind]:
210208
value = self.span_instance.kind # type: ignore[attr-defined]
211209
except AttributeError:
212210
return None
213-
return (
214-
SpanKind.CLIENT
215-
if value == OpenTelemetrySpanKind.CLIENT
216-
else (
217-
SpanKind.PRODUCER
218-
if value == OpenTelemetrySpanKind.PRODUCER
219-
else (
220-
SpanKind.SERVER
221-
if value == OpenTelemetrySpanKind.SERVER
222-
else (
223-
SpanKind.CONSUMER
224-
if value == OpenTelemetrySpanKind.CONSUMER
225-
else SpanKind.INTERNAL if value == OpenTelemetrySpanKind.INTERNAL else None
226-
)
227-
)
228-
)
229-
)
211+
return _OTEL_KIND_MAPPINGS.get(value)
230212

231213
@kind.setter
232214
def kind(self, value: SpanKind) -> None:
@@ -235,27 +217,7 @@ def kind(self, value: SpanKind) -> None:
235217
:param value: The span kind to set.
236218
:type value: ~azure.core.tracing.SpanKind
237219
"""
238-
kind = (
239-
OpenTelemetrySpanKind.CLIENT
240-
if value == SpanKind.CLIENT
241-
else (
242-
OpenTelemetrySpanKind.PRODUCER
243-
if value == SpanKind.PRODUCER
244-
else (
245-
OpenTelemetrySpanKind.SERVER
246-
if value == SpanKind.SERVER
247-
else (
248-
OpenTelemetrySpanKind.CONSUMER
249-
if value == SpanKind.CONSUMER
250-
else (
251-
OpenTelemetrySpanKind.INTERNAL
252-
if value == SpanKind.INTERNAL
253-
else OpenTelemetrySpanKind.INTERNAL if value == SpanKind.UNSPECIFIED else None
254-
)
255-
)
256-
)
257-
)
258-
)
220+
kind = _SPAN_KIND_MAPPINGS.get(value)
259221
if kind is None:
260222
raise ValueError("Kind {} is not supported in OpenTelemetry".format(value))
261223
try:
@@ -302,8 +264,10 @@ def finish(self) -> None:
302264
self.span_instance.end()
303265

304266
def to_header(self) -> Dict[str, str]:
305-
"""
306-
Returns a dictionary with the header labels and values.
267+
"""Returns a dictionary with the context header labels and values.
268+
269+
These are generally the W3C Trace Context headers (i.e. "traceparent" and "tracestate").
270+
307271
:return: A key value pair dictionary
308272
:rtype: dict[str, str]
309273
"""
@@ -312,8 +276,7 @@ def to_header(self) -> Dict[str, str]:
312276
return temp_headers
313277

314278
def add_attribute(self, key: str, value: Union[str, int]) -> None:
315-
"""
316-
Add attribute (key value pair) to the current span.
279+
"""Add attribute (key value pair) to the current span.
317280
318281
:param key: The key of the key value pair
319282
:type key: str

0 commit comments

Comments
 (0)