89 lines
3.6 KiB
Markdown
89 lines
3.6 KiB
Markdown
### P1 (e.g. cannot GA without these):
|
|
* ✅End-to-end tests ([#298](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/298#issuecomment-664162169))
|
|
* ✅OTLP, Jaeger and Zipkin ([#1541](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/1541))
|
|
* ✅Spring Boot and Wildfly
|
|
* (Wildfly chosen due to common javaagent issues around jboss modules and jboss logging)
|
|
* ✅Java 8, 11, and the latest Java version
|
|
* Benchmarking ([#595](https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/595))
|
|
* Runtime overhead benchmark
|
|
* Startup overhead benchmark
|
|
* All captured span attributes must either be from semantic attributes or be instrumentation-specific
|
|
* TODO define convention for instrumentation-specific attributes, e.g. "elasticsearch.*"
|
|
* Basic configuration points
|
|
* Add custom auto-instrumentation
|
|
* ✅Ability to build "custom distro"
|
|
* Documentation
|
|
* All configuration options
|
|
* Standard OpenTelemetry SDK + Exporter configuration options
|
|
* Auto-instrumentation configuration options (e.g. disable/enable, peer.service mapping)
|
|
* For each instrumentation
|
|
* Document any instrumentation-specific configuration
|
|
* How to troubleshoot (start documenting common issues somewhere)
|
|
* Library (manual) instrumentations for a few libraries commonly used with Spring:
|
|
Spring WebMVC, Spring WebFlux, Spring RestTemplate, JDBC
|
|
* (this requirement is to ensure that we have a good path forward for supporting both auto and manual instrumentation)
|
|
|
|
### P2
|
|
* Contributor experience (tag "contributor experience" plus tag "cleanup" plus tag "sporadic test failure")
|
|
* New contributor documentation
|
|
* How to write new instrumentation (auto, library, tests)
|
|
* How to understand and fix muzzle issues
|
|
* How to submit your first PR (CLA, check for CI failures, note about sporadic failures)
|
|
* Faster builds
|
|
* Fewer sporadic CI failures
|
|
* Publish a debug jar without the classdata obfuscation
|
|
|
|
### P3
|
|
* Auto-collected metrics
|
|
* System / JVM metrics (https://github.com/open-telemetry/opentelemetry-specification/issues/651)
|
|
* Request metrics (https://github.com/open-telemetry/opentelemetry-specification/issues/522, https://github.com/open-telemetry/opentelemetry-specification/pull/657)
|
|
* Library (manual) instrumentations for more libraries commonly used with Spring
|
|
* Spring Kafka, Spring AMQP, Reactor, java.util.concurrent
|
|
* Library (manual) instrumentations for libraries commonly used with Android
|
|
* OkHttp, gRPC
|
|
* Document the basic configuration points
|
|
* How to write your own auto-instrumentation
|
|
* (much of this can be shared with contributor documentation below)
|
|
* How to build your own "custom distro"
|
|
* Complete instrumentation documentation, with commitment to keeping this up-to-date going forward
|
|
* Document all spans that it captures
|
|
* Span names
|
|
* Span attributes (including explanation of any non-semantic attributes)
|
|
* Events
|
|
* Document any other effects (e.g. updating SERVER span name with route)
|
|
|
|
### Instrumentation prioritization
|
|
|
|
When it comes to prioritizing work, sometimes it's helpful to know the relative importance of a
|
|
particular instrumentation, e.g. making improvements in Spring WebFlux instrumentation would
|
|
generally take priority over making improvement in Grizzly instrumentation.
|
|
|
|
This is only intended as a guide for prioritizing work.
|
|
|
|
### P1
|
|
|
|
* Apache AsyncHttpClient
|
|
* Apache HttpClient
|
|
* Cassandra Driver
|
|
* gRPC
|
|
* HttpURLConnection
|
|
* JAX-RS
|
|
* JDBC
|
|
* Jedis
|
|
* JMS
|
|
* Kafka
|
|
* Lettuce
|
|
* MongoDB Drivers
|
|
* Netty
|
|
* OkHttp
|
|
* RabbitMQ
|
|
* Reactor
|
|
* Servlet
|
|
* Spring Scheduling
|
|
* Spring Web MVC
|
|
* Spring Webflux
|
|
|
|
### P2
|
|
|
|
* All others
|