Requirements
For each instrumentation module, enable telemetry collection (where applicable), and audit/populate the metadata.yaml file with all relevant details. See documenting instrumentation for additional information on the schema and descriptions.
Telemetry collection
Each module's gradle file will need to be modified to include a system property feature flag configured for when the tests run.
tasks.test {
systemProperty(" collectMetadata" , findProperty(" collectMetadata" )?.toString() ? : " false" )
}
Sometimes instrumentation will behave differently based on configuration options, and we can
differentiate between these configurations by using the metadataConfig system property. When the
telemetry is written to a file, the value of this property will be included, or it will default to
a default attribution.
For example, to collect and write metadata for the otel.semconv-stability.opt-in=database option
set for an instrumentation:
val collectMetadata = findProperty(" collectMetadata" )?.toString() ? : " false"
tasks {
test {
usesService(gradle.sharedServices.registrations[" testcontainersBuildService" ].service)
systemProperty(" collectMetadata" , collectMetadata)
}
val testStableSemconv by registering(Test ::class ) {
testClassesDirs = sourceSets.test.get().output.classesDirs
classpath = sourceSets.test.get().runtimeClasspath
jvmArgs(" -Dotel.semconv-stability.opt-in=database" )
systemProperty(" metadataConfig" , " otel.semconv-stability.opt-in=database" )
systemProperty(" collectMetadata" , collectMetadata)
}
check {
dependsOn(testStableSemconv)
}
}
After the configuration option is set, the gradle tasks should be added to the collect.sh script . If you configured multiple test suites, be sure to add both the standard test task and the others, for example:
readonly INSTRUMENTATIONS=(
....
" clickhouse-client-0.5:javaagent:test"
" clickhouse-client-0.5:javaagent:testStableSemconv"
....
You can generate the span telemetry data by running:
./instrumentation-docs/collect.sh
And then we can update the resulting instrumentation-list.yaml by running:
./gradlew :instrumentation-docs:runAnalysis
Tip: When adding net-new modules, if you have already run the collect script for all the existing modules, comment those ones out in the collect.sh script so you can just run it for each new one to speed up your workflow.
Progress
activej-http-6.0 Fill in metadata gaps for batch 1 of instrumentations #14851
akka-actor-2.3
akka-actor-fork-join-2.5
akka-http-10.0 Fill in metadata gaps for batch 1 of instrumentations #14851
alibaba-druid-1.0 Fill in metadata gaps for batch 1 of instrumentations #14851
apache-dbcp-2.0 Fill in metadata gaps for batch 1 of instrumentations #14851
apache-dubbo-2.7 Fill in metadata gaps for batch 1 of instrumentations #14851
apache-httpasyncclient-4.1 Update apache httpclient metadata #14951
apache-httpclient-2.0 Update apache httpclient metadata #14951
apache-httpclient-4.0 Update apache httpclient metadata #14951
apache-httpclient-4.3 Update apache httpclient metadata #14951
apache-httpclient-5.0 Update apache httpclient metadata #14951
apache-httpclient-5.2 Update apache httpclient metadata #14951
apache-shenyu-2.4 Updating another batch of instrumentation metadata #14967
armeria-1.3 Updating another batch of instrumentation metadata #14967
armeria-grpc-1.14 Updating another batch of instrumentation metadata #14967
async-http-client-1.9 Updating another batch of instrumentation metadata #14967
async-http-client-2.0 Updating another batch of instrumentation metadata #14967
avaje-jex-3.0 Updating another batch of instrumentation metadata #14967
aws-lambda-core-1.0 Lambda and AWS SDK metadata updates #14997
aws-lambda-events-2.2 Lambda and AWS SDK metadata updates #14997
aws-lambda-events-3.11 Lambda and AWS SDK metadata updates #14997
aws-sdk-1.11 Lambda and AWS SDK metadata updates #14997
aws-sdk-2.2 Lambda and AWS SDK metadata updates #14997
azure-core-1.14 Azure and c3p0 metadata updates #15026
azure-core-1.19 Azure and c3p0 metadata updates #15026
azure-core-1.36 Azure and c3p0 metadata updates #15026
c3p0-0.9 Azure and c3p0 metadata updates #15026
camel-2.20 Add Camel jms test and update metadata #15027
cassandra-3.0 Cassandra and Clickhouse metadata updates #15065
cassandra-4.0 Cassandra and Clickhouse metadata updates #15065
cassandra-4.4 Cassandra and Clickhouse metadata updates #15065
clickhouse-client-v1-0.5 Cassandra and Clickhouse metadata updates #15065
clickhouse-client-v2-0.8 Cassandra and Clickhouse metadata updates #15065
couchbase-2.0 Couchbase metadata updates #15088
couchbase-2.6 Couchbase metadata updates #15088
couchbase-3.1 Couchbase metadata updates #15088
couchbase-3.1.6 Couchbase metadata updates #15088
couchbase-3.2 Couchbase metadata updates #15088
couchbase-3.4 Couchbase metadata updates #15088
dropwizard-metrics-4.0 Dropwizard and Elasticsearch metadata updates #15108
dropwizard-views-0.7 Dropwizard and Elasticsearch metadata updates #15108
elasticsearch-api-client-7.16 Dropwizard and Elasticsearch metadata updates #15108
elasticsearch-rest-5.0 Dropwizard and Elasticsearch metadata updates #15108
elasticsearch-rest-6.4 Dropwizard and Elasticsearch metadata updates #15108
elasticsearch-rest-7.0 Dropwizard and Elasticsearch metadata updates #15108
elasticsearch-transport-5.0 Dropwizard and Elasticsearch metadata updates #15108
elasticsearch-transport-5.3 Dropwizard and Elasticsearch metadata updates #15108
elasticsearch-transport-6.0 Dropwizard and Elasticsearch metadata updates #15108
executors Another batch of metadata updates #15117
external-annotations Another batch of metadata updates #15117
failsafe-3.0 Another batch of metadata updates #15117
finagle-http-23.11 Another batch of metadata updates #15117
finatra-2.9 Disable finatra controller spans by default #15118
geode-1.4 Another batch of metadata updates #15117
google-http-client-1.19 Another batch of metadata updates #15135
grails-3.0 Another batch of metadata updates #15135
graphql-java-12.0 Another batch of metadata updates #15135
graphql-java-20.0 Another batch of metadata updates #15135
grizzly-2.3 Another batch of metadata updates #15135
grpc-1.6 Another batch of metadata updates #15135
guava-10.0 Metadata and test refactor for guava #15165
gwt-2.0 Another batch of metadata updates #15135
hibernate-3.3 Metadata updates for hibernate and hikari #15161
hibernate-4.0 Metadata updates for hibernate and hikari #15161
hibernate-6.0 Metadata updates for hibernate and hikari #15161
hibernate-procedure-call-4.3 Metadata updates for hibernate and hikari #15161
hibernate-reactive-1.0 Metadata updates for hibernate and hikari #15161
helidon-4.3 Update helidon metadata #14940
hikaricp-3.0 Metadata updates for hibernate and hikari #15161
http-url-connection
hystrix-1.4
influxdb-2.4 Metadata for influxdb, java server and client, jul, and javalin #15166
java-http-client Metadata for influxdb, java server and client, jul, and javalin #15166
java-http-server Metadata for influxdb, java server and client, jul, and javalin #15166
java-util-logging Metadata for influxdb, java server and client, jul, and javalin #15166
javalin-5.0 Metadata for influxdb, java server and client, jul, and javalin #15166
jaxrs-1.0 JAXRS metadata updates #15184
jaxrs-2.0-annotations JAXRS metadata updates #15184
jaxrs-2.0-cxf-3.2 JAXRS metadata updates #15184
jaxrs-2.0-jersey-2.0 JAXRS metadata updates #15184
jaxrs-2.0-resteasy-3.0 JAXRS metadata updates #15184
jaxrs-2.0-resteasy-3.1 JAXRS metadata updates #15184
jaxrs-3.0-annotations JAXRS metadata updates #15184
jaxrs-3.0-jersey-3.0 JAXRS metadata updates #15184
jaxrs-3.0-resteasy-6.0 JAXRS metadata updates #15184
jaxws-2.0 JAXWS metadata #14864
jaxws-2.0-axis2-1.6 JAXWS metadata #14864
jaxws-cxf-3.0 JAXWS metadata #14864
jaxws-jws-api-1.1 JAXWS metadata #14864
jaxws-metro-2.2 JAXWS Metro metadata #15187
jboss-logmanager-appender-1.1
jboss-logmanager-mdc-1.1
jdbc JDBC pekko and servlet metadata #15967
jedis-1.4 Jedis and Jetty metadata updates #15202
jedis-3.0 Jedis and Jetty metadata updates #15202
jedis-4.0 Jedis and Jetty metadata updates #15202
jetty-11.0 Jedis and Jetty metadata updates #15202
jetty-12.0 Jedis and Jetty metadata updates #15202
jetty-8.0 Jedis and Jetty metadata updates #15202
jetty-httpclient-12.0 Jedis and Jetty metadata updates #15202
jetty-httpclient-9.2 Jedis and Jetty metadata updates #15202
jms-1.1 JMS Jodd HTTP and JSF metadata updates #15212
jms-3.0 JMS Jodd HTTP and JSF metadata updates #15212
jmx-metrics
jodd-http-4.2 JMS Jodd HTTP and JSF metadata updates #15212
jsf-mojarra-1.2 JMS Jodd HTTP and JSF metadata updates #15212
jsf-mojarra-3.0 JMS Jodd HTTP and JSF metadata updates #15212
jsf-myfaces-1.2 JMS Jodd HTTP and JSF metadata updates #15212
jsf-myfaces-3.0 JMS Jodd HTTP and JSF metadata updates #15212
jsp-2.3 Disable JSP compile spans by default #15261
kafka-clients-0.11 Kafka metadata updates #15267
kafka-clients-2.6 Kafka metadata updates #15267
kafka-connect-2.6 Kafka connect metadata #15021
kafka-streams-0.11 Kafka metadata updates #15267
kotlinx-coroutines-1.0 Kotlin coroutines and ktor metadata #15295
kotlinx-coroutines-flow-1.3 Kotlin coroutines and ktor metadata #15295
ktor-1.0 Kotlin coroutines and ktor metadata #15295
ktor-2.0 Kotlin coroutines and ktor metadata #15295
ktor-3.0 Kotlin coroutines and ktor metadata #15295
kubernetes-client-7.0 Kubernetes client metadata #15387
lettuce-4.0 Lettuce metadata #15439
lettuce-5.0 Lettuce metadata #15439
lettuce-5.1 Lettuce metadata #15439
liberty-20.0 Metadata for liberty, zio, vibur-dbcp, and micrometer #16432
liberty-dispatcher-20.0 Metadata for liberty, zio, vibur-dbcp, and micrometer #16432
log4j-appender-1.2 Metadata for loggers and scala #15883
log4j-appender-2.17 Metadata for loggers and scala #15883
log4j-context-data-2.17 Metadata for loggers and scala #15883
log4j-context-data-2.7 Metadata for loggers and scala #15883
log4j-mdc-1.2 Metadata for loggers and scala #15883
logback-appender-1.0 Metadata for loggers and scala #15883
logback-mdc-1.0 Metadata for loggers and scala #15883
methods
micrometer-1.5 Metadata for liberty, zio, vibur-dbcp, and micrometer #16432
mongo-3.1 Mongo Metadata and instrumenter refactor #15500
mongo-3.7 Mongo Metadata and instrumenter refactor #15500
mongo-4.0 Mongo Metadata and instrumenter refactor #15500
mongo-async-3.3 Mongo Metadata and instrumenter refactor #15500
mybatis-3.2 Metadata for mybatis, nats, and netty #15524
nats-2.17 Metadata for mybatis, nats, and netty #15524
netty-3.8 Metadata for mybatis, nats, and netty #15524
netty-4.0 Metadata for mybatis, nats, and netty #15524
netty-4.1 Metadata for mybatis, nats, and netty #15524
okhttp-2.2 OkHTTP Openai UCP and OSHI metadata updates #15549
okhttp-3.0 OkHTTP Openai UCP and OSHI metadata updates #15549
openai-java-1.1 OkHTTP Openai UCP and OSHI metadata updates #15549
opensearch-rest-1.0 Opensearch Metadata #14942
opensearch-rest-3.0 Opensearch Metadata #14942
opensearch-java-3.0 Opensearch Metadata #14942
oracle-ucp-11.2 OkHTTP Openai UCP and OSHI metadata updates #15549
oshi OkHTTP Openai UCP and OSHI metadata updates #15549
payara
pekko-actor-1.0 JDBC pekko and servlet metadata #15967
pekko-http-1.0 JDBC pekko and servlet metadata #15967
play-mvc-2.4 Play metadata update and disable controller spans by default #15604
play-mvc-2.6 Play metadata update and disable controller spans by default #15604
play-ws-1.0 Play metadata update and disable controller spans by default #15604
play-ws-2.0 Play metadata update and disable controller spans by default #15604
play-ws-2.1 Play metadata update and disable controller spans by default #15604
powerjob-4.0 PowerJob metadata #15619
pulsar-2.8 Pulsar metadata #15673
quarkus-resteasy-reactive Quarkus r2dbc and rediscala metadata #15738
quartz-2.0 Quartz Metadata #15996
r2dbc-1.0 Quarkus r2dbc and rediscala metadata #15738
rabbitmq-2.7 RabbitMQ metadata #15748
ratpack-1.4 Ratpack Redisson and restlet metadata #15767
ratpack-1.7 Ratpack Redisson and restlet metadata #15767
reactor-3.1 Reactor Metadata #16365
reactor-3.4 Reactor Metadata #16365
reactor-kafka-1.0 Reactor Metadata #16365
reactor-netty-0.9 Reactor Metadata #16365
reactor-netty-1.0 Reactor Metadata #16365
rediscala-1.8 Quarkus r2dbc and rediscala metadata #15738
redisson-3.0 Ratpack Redisson and restlet metadata #15767
redisson-3.17 Ratpack Redisson and restlet metadata #15767
resources
restlet-1.1 Ratpack Redisson and restlet metadata #15767
restlet-2.0 Ratpack Redisson and restlet metadata #15767
rmi RMI metadata #15970
rocketmq-client-4.8 Rocketmq metadata and test refactor #15834
rocketmq-client-5.0 Rocketmq metadata and test refactor #15834
runtime-telemetry Metadata for runtime telemetry #16431
runtime-telemetry-java17 Metadata for runtime telemetry #16431
runtime-telemetry-java8 Metadata for runtime telemetry #16431
rxjava-1.0 RxJava instrumentation metadata #16384
rxjava-2.0 RxJava instrumentation metadata #16384
rxjava-3.0 RxJava instrumentation metadata #16384
rxjava-3.1.1 RxJava instrumentation metadata #16384
scala-fork-join-2.8
servlet-2.2 JDBC pekko and servlet metadata #15967
servlet-3.0 JDBC pekko and servlet metadata #15967
servlet-5.0 JDBC pekko and servlet metadata #15967
spark-2.3 Metadata for spark, struts, tapestry, and wicket #16030
spring-batch-3.0 Spring metadata updates (part 1) #16123
spring-boot-actuator-autoconfigure-2.0 Spring metadata updates (part 1) #16123
spring-boot-resources Spring metadata updates (part 1) #16123
spring-cloud-aws-3.0 Spring metadata updates (part 1) #16123
spring-cloud-gateway-2.0 Spring metadata updates (part 1) #16123
spring-core-2.0 Spring metadata updates (part 1) #16123
spring-data-1.8 Spring metadata updates (part 1) #16123
spring-integration-4.1 Spring metadata updates (part 1) #16123
spring-jms-2.0 Spring metadata updates (part 1) #16123
spring-jms-6.0 Spring metadata updates (part 1) #16123
spring-kafka-2.7 Spring instrumentation metadata #16325
spring-pulsar-1.0 Spring instrumentation metadata #16325
spring-rabbit-1.0 Spring instrumentation metadata #16325
spring-rmi-4.0 Spring instrumentation metadata #16325
spring-scheduling-3.1 Spring instrumentation metadata #16325
spring-security-config-6.0 Spring instrumentation metadata #16325
spring-web-3.1 Post-release updates for 2.25.0 #16163
spring-web-6.0 Spring instrumentation metadata #16325
spring-webflux-5.0 Spring instrumentation metadata #16325
spring-webflux-5.3 Spring instrumentation metadata #16325
spring-webmvc-3.1 Spring instrumentation metadata #16325
spring-webmvc-5.3 Spring instrumentation metadata #16325
spring-webmvc-6.0 Spring instrumentation metadata #16325
spring-ws-2.0 Spring instrumentation metadata #16325
spymemcached-2.12
struts-2.3
struts-7.0
tapestry-5.4
tomcat-10.0
tomcat-7.0
tomcat-jdbc
twilio-6.6 Twilio metadata #16312
undertow-1.4 Undertow and Vaadin instrumentation metadata #16509
vaadin-14.2 Undertow and Vaadin instrumentation metadata #16509
vertx-http-client-3.0 Vertx Metadata #16385
vertx-http-client-4.0 Vertx Metadata #16385
vertx-http-client-5.0 Vertx Metadata #16385
vertx-kafka-client-3.6 Vertx Metadata #16385
vertx-redis-client-4.0 Vertx Metadata #16385
vertx-rx-java-3.5 Vertx Metadata #16385
vertx-sql-client-4.0 Vertx Metadata #16385
vertx-sql-client-5.0 Vertx Metadata #16385
vertx-web-3.0 Vertx Metadata #16385
vibur-dbcp-11.0 Metadata for liberty, zio, vibur-dbcp, and micrometer #16432
wicket-8.0
xxl-job-1.9.2 XXL-Job instrumentation metadata #16397
xxl-job-2.1.2 XXL-Job instrumentation metadata #16397
xxl-job-2.3.0 XXL-Job instrumentation metadata #16397
zio-2.0 Metadata for liberty, zio, vibur-dbcp, and micrometer #16432
Requirements
For each instrumentation module, enable telemetry collection (where applicable), and audit/populate the metadata.yaml file with all relevant details. See documenting instrumentation for additional information on the schema and descriptions.
Telemetry collection
Each module's gradle file will need to be modified to include a system property feature flag configured for when the tests run.
tasks.test { systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") }Sometimes instrumentation will behave differently based on configuration options, and we can
differentiate between these configurations by using the
metadataConfigsystem property. When thetelemetry is written to a file, the value of this property will be included, or it will default to
a
defaultattribution.For example, to collect and write metadata for the
otel.semconv-stability.opt-in=databaseoptionset for an instrumentation:
After the configuration option is set, the gradle tasks should be added to the collect.sh script. If you configured multiple test suites, be sure to add both the standard
testtask and the others, for example:You can generate the span telemetry data by running:
./instrumentation-docs/collect.shAnd then we can update the resulting
instrumentation-list.yamlby running:./gradlew :instrumentation-docs:runAnalysisTip: When adding net-new modules, if you have already run the collect script for all the existing modules, comment those ones out in the
collect.shscript so you can just run it for each new one to speed up your workflow.Progress