I need to trace Flask request what is hanging. I try to use OpenTracing and friends.
- Zipkin
server
podman run -d -p 127.0.0.1:9411:9411 openzipkin/zipkin
clients
import opentracing
from https://github.com/opentracing/opentracing-python doesn't send anything to servers (and to http://127.0.0.1:9411/zipkin in particular). Weird. Need to find a wrapper for it. Maybe I've missed something.from flask_opentracing import FlaskTracing
hosted at https://github.com/opentracing-contrib/python-flask doesn't send anything too, but povides a explicit placeholder for a clent, which is calledtracer
for some reason.- https://github.com/qiajigou/flask-zipkin This works.
from flask_zipkin import Zipkin
from app import app
zipkin = Zipkin(app)
app.config['ZIPKIN_DSN'] = "http://127.0.0.1:9411/api/v1/spans"
Doesn't log much though. Request start and stop.
- https://github.com/uber-common/opentracing-python-instrumentation - TBD
- https://github.com/signalfx/signalfx-python-tracing#Automatically-instrument-a-Python-application - TBD
All other Zipkin/OpenTracing instrumentation for Flask also logged only request start/end timespans without auto tracing any interesting events in between (such as subpocess calls). The next step is to looks into OpenTelemetry (merged OpenTracing and OpenCensus) and Flask / Python / geven auto-instrumentation.