27 lines
1.6 KiB
Markdown
27 lines
1.6 KiB
Markdown
## Introduction
|
|
|
|
This repository serves as a collection of examples of extending functionality of OpenTelemetry Java instrumentation agent.
|
|
It demonstrates how to repackage the aforementioned agent adding custom functionality.
|
|
For every extension point provided by OpenTelemetry Java instrumentation, this repository contains an example of
|
|
its usage.
|
|
|
|
## General structure
|
|
|
|
This repository has four main submodules:
|
|
|
|
* `custom` contains all custom functionality, SPI and other extensions
|
|
* `agent` contains the main repackaging functionality and, optionally, an entry point to the agent, if one wishes to
|
|
customize that
|
|
* `instrumentation` contains custom instrumentations added by vendor
|
|
* `smoke-tests` contains simple tests to verify that resulting agent builds and applies correctly
|
|
|
|
## Extensions examples
|
|
|
|
* [DemoIdGenerator](custom/src/main/java/com/example/javaagent/DemoIdGenerator.java) - custom `IdGenerator`
|
|
* [DemoPropagator](custom/src/main/java/com/example/javaagent/DemoPropagator.java) - custom `TextMapPropagator`
|
|
* [DemoPropertySource](custom/src/main/java/com/example/javaagent/DemoPropertySource.java) - default configuration
|
|
* [DemoSampler](custom/src/main/java/com/example/javaagent/DemoSampler.java) - custom `Sampler`
|
|
* [DemoSpanProcessor](custom/src/main/java/com/example/javaagent/DemoSpanProcessor.java) - custom `SpanProcessor`
|
|
* [DemoSpanExporter](custom/src/main/java/com/example/javaagent/DemoSpanExporter.java) - custom `SpanExporter`
|
|
* [DemoServlet3Instrumentation](instrumentation/servlet-3/src/main/java/com/example/javaagent/instrumentation/DemoServlet3Instrumentation.java) - additional instrumentation
|