This allows custom distributions of the agent to register `HttpServerResponseCustomizer` implementations. When a supported HTTP server instrumentation starts processing a response, the `onStart` method of all registered implementations will be invoked with the `Context` of the SERVER span, an instrumentation-specific response object and `HttpServerResponseMutator` instance that allows appending headers to that response. The intent of this is to allow custom distributions to set a header containing span context information, such as the trace and span IDs. As such, the initial implementation only allows appending response headers and nothing else. The `HttpServerResponseCustomizer` and related classes are currently in a subpackage of the `io.opentelemetry.javaagent.bootstrap` package in `javaagent-extension-api`. This makes them get loaded in the bootstrap classloader, thus directly accessible from instrumentations. I am not aware if there is an elegant way to put it in the agent classloader instead, yet have the same instance accessible from both `AgentInstaller` and instrumentations. This also includes Tomcat-specific implementation in order to be able to demonstrate that it works, and add automated testing of this to HttpServerTest including one implementation. |
||
---|---|---|
.. | ||
main | ||
misc | ||
test/java/io/opentelemetry/instrumentation |