Skip to content
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

Change the spec to be closer to OpenTracing #177

Closed
rochdev opened this issue Jul 9, 2019 · 6 comments
Closed

Change the spec to be closer to OpenTracing #177

rochdev opened this issue Jul 9, 2019 · 6 comments

Comments

@rochdev
Copy link
Member

rochdev commented Jul 9, 2019

Right now the specification shares many common traits with OpenTracing, yet it has many differences which I think are unnecessary.

This is problematic for a few reasons:

  • One of the goals of this project is to be OpenTracing compatible. The best way to achieve that is to extend OpenTracing. I did some testing on my end and this is definitely possible, at least in JavaScript.
  • OpenTracing has a very large user base at this point, and many libraries are implementing it. It will be easier for everyone to switch to OpenTelemetry if all they have to do is to add onto the existing API.
  • Several vendors are already OpenTracing implementations or have an OpenTracing compatibility API. A few examples include Zipkin, Jaeger, Lightstep and Datadog.
  • It looks like names may have been chosen based on personal opinions. When existing names exist for a domain, these should not be changed without a strong reasoning (i.e. tags vs attributes)

I would like to propose making 2 changes to the specification to allow better interoperability with OpenTracing:

  1. Change the naming to be closer to OpenTracing.
  2. Make the specification more flexible, which is already being discussed in Proposal: Focus on functionality/capabilities rather than how #165. This will allow OpenTracing to be extended in languages where it's possible.

With these small changes, I believe it would be possible for OpenTelemetry to basically be an implementation of OpenTracing, which will result in easier adoption and migration.

@rochdev rochdev changed the title Make the spec closer to OpenTracing Change the spec to be closer to OpenTracing Jul 9, 2019
@bogdandrutu
Copy link
Member

Same arguments can be made for OpenCensus. Not feasible to make the OpenTelemetry inherit or implement OpenTracing.

@rochdev
Copy link
Member Author

rochdev commented Jul 9, 2019

As mentioned above, it is feasible at the very least in JavaScript, so it could be done as a best effort. The same argument cannot be made for OpenCensus since it never gained any traction in the community and most of its use came from Istio. I would also like to point out that in some cases, both OpenTracing and OpenCensus used the same terminology, which reinforces the argument that it should not be changed.

@bogdandrutu
Copy link
Member

First of all the user for OpenCensus did not come from Istio, and it had a lot of traction especially with some of the big tech companies.

If there is a specific case where you have a problem with the terminology please file an issue or describe that specific problem.

For "extending" or getting any dependency on OpenTracing that is not possible in this project, as well as it is not possible to depend on OpenCensus.

@bhs
Copy link

bhs commented Jul 10, 2019

@rochdev it's unclear whether you're advocating for something Javascript-specific or making a broader push across all languages...

If Javascript-specific: we should strive for consistent OpenTel terminology across languages (per terminology.md)... especially since a software bridge can easily handle redirecting one naming convention to the other.

If across all languages: I don't see why OpenTracing should get a leg up in terms of influencing the OpenTelemetry API. As has been written in many other places, we do want a programmatic adapter/bridge between OpenTelemetry and both OpenTracing and OpenTelemetry, but literally building off / extending of OpenTracing does not seem like the right long-term strategy given the expressed goals for OpenTelemetry.

I'm writing this in a hurry, so apologies if I'm being vague/unclear... happy to try to elaborate.

@yurishkuro
Copy link
Member

To add to what Ben said:

  • the naming is not arbitrary or based on personal preferences, it was discussed in depth and there are many tickets found in the java repo (perhaps we should move them to specs for better record keeping). There are many conflicting requirements and naming cannot satisfy every one of them. Concretely on tags vs. attributes, both OT and OC had the notion of "tags" with completely different meaning. The decision was made to avoid using "tags" altogether to avoid confusion.
  • complete backwards compatibility with OpenTracing API is not the goal of the project, mainly because it's simply not possible given that context propagation is pulled into a lower layer on which tracing, metrics, etc. are dependent.

@rochdev
Copy link
Member Author

rochdev commented Jul 11, 2019

but literally building off / extending of OpenTracing does not seem like the right long-term strategy given the expressed goals for OpenTelemetry.

I was not proposing to actually extend OpenTracing but simply to have the same interface. In many languages, interfaces that match are considered equal.

complete backwards compatibility with OpenTracing API is not the goal of the project, mainly because it's simply not possible given that context propagation is pulled into a lower layer on which tracing, metrics, etc. are dependent.

Makes sense. I didn't consider metrics and other telemetry when I attempted to make it work directly with the OpenTracing API. As long as it's compatible in the end, at least it will be easier for users to migrate.

Thanks all for the clarifications!

@rochdev rochdev closed this as completed Jul 11, 2019
TuckTuckFloof pushed a commit to TuckTuckFloof/opentelemetry-specification that referenced this issue Oct 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants