Make OSProfiler compatible with OpenTracing API
OSprofiler [1] has the same concept with Google Dapper [2], Zipkin [3].
OSprofiler traces can be retrieved as json, dot graph, html output. However, it lacks of UI, sampling rate, instruments, etc.
Making OSprofiler compatible with OpenTracing API [4,5,6] has some great advantages:
- Standardize data structure/model with OpenTracing API
- Store trace in various back-end
- Show traces in various UIs: Jaeger, Zipkin, LightStep, Appdash, Hawkular, etc.
- Use query model of other tracers
- Implement sampling rate and supported from other tracers
References:
[1] OSprofiler spec in Mitaka: https:/
[2] Google Dapper: https:/
[3] Twitter Zipkin: http://
[4] OpenTracing: http://
[5] OpenTracing API specification: https:/
[6] OpenTracing Python: https:/
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- Tovin Seven
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- New
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
TODO(tovin07): Find the way to change span_id from outside tracer.start_span (or start_manual_span, start_active_span)
NOTE(tovin07): Override Jaeger span id with id from OSprofiler. Jaeger, lighstep, basic tracer and some other tracers generate new id for span inside tracer.start_span method.
TODO(tovin07): tracer inject/extract should call inject/extract from opentracing API in the future, after we replace current inject/extract mechanism with mechanism from OpenTracing API
Gerrit topic: https:/
Addressed by: https:/
[WiP] OSprofiler with OpenTracing compatible