Closed
Description
Related to #4406. The following code sets the span status to ERROR
in opentelemetry-api==1.31.0
and opentelemetry-sdk==1.31.0
:
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import (
BatchSpanProcessor,
ConsoleSpanExporter,
)
provider = TracerProvider()
processor = BatchSpanProcessor(ConsoleSpanExporter())
provider.add_span_processor(processor)
trace.set_tracer_provider(provider)
tracer = trace.get_tracer("my.tracer.name")
def f():
span = tracer.start_span("test")
with trace.use_span(span, end_on_exit=True):
yield
g = f()
next(g)
g.close()
Output:
{
"name": "test",
"context": {
"trace_id": "0xe1dd99a7ddbd4521416321571fa37d42",
"span_id": "0x3d01a4fbfdad0508",
"trace_state": "[]"
},
"kind": "SpanKind.INTERNAL",
"parent_id": null,
"start_time": "2025-03-13T11:47:07.138186Z",
"end_time": "2025-03-13T11:47:07.138437Z",
"status": {
"status_code": "ERROR",
"description": "GeneratorExit: "
},
"attributes": {},
"events": [
{
"name": "exception",
"timestamp": "2025-03-13T11:47:07.138431Z",
"attributes": {
"exception.type": "GeneratorExit",
"exception.message": "",
"exception.stacktrace": "Traceback (most recent call last):\n File \"/Users/harutaka.kawamura/.pyenv/versions/miniconda3-latest/envs/mlflow/lib/python3.9/site-packages/opentelemetry/trace/__init__.py\", line 587, in use_span\n yield span\n File \"/Users/harutaka.kawamura/Desktop/repositories/mlflow/b.py\", line 19, in f\n yield\nGeneratorExit\n",
"exception.escaped": "False"
}
}
],
"links": [],
"resource": {
"attributes": {
"telemetry.sdk.language": "python",
"telemetry.sdk.name": "opentelemetry",
"telemetry.sdk.version": "1.31.0",
"service.name": "unknown_service"
},
"schema_url": ""
}
}
The same code doesn't set the span status to ERROR
in opentelemetry-api==1.30.0
and opentelemetry-sdk==1.30.0
:
{
"name": "test",
"context": {
"trace_id": "0xc9f3585ec669a8e7c3f3fd64538d582f",
"span_id": "0x7e5e006dae5a6345",
"trace_state": "[]"
},
"kind": "SpanKind.INTERNAL",
"parent_id": null,
"start_time": "2025-03-13T15:19:56.265241Z",
"end_time": "2025-03-13T15:19:56.265253Z",
"status": {
"status_code": "UNSET"
},
"attributes": {},
"events": [],
"links": [],
"resource": {
"attributes": {
"telemetry.sdk.language": "python",
"telemetry.sdk.name": "opentelemetry",
"telemetry.sdk.version": "1.30.0",
"service.name": "unknown_service"
},
"schema_url": ""
}
}
Is this intended?