Skip to content

Commit aecc347

Browse files
authored
Use default TraceContext propagator in example (open-telemetry#188)
1 parent 27f04b6 commit aecc347

File tree

2 files changed

+14
-19
lines changed

2 files changed

+14
-19
lines changed

examples/opentelemetry-example-app/src/opentelemetry_example_app/flask_example.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@
2121
import requests
2222

2323
import opentelemetry.ext.http_requests
24-
from opentelemetry import propagators, trace
24+
from opentelemetry import trace
2525
from opentelemetry.ext.flask import instrument_app
26-
from opentelemetry.sdk.context.propagation.b3_format import B3Format
2726
from opentelemetry.sdk.trace import TracerSource
2827

2928

@@ -43,17 +42,14 @@ def configure_opentelemetry(flask_app: flask.Flask):
4342
"""
4443
# Start by configuring all objects required to ensure
4544
# a complete end to end workflow.
46-
# the preferred implementation of these objects must be set,
45+
# The preferred implementation of these objects must be set,
4746
# as the opentelemetry-api defines the interface with a no-op
4847
# implementation.
4948
trace.set_preferred_tracer_source_implementation(lambda _: TracerSource())
49+
5050
# Next, we need to configure how the values that are used by
5151
# traces and metrics are propagated (such as what specific headers
5252
# carry this value).
53-
54-
# TBD: can remove once default TraceContext propagators are installed.
55-
propagators.set_global_httptextformat(B3Format())
56-
5753
# Integrations are the glue that binds the OpenTelemetry API
5854
# and the frameworks and libraries that are used together, automatically
5955
# creating Spans and propagating context as appropriate.

examples/opentelemetry-example-app/tests/test_flask_example.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
from werkzeug.wrappers import BaseResponse
2121

2222
import opentelemetry_example_app.flask_example as flask_example
23-
from opentelemetry.sdk import trace
24-
from opentelemetry.sdk.context.propagation import b3_format
23+
from opentelemetry import trace
24+
from opentelemetry.sdk import trace as trace_sdk
2525

2626

2727
class TestFlaskExample(unittest.TestCase):
@@ -46,7 +46,7 @@ def tearDown(self):
4646
self.send_patcher.stop()
4747

4848
def test_full_path(self):
49-
trace_id = trace.generate_trace_id()
49+
trace_id = trace_sdk.generate_trace_id()
5050
# We need to use the Werkzeug test app because
5151
# The headers are injected at the wsgi layer.
5252
# The flask test app will not include these, and
@@ -56,18 +56,17 @@ def test_full_path(self):
5656
client.get(
5757
"/",
5858
headers={
59-
"x-b3-traceid": b3_format.format_trace_id(trace_id),
60-
"x-b3-spanid": b3_format.format_span_id(
61-
trace.generate_span_id()
62-
),
63-
"x-b3-sampled": "1",
59+
"traceparent": "00-{:032x}-{:016x}-{:02x}".format(
60+
trace_id,
61+
trace_sdk.generate_span_id(),
62+
trace.TraceOptions.SAMPLED,
63+
)
6464
},
6565
)
6666
# assert the http request header was propagated through.
6767
prepared_request = self.send.call_args[0][1]
6868
headers = prepared_request.headers
69-
for required_header in {"x-b3-traceid", "x-b3-spanid", "x-b3-sampled"}:
70-
self.assertIn(required_header, headers)
71-
self.assertEqual(
72-
headers["x-b3-traceid"], b3_format.format_trace_id(trace_id)
69+
self.assertRegex(
70+
headers["traceparent"],
71+
r"00-{:032x}-[0-9a-f]{{16}}-01".format(trace_id),
7372
)

0 commit comments

Comments
 (0)