48
48
_LAST_UNSUPPRESSED_SPAN = "LAST_UNSUPPRESSED_SPAN"
49
49
_ERROR_SPAN_ATTRIBUTE = "error.type"
50
50
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
+
51
68
52
69
class _SuppressionContextManager (ContextManager ):
53
70
def __init__ (self , span : "OpenTelemetrySpan" ):
@@ -119,27 +136,8 @@ def __init__(
119
136
120
137
## kind
121
138
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
+
143
141
if span_kind and otel_kind is None :
144
142
raise ValueError ("Kind {} is not supported in OpenTelemetry" .format (span_kind ))
145
143
@@ -210,23 +208,7 @@ def kind(self) -> Optional[SpanKind]:
210
208
value = self .span_instance .kind # type: ignore[attr-defined]
211
209
except AttributeError :
212
210
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 )
230
212
231
213
@kind .setter
232
214
def kind (self , value : SpanKind ) -> None :
@@ -235,27 +217,7 @@ def kind(self, value: SpanKind) -> None:
235
217
:param value: The span kind to set.
236
218
:type value: ~azure.core.tracing.SpanKind
237
219
"""
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 )
259
221
if kind is None :
260
222
raise ValueError ("Kind {} is not supported in OpenTelemetry" .format (value ))
261
223
try :
@@ -302,8 +264,10 @@ def finish(self) -> None:
302
264
self .span_instance .end ()
303
265
304
266
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
+
307
271
:return: A key value pair dictionary
308
272
:rtype: dict[str, str]
309
273
"""
@@ -312,8 +276,7 @@ def to_header(self) -> Dict[str, str]:
312
276
return temp_headers
313
277
314
278
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.
317
280
318
281
:param key: The key of the key value pair
319
282
:type key: str
0 commit comments