Skip to content

Add catalog for common configs and metrics in metadata#19244

Merged
trask merged 5 commits into
open-telemetry:mainfrom
jaydeluca:unified-config-full
Jul 17, 2026
Merged

Add catalog for common configs and metrics in metadata#19244
trask merged 5 commits into
open-telemetry:mainfrom
jaydeluca:unified-config-full

Conversation

@jaydeluca

@jaydeluca jaydeluca commented Jul 16, 2026

Copy link
Copy Markdown
Member

Adds a catalog of definitions for common configs and metrics that are re-used, so we can just reference them. Eventually we can take this further for spans, but I think there's more we can do around the span metadata in general so I held off for now.

If it would make it easier to review, I can split this between the core code change and the metadata file updates, just let me know.

I've run a test on my fork (resulting updated file here), as well as already drafted what's needed on the ecosystem explorer side to ingest this new format.

Related to #19077 (comment)

@jaydeluca
jaydeluca marked this pull request as ready for review July 16, 2026 20:36
@jaydeluca
jaydeluca requested a review from a team as a code owner July 16, 2026 20:36
Copilot AI review requested due to automatic review settings July 16, 2026 20:36

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces shared catalogs for reusable configuration and metric metadata, emitting references in instrumentation-list format 0.6.

Changes:

  • Adds shared configuration resolution and catalog generation.
  • Deduplicates metric definitions using content-based IDs.
  • Migrates instrumentation metadata to shared references and documents the format.

Reviewed changes

Copilot reviewed 136 out of 136 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
instrumentation/vertx/vertx-sql-client/vertx-sql-client-5.0/metadata.yaml Uses shared database config.
instrumentation/vertx/vertx-sql-client/vertx-sql-client-4.0/metadata.yaml Uses shared database config.
instrumentation/vertx/vertx-redis-client-4.0/metadata.yaml Uses shared database and peer configs.
instrumentation/vertx/vertx-kafka-client-3.6/metadata.yaml Uses shared messaging config.
instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/vaadin-14.2/metadata.yaml Uses shared controller config.
instrumentation/undertow-1.4/metadata.yaml Uses shared HTTP server configs.
instrumentation/tomcat/tomcat-7.0/metadata.yaml Uses shared HTTP server configs.
instrumentation/tomcat/tomcat-10.0/metadata.yaml Uses shared HTTP server configs.
instrumentation/tapestry-5.4/metadata.yaml Uses shared controller config.
instrumentation/struts/struts-7.0/metadata.yaml Uses shared controller config.
instrumentation/struts/struts-2.3/metadata.yaml Uses shared controller config.
instrumentation/spring/spring-ws-2.0/metadata.yaml Uses shared controller config.
instrumentation/spring/spring-webmvc/spring-webmvc-6.0/metadata.yaml Uses shared controller config.
instrumentation/spring/spring-webmvc/spring-webmvc-3.1/metadata.yaml Uses shared controller config.
instrumentation/spring/spring-webflux/spring-webflux-5.0/metadata.yaml Uses shared controller config.
instrumentation/spring/spring-web/spring-web-6.0/metadata.yaml References shared HTTP experimental config.
instrumentation/spring/spring-rabbit-1.0/metadata.yaml Uses shared messaging config.
instrumentation/spring/spring-pulsar-1.0/metadata.yaml Uses shared messaging config.
instrumentation/spring/spring-kafka-2.7/metadata.yaml Uses shared messaging config.
instrumentation/spring/spring-jms/spring-jms-6.0/metadata.yaml Uses shared messaging config.
instrumentation/spring/spring-jms/spring-jms-2.0/metadata.yaml Uses shared messaging config.
instrumentation/spring/spring-integration-4.1/metadata.yaml Uses shared messaging config.
instrumentation/sofa-rpc-5.4/metadata.yaml Uses shared peer-service config.
instrumentation/rocketmq/rocketmq-client-5.0/metadata.yaml Uses shared messaging config.
instrumentation/rocketmq/rocketmq-client-4.8/metadata.yaml Uses shared messaging config.
instrumentation/restlet/restlet-2.0/metadata.yaml Uses shared HTTP server configs.
instrumentation/restlet/restlet-1.1/metadata.yaml Uses shared HTTP server configs.
instrumentation/reactor/reactor-netty/reactor-netty-1.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/reactor/reactor-kafka-1.0/metadata.yaml Uses shared messaging config.
instrumentation/ratpack/ratpack-1.7/metadata.yaml Uses shared HTTP and controller configs.
instrumentation/ratpack/ratpack-1.4/metadata.yaml Uses shared controller config.
instrumentation/rabbitmq-2.7/metadata.yaml Uses shared messaging config.
instrumentation/r2dbc-1.0/metadata.yaml Uses shared database and peer configs.
instrumentation/pulsar/pulsar-2.8/metadata.yaml Uses shared messaging config.
instrumentation/play/play-ws/play-ws-2.1/metadata.yaml Uses shared HTTP client configs.
instrumentation/play/play-ws/play-ws-2.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/play/play-ws/play-ws-1.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/play/play-mvc/play-mvc-2.6/metadata.yaml Uses shared controller config.
instrumentation/play/play-mvc/play-mvc-2.4/metadata.yaml Uses shared controller config.
instrumentation/pekko/pekko-http-1.0/metadata.yaml Uses shared HTTP client/server configs.
instrumentation/okhttp/okhttp-3.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/okhttp/okhttp-2.2/metadata.yaml Uses shared HTTP client configs.
instrumentation/netty/netty-4.1/metadata.yaml Uses shared HTTP client/server configs.
instrumentation/netty/netty-4.0/metadata.yaml Uses shared HTTP client/server configs.
instrumentation/netty/netty-3.8/metadata.yaml Uses shared HTTP client/server configs.
instrumentation/nats/nats-2.17/metadata.yaml Uses shared messaging config.
instrumentation/mongo/mongo-async-3.3/metadata.yaml Uses shared database config.
instrumentation/mongo/mongo-4.0/metadata.yaml Uses shared database config.
instrumentation/mongo/mongo-3.7/metadata.yaml Uses shared database config.
instrumentation/mongo/mongo-3.1/metadata.yaml Uses shared database config.
instrumentation/liberty/liberty-dispatcher-20.0/metadata.yaml Uses shared HTTP server configs.
instrumentation/liberty/liberty-20.0/metadata.yaml Uses shared HTTP server configs.
instrumentation/lettuce/lettuce-5.1/metadata.yaml Uses shared database config.
instrumentation/lettuce/lettuce-5.0/metadata.yaml Uses shared database and peer configs.
instrumentation/lettuce/lettuce-4.0/metadata.yaml Uses shared peer-service config.
instrumentation/kubernetes-client-7.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/ktor/ktor-3.0/metadata.yaml Uses shared HTTP client/server configs.
instrumentation/ktor/ktor-2.0/metadata.yaml Uses shared HTTP client/server configs.
instrumentation/kafka/kafka-streams-0.11/metadata.yaml Uses shared messaging config.
instrumentation/kafka/kafka-clients/kafka-clients-0.11/metadata.yaml Uses shared messaging config.
instrumentation/jsf/jsf-myfaces-3.0/metadata.yaml Uses shared controller config.
instrumentation/jsf/jsf-myfaces-1.2/metadata.yaml Uses shared controller config.
instrumentation/jsf/jsf-mojarra-3.0/metadata.yaml Uses shared controller config.
instrumentation/jsf/jsf-mojarra-1.2/metadata.yaml Uses shared controller config.
instrumentation/jodd-http-4.2/metadata.yaml Uses shared HTTP client configs.
instrumentation/jms/jms-3.0/metadata.yaml Uses shared messaging config.
instrumentation/jms/jms-1.1/metadata.yaml Uses shared messaging config.
instrumentation/jfinal-3.2/metadata.yaml Uses shared controller config.
instrumentation/jetty/jetty-8.0/metadata.yaml Uses shared HTTP server configs.
instrumentation/jetty/jetty-12.0/metadata.yaml Uses shared HTTP server configs.
instrumentation/jetty/jetty-11.0/metadata.yaml Uses shared HTTP server configs.
instrumentation/jetty-httpclient/jetty-httpclient-9.2/metadata.yaml Uses shared HTTP client configs.
instrumentation/jetty-httpclient/jetty-httpclient-12.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/jedis/jedis-4.0/metadata.yaml Uses shared database config.
instrumentation/jedis/jedis-3.0/metadata.yaml Uses shared database and peer configs.
instrumentation/jedis/jedis-2.0/metadata.yaml Uses shared database and peer configs.
instrumentation/jedis/jedis-1.4/metadata.yaml Uses shared database and peer configs.
instrumentation/jdbc/metadata.yaml Uses shared database and peer configs.
instrumentation/jaxws/jaxws-jws-api-1.1/metadata.yaml Uses shared controller config.
instrumentation/jaxws/jaxws-2.0/metadata.yaml Uses shared controller config.
instrumentation/jaxws/jaxws-2.0-metro-2.2/metadata.yaml Uses shared controller config.
instrumentation/jaxws/jaxws-2.0-cxf-3.0/metadata.yaml Uses shared controller config.
instrumentation/jaxws/jaxws-2.0-axis2-1.6/metadata.yaml Uses shared controller config.
instrumentation/jaxrs/jaxrs-3.0/jaxrs-3.0-resteasy-6.0/metadata.yaml Uses shared controller config.
instrumentation/jaxrs/jaxrs-3.0/jaxrs-3.0-jersey-3.0/metadata.yaml Uses shared controller config.
instrumentation/jaxrs/jaxrs-3.0/jaxrs-3.0-annotations/metadata.yaml Uses shared controller config.
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.1/metadata.yaml Uses shared controller config.
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.0/metadata.yaml Uses shared controller config.
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-jersey-2.0/metadata.yaml Uses shared controller config.
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-cxf-3.2/metadata.yaml Uses shared controller config.
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-annotations/metadata.yaml Uses shared controller config.
instrumentation/jaxrs/jaxrs-1.0/metadata.yaml Uses shared controller config.
instrumentation/java-http-server/metadata.yaml Uses shared HTTP server configs.
instrumentation/java-http-client/metadata.yaml Uses shared HTTP client configs.
instrumentation/influxdb-2.4/metadata.yaml Uses shared database config.
instrumentation/http-url-connection/metadata.yaml Uses shared HTTP client configs.
instrumentation/helidon-4.3/metadata.yaml Uses shared HTTP server configs.
instrumentation/grizzly-2.3/metadata.yaml Uses shared HTTP server configs.
instrumentation/grails-3.0/metadata.yaml Uses shared controller config.
instrumentation/google-http-client-1.19/metadata.yaml Uses shared HTTP client configs.
instrumentation/geode-1.4/metadata.yaml Uses shared database config.
instrumentation/finatra-2.9/metadata.yaml Uses shared controller config.
instrumentation/elasticsearch/elasticsearch-rest-7.0/metadata.yaml Uses shared HTTP methods config.
instrumentation/elasticsearch/elasticsearch-rest-6.4/metadata.yaml Uses shared HTTP methods config.
instrumentation/elasticsearch/elasticsearch-rest-5.0/metadata.yaml Uses shared HTTP methods config.
instrumentation/couchbase/couchbase-2.6/metadata.yaml Uses shared database config.
instrumentation/couchbase/couchbase-2.0/metadata.yaml Uses shared database config.
instrumentation/clickhouse/clickhouse-client-v2-0.8/metadata.yaml Uses shared database config.
instrumentation/clickhouse/clickhouse-client-v1-0.5/metadata.yaml Uses shared database config.
instrumentation/cassandra/cassandra-4.4/metadata.yaml Uses shared database config.
instrumentation/cassandra/cassandra-4.0/metadata.yaml Uses shared database config.
instrumentation/cassandra/cassandra-3.0/metadata.yaml Uses shared database config.
instrumentation/aws-sdk/aws-sdk-2.2/metadata.yaml Uses shared messaging config.
instrumentation/aws-sdk/aws-sdk-1.11/metadata.yaml Uses shared messaging config.
instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml Uses shared HTTP methods config.
instrumentation/async-http-client/async-http-client-2.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/async-http-client/async-http-client-1.9/metadata.yaml Uses shared HTTP client configs.
instrumentation/async-http-client/async-http-client-1.8/metadata.yaml Uses shared HTTP client configs.
instrumentation/armeria/armeria-1.3/metadata.yaml Uses shared HTTP client/server configs.
instrumentation/apache-httpclient/apache-httpclient-5.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/apache-httpclient/apache-httpclient-4.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/apache-httpclient/apache-httpclient-2.0/metadata.yaml Uses shared HTTP client configs.
instrumentation/apache-httpasyncclient-4.1/metadata.yaml Uses shared HTTP client configs.
instrumentation/apache-dubbo-2.7/metadata.yaml Uses shared peer-service config.
instrumentation/akka/akka-http-10.0/metadata.yaml Uses shared HTTP client/server configs.
instrumentation/activej-http-6.0/metadata.yaml Uses shared HTTP server configs.
instrumentation-docs/src/test/java/io/opentelemetry/instrumentation/docs/utils/YamlHelperTest.java Tests references and definition deduplication.
instrumentation-docs/src/main/resources/shared-config-definitions.yaml Defines reusable configuration catalog entries.
instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/utils/YamlHelper.java Generates catalogs and module references.
instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/internal/SharedConfigurationRegistry.java Loads and resolves shared definitions.
instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/internal/ConfigurationOption.java Models configuration references and IDs.
instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/DocGeneratorApplication.java Emits format 0.6 and catalog guidance.
instrumentation-docs/readme.md Documents catalogs, references, and metadata authoring.

Comment thread instrumentation-docs/src/main/resources/shared-config-definitions.yaml Outdated
Comment thread instrumentation-docs/src/main/resources/shared-config-definitions.yaml Outdated
Comment thread instrumentation/spring/spring-web/spring-web-6.0/metadata.yaml Outdated
@opentelemetry-pr-dashboard

Copy link
Copy Markdown

This PR has review comments. Review suggestions, whether from maintainers or automated reviewers, aren't always correct or required. Please evaluate each comment on its merits, then make sure each thread has a clear outcome.

For example, link to the commit if you applied a suggestion, explain why it wasn't applied, or ask a follow-up question.

Automation flags a PR for human review once every review thread has a reply or is marked as resolved.

Status across open PRs is visible on the pull request dashboard.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 135 out of 135 changed files in this pull request and generated 2 comments.

Comment thread instrumentation-docs/readme.md

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 135 out of 135 changed files in this pull request and generated no new comments.

@trask trask left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants