3.6 KiB
		
	
	
	
	
	
			
		
		
	
	
			3.6 KiB
		
	
	
	
	
	
P1 (e.g. cannot GA without these):
- ✅End-to-end tests (#298)
- ✅OTLP, Jaeger and Zipkin (#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)
- 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)
 
 - All configuration options
 - 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
 
 - New contributor documentation
 
P3
- Auto-collected metrics
 - 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"
 
 - How to write your own auto-instrumentation
 - 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)
 
 - Document all spans that it captures
 
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