ga-requirements.md 3.6 KB

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)
  • 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

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