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 instrumentation to use OpenTelemetry API directly #12

Closed
55 tasks done
trask opened this issue Nov 15, 2019 · 1 comment
Closed
55 tasks done

Change instrumentation to use OpenTelemetry API directly #12

trask opened this issue Nov 15, 2019 · 1 comment
Milestone

Comments

@trask
Copy link
Member

trask commented Nov 15, 2019

The reason behind this is to be able to use the same instrumentation in the future for both auto-instrumentation and whitebox instrumentation where possible.

Since instrumentation can be injected into any class loader (including the bootstrap class loader), the instrumentation's use of the OpenTelemetry API will need to be shaded, and the agent will need to provide a shaded version of the OpenTelemetry API in the bootstrap class loader.

This may have a downstream impact whether the OpenTelemetry SDK exporters need to be shaded (or at least partially shaded to match the API shading), but there are several options available to us here, including shading a user-supplied exporter at runtime if needed (vendors could shade their own exporter at compile time when bundling everything together).


Tracking modules as they are updated to use the OpenTelemetry API directly below.

If you want to work on one that has not already been updated, open an issue (e.g. #83, #84, #85) to let everyone know that you are going to work on it (to avoid two people working on the same one). Someone will assign it to you if you don't have rights to assign it to yourself.

See PRs #55, #67, #72, #75, #81, #87 to see how several of the modules have already been updated to use the OpenTelemetry API directly.

  • akka-http-10.0
  • apache-httpasyncclient-4
  • apache-httpclient-4
  • aws-java-sdk-1.11.0
  • cdi-1.2
  • couchbase-2.0
  • couchbase-2.6
  • datastax-cassandra-3
  • dropwizard
  • elasticsearch
  • glassfish
  • google-http-client
  • grizzly-2
  • grpc-1.5
  • hibernate
  • http-url-connection
  • hystrix-1.4
  • java-concurrent
  • jax-rs-annotations-1
  • jax-rs-annotations-2
  • jax-rs-client-1.1
  • jax-rs-client-2.0
  • jboss-classloading
  • jdbc
  • jedis-1.4
  • jedis-3.0
  • jetty-8
  • jms
  • jsp-2.3
  • kafka-clients-0.11
  • lettuce-5
  • mongo
  • netty-4.0
  • netty-4.1
  • okhttp-3
  • osgi-classloading
  • play-2.4
  • play-2.6
  • play-ws-1
  • play-ws-2
  • play-ws-2.1
  • ratpack-1.4
  • reactor-core-3.1
  • rmi
  • rxjava-1
  • servlet
  • sparkjava-2.3
  • spring-data-1.8
  • spring-webflux-5
  • spring-webmvc-3.1
  • spymemcached-2.12
  • tomcat-classloading
  • trace-annotation
  • twilio
  • vertx
@trask
Copy link
Member Author

trask commented Feb 5, 2020

This is all done now!

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

1 participant