Closed
Description
We have an initial implementation of TraceContext and it has some issues.
The following code would get 30 test failures according to the latest W3C Distributed Tracing Validation Service:
import flask
import json
import requests
from opentelemetry import trace
from opentelemetry.ext import http_requests
from opentelemetry.ext.wsgi import OpenTelemetryMiddleware
from opentelemetry.sdk.trace import Tracer
from opentelemetry.sdk.trace.export import (
ConsoleSpanExporter,
SimpleExportSpanProcessor,
)
trace.set_preferred_tracer_implementation(lambda T: Tracer())
http_requests.enable(trace.tracer())
span_processor = SimpleExportSpanProcessor(ConsoleSpanExporter())
trace.tracer().add_span_processor(span_processor)
app = flask.Flask(__name__)
app.wsgi_app = OpenTelemetryMiddleware(app.wsgi_app)
@app.route("/", methods=["POST"])
def hello():
for action in flask.request.json:
requests.post(
url=action["url"],
data=json.dumps(action["arguments"]),
headers={
"Accept": "application/json",
"Content-Type": "application/json; charset=utf-8",
},
timeout=5.0,
)
return "hello"
if __name__ == "__main__":
app.run(debug=True)
span_processor.shutdown()