Skip to content

Commit 4f40935

Browse files
committed
Refactor constants
1 parent 271c7c9 commit 4f40935

File tree

1 file changed

+35
-18
lines changed

1 file changed

+35
-18
lines changed

durabletask/internal/tracing.py

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,23 @@ class StatusCode: # type: ignore[no-redef]
7979
ATTR_EVENT_TARGET_INSTANCE_ID = "durabletask.event.target_instance_id"
8080
ATTR_FIRE_AT = "durabletask.fire_at"
8181

82+
# Task type values (used in span names and as attribute values)
83+
TASK_TYPE_ORCHESTRATION = "orchestration"
84+
TASK_TYPE_TIMER = "timer"
85+
TASK_TYPE_EVENT = "event"
86+
87+
# Span name type prefixes (composite types)
88+
SPAN_TYPE_CREATE_ORCHESTRATION = "create_orchestration"
89+
SPAN_TYPE_ORCHESTRATION_EVENT = "orchestration_event"
90+
91+
# Task status values
92+
TASK_STATUS_COMPLETED = "Completed"
93+
TASK_STATUS_FAILED = "Failed"
94+
95+
# W3C Trace Context carrier keys
96+
CARRIER_KEY_TRACEPARENT = "traceparent"
97+
CARRIER_KEY_TRACESTATE = "tracestate"
98+
8299

83100
# ---------------------------------------------------------------------------
84101
# Span name helpers (mirrors TraceActivityConstants / TraceHelper naming)
@@ -101,7 +118,7 @@ def create_span_name(
101118

102119
def create_timer_span_name(orchestration_name: str) -> str:
103120
"""Build a timer span name: ``orchestration:<name>:timer``."""
104-
return f"orchestration:{orchestration_name}:timer"
121+
return f"{TASK_TYPE_ORCHESTRATION}:{orchestration_name}:{TASK_TYPE_TIMER}"
105122

106123

107124
# ---------------------------------------------------------------------------
@@ -115,11 +132,11 @@ def _trace_context_from_carrier(carrier: dict[str, str]) -> Optional[pb.TraceCon
115132
Returns ``None`` when the carrier does not contain a valid
116133
``traceparent`` header.
117134
"""
118-
traceparent = carrier.get("traceparent")
135+
traceparent = carrier.get(CARRIER_KEY_TRACEPARENT)
119136
if not traceparent:
120137
return None
121138

122-
tracestate = carrier.get("tracestate")
139+
tracestate = carrier.get(CARRIER_KEY_TRACESTATE)
123140
# Format: 00-<trace-id>-<span-id>-<flags>
124141
parts = traceparent.split("-")
125142
span_id = parts[2] if len(parts) >= 4 else ""
@@ -179,9 +196,9 @@ def extract_trace_context(proto_ctx: Optional[pb.TraceContext]) -> Optional[Any]
179196
if not traceparent:
180197
return None
181198

182-
carrier: dict[str, str] = {"traceparent": traceparent}
199+
carrier: dict[str, str] = {CARRIER_KEY_TRACEPARENT: traceparent}
183200
if proto_ctx.HasField("traceState") and proto_ctx.traceState.value:
184-
carrier["tracestate"] = proto_ctx.traceState.value
201+
carrier[CARRIER_KEY_TRACESTATE] = proto_ctx.traceState.value
185202

186203
propagator = TraceContextTextMapPropagator()
187204
ctx = propagator.extract(carrier)
@@ -278,10 +295,10 @@ def emit_orchestration_span(
278295
if not _OTEL_AVAILABLE:
279296
return
280297

281-
span_name = create_span_name("orchestration", name, version)
298+
span_name = create_span_name(TASK_TYPE_ORCHESTRATION, name, version)
282299

283300
attrs: dict[str, str] = {
284-
ATTR_TASK_TYPE: "orchestration",
301+
ATTR_TASK_TYPE: TASK_TYPE_ORCHESTRATION,
285302
ATTR_TASK_NAME: name,
286303
ATTR_TASK_INSTANCE_ID: instance_id,
287304
}
@@ -323,9 +340,9 @@ def emit_orchestration_span(
323340
else str(failure_details)
324341
)
325342
span.set_status(StatusCode.ERROR, msg)
326-
span.set_attribute(ATTR_TASK_STATUS, "Failed")
343+
span.set_attribute(ATTR_TASK_STATUS, TASK_STATUS_FAILED)
327344
else:
328-
span.set_attribute(ATTR_TASK_STATUS, "Completed")
345+
span.set_attribute(ATTR_TASK_STATUS, TASK_STATUS_COMPLETED)
329346

330347
span.end()
331348
finally:
@@ -406,10 +423,10 @@ def _emit_orchestration_span_deferred(
406423
else str(failure_details)
407424
)
408425
status = Status(StatusCode.ERROR, msg)
409-
attrs[ATTR_TASK_STATUS] = "Failed"
426+
attrs[ATTR_TASK_STATUS] = TASK_STATUS_FAILED
410427
else:
411428
status = Status(StatusCode.UNSET)
412-
attrs[ATTR_TASK_STATUS] = "Completed"
429+
attrs[ATTR_TASK_STATUS] = TASK_STATUS_COMPLETED
413430

414431
readable_span = SdkReadableSpan(
415432
name=span_name,
@@ -665,7 +682,7 @@ def emit_timer_span(
665682

666683
span_name = create_timer_span_name(orchestration_name)
667684
attrs: dict[str, str] = {
668-
ATTR_TASK_TYPE: "timer",
685+
ATTR_TASK_TYPE: TASK_TYPE_TIMER,
669686
ATTR_TASK_NAME: orchestration_name,
670687
ATTR_TASK_INSTANCE_ID: instance_id,
671688
ATTR_TASK_TASK_ID: str(timer_id),
@@ -706,9 +723,9 @@ def emit_event_raised_span(
706723
if not _OTEL_AVAILABLE:
707724
return
708725

709-
span_name = create_span_name("orchestration_event", event_name)
726+
span_name = create_span_name(SPAN_TYPE_ORCHESTRATION_EVENT, event_name)
710727
attrs: dict[str, str] = {
711-
ATTR_TASK_TYPE: "event",
728+
ATTR_TASK_TYPE: TASK_TYPE_EVENT,
712729
ATTR_TASK_NAME: event_name,
713730
ATTR_TASK_INSTANCE_ID: instance_id,
714731
}
@@ -753,9 +770,9 @@ def start_create_orchestration_span(
753770
yield None
754771
return
755772

756-
span_name = create_span_name("create_orchestration", name, version)
773+
span_name = create_span_name(SPAN_TYPE_CREATE_ORCHESTRATION, name, version)
757774
attrs: dict[str, str] = {
758-
ATTR_TASK_TYPE: "orchestration",
775+
ATTR_TASK_TYPE: TASK_TYPE_ORCHESTRATION,
759776
ATTR_TASK_NAME: name,
760777
ATTR_TASK_INSTANCE_ID: instance_id,
761778
}
@@ -781,9 +798,9 @@ def start_raise_event_span(
781798
yield None
782799
return
783800

784-
span_name = create_span_name("orchestration_event", event_name)
801+
span_name = create_span_name(SPAN_TYPE_ORCHESTRATION_EVENT, event_name)
785802
attrs: dict[str, str] = {
786-
ATTR_TASK_TYPE: "event",
803+
ATTR_TASK_TYPE: TASK_TYPE_EVENT,
787804
ATTR_TASK_NAME: event_name,
788805
ATTR_EVENT_TARGET_INSTANCE_ID: target_instance_id,
789806
}

0 commit comments

Comments
 (0)