Skip to content

Commit ff3679c

Browse files
committed
Fixed typos, vestigial code and improper use of log_extender
1 parent 9e5adb7 commit ff3679c

3 files changed

Lines changed: 39 additions & 52 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ classifiers = [
2020
]
2121
license = { text = "BSD-3-Clause" }
2222
requires-python = ">=3.10"
23-
dependencies = ["zocalo","marshmallow","bidict", "pika", "setuptools", "stomp-py>=7", "opentelemetry-api==1.20.0", "opentelemetry-sdk==1.20.0", "opentelemetry-exporter-otlp-proto-http==1.20.0" ]
23+
dependencies = ["bidict", "pika", "setuptools", "stomp-py>=7", "opentelemetry-api==1.20.0", "opentelemetry-sdk==1.20.0", "opentelemetry-exporter-otlp-proto-http==1.20.0" ]
2424

2525
[project.urls]
2626
Download = "https://github.com/DiamondLightSource/python-workflows/releases"

src/workflows/recipe/__init__.py

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -72,40 +72,34 @@ def unwrap_recipe(header, message):
7272
if header.get("workflows-recipe") in {True, "True", "true", 1}:
7373
rw = RecipeWrapper(message=message, transport=transport_layer)
7474

75-
# Extract recipe_id on the current span
75+
# Extract recipe ID from environment and add to current span
7676
span = trace.get_current_span()
77-
recipe_id = None
78-
79-
# Extract recipe ID from environment
80-
if isinstance(message, dict):
81-
environment = message.get("environment", {})
82-
if isinstance(environment, dict):
83-
recipe_id = environment.get("ID")
77+
recipe_id = rw.environment.get("ID")
8478

8579
if recipe_id:
8680
span.set_attribute("recipe_id", recipe_id)
87-
span.add_event(
88-
"recipe.id_extracted", attributes={"recipe_id": recipe_id}
89-
)
9081

9182
# Extract span_id and trace_id for logging
9283
span_context = span.get_span_context()
9384
if span_context and span_context.is_valid:
94-
span_id = format(span_context.span_id, "016x")
95-
trace_id = format(span_context.trace_id, "032x")
85+
span_id = span_context.span_id
86+
trace_id = span_context.trace_id
9687

97-
log_extra = {
88+
otel_logs = {
9889
"span_id": span_id,
9990
"trace_id": trace_id,
10091
}
101-
92+
10293
if recipe_id:
103-
log_extra["recipe_id"] = recipe_id
94+
otel_logs["recipe_id"] = recipe_id
95+
else:
96+
otel_logs = "No OTEL related logs available"
10497

10598
if log_extender and rw.environment and rw.environment.get("ID"):
106-
with log_extender("recipe_ID", rw.environment["ID"]):
99+
with log_extender("recipe_ID", rw.environment["ID"]), log_extender("otel_logs", otel_logs):
107100
return callback(rw, header, message.get("payload"))
108101
return callback(rw, header, message.get("payload"))
102+
109103
if allow_non_recipe_messages:
110104
return callback(None, header, message)
111105
# self.log.warning('Discarding non-recipe message:\n' + \

src/workflows/services/common_service.py

Lines changed: 27 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -195,44 +195,37 @@ def start_transport(self):
195195
try:
196196
# Configure OTELTracing if configuration is available
197197
otel_config = (
198-
self.config.opentelemetry if self.config and hasattr(self.config, "opentelemetry") else None
198+
self.config._opentelemetry if self.config and hasattr(self.config, "opentelemetry") else None
199+
)
200+
201+
if otel_config and "timeout" not in otel_config:
202+
self.log.warning("Missing optional OTEL configuration field `timeout`. Will default to 10 seconds. ")
203+
204+
# Configure OTELTracing
205+
resource = Resource.create(
206+
{
207+
SERVICE_NAME: self._service_name,
208+
}
199209
)
200210

201-
if otel_config:
202-
if "endpoint" not in otel_config:
203-
self.log.warning("Missing required OTEL configuration field `endpoint`.")
204-
205-
if "timeout" not in otel_config:
206-
self.log.warning("Missing optional OTEL configuration field `timout`. Will default to 10 seconds. ")
207-
208-
# Configure OTELTracing
209-
resource = Resource.create(
210-
{
211-
SERVICE_NAME: self._service_name,
212-
}
213-
)
214-
215-
self.log.debug("Configuring OTELTracing")
216-
provider = TracerProvider(resource=resource)
217-
trace.set_tracer_provider(provider)
211+
self.log.debug("Configuring OTELTracing")
212+
provider = TracerProvider(resource=resource)
213+
trace.set_tracer_provider(provider)
218214

219-
# Configure BatchProcessor and OTLPSpanExporter using config values
220-
otlp_exporter = OTLPSpanExporter(
221-
endpoint=otel_config["endpoint"],
222-
timeout=otel_config.get("timeout", 10),
223-
)
224-
span_processor = BatchSpanProcessor(otlp_exporter)
225-
provider.add_span_processor(span_processor)
215+
# Configure BatchProcessor and OTLPSpanExporter using config values
216+
otlp_exporter = OTLPSpanExporter(
217+
endpoint=otel_config["endpoint"],
218+
timeout=otel_config.get("timeout", 10),
219+
)
220+
span_processor = BatchSpanProcessor(otlp_exporter)
221+
provider.add_span_processor(span_processor)
226222

227-
# Add OTELTracingMiddleware to the transport layer
228-
tracer = trace.get_tracer(__name__)
229-
otel_middleware = OTELTracingMiddleware(
230-
tracer, service_name=self._service_name
231-
)
232-
self._transport.add_middleware(otel_middleware)
233-
except Exception as e:
234-
# Continue without tracing if configuration fails
235-
self.log.warning("Failed to configure OpenTelemetry tracing: %s", str(e))
223+
# Add OTELTracingMiddleware to the transport layer
224+
tracer = trace.get_tracer(__name__)
225+
otel_middleware = OTELTracingMiddleware(
226+
tracer, service_name=self._service_name
227+
)
228+
self._transport.add_middleware(otel_middleware)
236229

237230
metrics = self._environment.get("metrics")
238231
if metrics:

0 commit comments

Comments
 (0)