-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shim: OpenCensus Shim #93
Comments
Is that still active? |
It is still a goal across OpenTelemetry to provide backwards compatible support with OpenCensus. Though, this is not prioritized work here currently. |
I'd like to tackle this. I recently made it possible to swap out the OpenCensus "SDK" for go: census-instrumentation/opencensus-go#1238, and would like to contribute a shim library that implements the OpenCensus APIs using opentelemetry. I have a working prototype here: https://github.com/dashpole/opencensus-migration-go/blob/master/migration/tracer.go If that direction sounds good, let me know where the shim should live, and i'll open a PR. |
@dashpole that sounds good to me. Including a new |
I forgot one piece in opencensus-go needed to accomplish this, so I haven't opened the PR yet. In the mean time, I wanted to raise a few incompatibilities between OpenCensus and OpenTelemetry:
|
Is the current focus of the shim on the tracing side of OpenCensus? While looking into migrating from OpenCensus to OpenTelemetry with the focus on our metrics, I realized OpenTelemetry don't have full metrics support in packages like |
@yegle the tracing API is more mature than the metric API in OpenTelemetry. The ultimate goal is to have a complete migration shim. However, something is better than nothing and it seems like we are hoping to iterate a into a full solution, starting with what we can currently do in tracing. |
SGTM
I think this is a good way to at least start. |
I wanted to add an example for using the bridge, but otelgrpc is in the contrib repo. Using it in the example in this repo would produce an import cycle, or pin the example to a released version of this repo (v0.13.0) instead of using HEAD. I could:
|
We chose option 3 in the meeting today. We can put it in the propagators package in contrib. The example will live within the opencensus binary propagation package. |
For metrics, this is the approach java is taking: open-telemetry/opentelemetry-java#2085 They implemented a metrics exporter bridge (i.e. wrap an OpenTelemetry exporter so that it implements the OpenCensus exporter interface). If you have a mix of OpenTelemetry and OpenCensus libraries, you can use a single OpenTelemetry exporter with the OpenTelemetry SDK and the OpenCensus SDK. Q: Why didn't we take that approach with tracing? It seems simpler... Q: Why not take the approach tracing took by implementing the OpenCensus monitoring API using OpenTelemetry? Q: Why do we need a bridge at all if we don't need to worry about the context propagation problem? Questions I have:
|
AIs from 12/10/20 sig meeting:
|
Can we split this into two issues (for trace and metric), such that we can close out the trace-related one which blocks RC and put the metrics-related into a future milestone? |
Create an OpenCensus shim that bridges opencensus to opentelemetry.
The text was updated successfully, but these errors were encountered: