diff --git a/docs/contributing/documenting-instrumentation.md b/docs/contributing/documenting-instrumentation.md index 03e148c2df..b64a6bc2e7 100644 --- a/docs/contributing/documenting-instrumentation.md +++ b/docs/contributing/documenting-instrumentation.md @@ -80,6 +80,20 @@ Each instrumentation should have a `metadata.yaml` file in the root of the instr (`instrumentation/{some instrumentation}/metadata.yaml`) that contains structured metadata about the instrumentation. +Example: + +```yaml +description: "This instrumentation enables..." +disabled_by_default: true +classification: library +library_link: https://github.com/... +configurations: + - name: otel.instrumentation.common.db-statement-sanitizer.enabled + description: Enables statement sanitization for database queries. + type: boolean + default: true +``` + ### Description (required) At a minimum, every instrumentation metadata file should include a `description`. @@ -114,6 +128,10 @@ Some notes when writing descriptions: * It is not usually necessary to include specific library or framework version numbers in the description, unless that context is significant in some way. +### Library Link + +For library instrumentations, include a `library_link` field with a URL to the library or framework's +main website or documentation, or if those don't exist, the GitHub repository. ### Configurations diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index 81fff4f7ef..746bb6fbb0 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -7,6 +7,7 @@ libraries: - name: activej-http-6.0 description: This instrumentation enables HTTP server spans and HTTP server metrics for the ActiveJ HTTP server. + library_link: https://activej.io/ source_path: instrumentation/activej-http-6.0 minimum_java_version: 17 scope: @@ -61,6 +62,7 @@ libraries: - name: akka-actor-2.3 description: This instrumentation provides context propagation for Akka actors, it does not emit any telemetry on its own. + library_link: https://doc.akka.io/libraries/akka-core/current/typed/index.html source_path: instrumentation/akka/akka-actor-2.3 scope: name: io.opentelemetry.akka-actor-2.3 @@ -72,6 +74,7 @@ libraries: - name: akka-actor-fork-join-2.5 description: This instrumentation provides context propagation for the Akka Fork-Join Pool, it does not emit any telemetry on its own. + library_link: https://doc.akka.io/libraries/akka-core/current/typed/index.html source_path: instrumentation/akka/akka-actor-fork-join-2.5 scope: name: io.opentelemetry.akka-actor-fork-join-2.5 @@ -83,6 +86,7 @@ libraries: - name: akka-http-10.0 description: | This instrumentation enables HTTP client spans and metrics for the Akka HTTP client, and HTTP server spans and metrics for the Akka HTTP server. + library_link: https://doc.akka.io/docs/akka-http/current/index.html source_path: instrumentation/akka/akka-http-10.0 scope: name: io.opentelemetry.akka-http-10.0 @@ -171,6 +175,7 @@ libraries: - name: alibaba-druid-1.0 description: | The Alibaba Druid instrumentation generates database connection pool metrics for druid data sources. + library_link: https://github.com/alibaba/druid source_path: instrumentation/alibaba-druid-1.0 scope: name: io.opentelemetry.alibaba-druid-1.0 @@ -266,6 +271,7 @@ libraries: description: | This instrumentation enables database connection pools metrics for Apache DBCP. The instrumentation uses `MBeanRegistration` methods for lifecycle detection, therefore it only activates if the `BasicDataSource` is registered to an `MBeanServer`. If using Spring Boot, this happens automatically as all Spring beans that support JMX registration are automatically registered by default. + library_link: https://commons.apache.org/proper/commons-dbcp/ source_path: instrumentation/apache-dbcp-2.0 scope: name: io.opentelemetry.apache-dbcp-2.0 @@ -346,6 +352,7 @@ libraries: server spans for Apache Dubbo RPC calls. Each call produces a span named after the Dubbo method, enriched with standard RPC attributes (system, service, method), network attributes, and error details if an exception occurs. + library_link: https://github.com/apache/dubbo/ source_path: instrumentation/apache-dubbo-2.7 scope: name: io.opentelemetry.apache-dubbo-2.7 @@ -388,6 +395,7 @@ libraries: - name: apache-httpasyncclient-4.1 description: This instrumentation enables HTTP client spans and HTTP client metrics for the Apache HttpAsyncClient. + library_link: https://hc.apache.org/index.html source_path: instrumentation/apache-httpasyncclient-4.1 scope: name: io.opentelemetry.apache-httpasyncclient-4.1 @@ -434,6 +442,7 @@ libraries: - name: apache-httpclient-2.0 description: This instrumentation enables HTTP client spans and HTTP client metrics for versions 2 and 3 of the Apache HttpClient. + library_link: https://hc.apache.org/index.html source_path: instrumentation/apache-httpclient/apache-httpclient-2.0 scope: name: io.opentelemetry.apache-httpclient-2.0 @@ -478,6 +487,7 @@ libraries: - name: apache-httpclient-4.0 description: This instrumentation enables HTTP client spans and HTTP client metrics for version 4 of the Apache HttpClient. + library_link: https://hc.apache.org/index.html source_path: instrumentation/apache-httpclient/apache-httpclient-4.0 scope: name: io.opentelemetry.apache-httpclient-4.0 @@ -525,6 +535,7 @@ libraries: - name: apache-httpclient-4.3 description: This instrumentation provides a library integration that enables HTTP client spans and HTTP client metrics for the Apache HttpClient. + library_link: https://hc.apache.org/index.html source_path: instrumentation/apache-httpclient/apache-httpclient-4.3 scope: name: io.opentelemetry.apache-httpclient-4.3 @@ -573,6 +584,7 @@ libraries: - name: apache-httpclient-5.0 description: This instrumentation enables HTTP client spans and HTTP client metrics for version 5 of the Apache HttpClient. + library_link: https://hc.apache.org/index.html source_path: instrumentation/apache-httpclient/apache-httpclient-5.0 scope: name: io.opentelemetry.apache-httpclient-5.0 @@ -619,6 +631,7 @@ libraries: - name: apache-httpclient-5.2 description: This instrumentation provides a library integration that enables HTTP client spans and HTTP client metrics for the Apache HttpClient. + library_link: https://hc.apache.org/index.html source_path: instrumentation/apache-httpclient/apache-httpclient-5.2 scope: name: io.opentelemetry.apache-httpclient-5.2 @@ -667,6 +680,7 @@ libraries: - name: apache-shenyu-2.4 description: | This instrumentation does not emit telemetry on its own. Instead, it augments existing HTTP server spans and HTTP server metrics with the HTTP route and Shenyu specific attributes. + library_link: https://shenyu.apache.org/ source_path: instrumentation/apache-shenyu-2.4 scope: name: io.opentelemetry.apache-shenyu-2.4 @@ -683,6 +697,7 @@ libraries: - name: armeria-1.3 description: | This instrumentation enables HTTP client spans and metrics for the Armeria HTTP client, and HTTP server spans and metrics for the Armeria HTTP server. + library_link: https://armeria.dev/ source_path: instrumentation/armeria/armeria-1.3 scope: name: io.opentelemetry.armeria-1.3 @@ -778,6 +793,7 @@ libraries: - name: armeria-grpc-1.14 description: | This instrumentation enables RPC client spans and metrics for the Armeria gRPC client, and RPC server spans and metrics for the Armeria gRPC server. + library_link: https://armeria.dev/ source_path: instrumentation/armeria/armeria-grpc-1.14 scope: name: io.opentelemetry.armeria-grpc-1.14 @@ -819,6 +835,7 @@ libraries: - name: async-http-client-1.9 description: This instrumentation enables HTTP client spans and HTTP client metrics for version 1 of the AsyncHttpClient (AHC) HTTP client. + library_link: https://github.com/AsyncHttpClient/async-http-client source_path: instrumentation/async-http-client/async-http-client-1.9 scope: name: io.opentelemetry.async-http-client-1.9 @@ -861,6 +878,7 @@ libraries: - name: async-http-client-2.0 description: This instrumentation enables HTTP client spans and HTTP client metrics for version 2 of the AsyncHttpClient (AHC) HTTP client. + library_link: https://github.com/AsyncHttpClient/async-http-client source_path: instrumentation/async-http-client/async-http-client-2.0 scope: name: io.opentelemetry.async-http-client-2.0 @@ -912,6 +930,7 @@ libraries: - name: avaje-jex-3.0 description: | This instrumentation does not emit telemetry on its own. Instead, it hooks into the Avaje Jex Context to extract the HTTP route and attach it to existing HTTP server spans and HTTP server metrics. + library_link: https://avaje.io/jex/ source_path: instrumentation/avaje-jex-3.0 minimum_java_version: 21 scope: @@ -924,6 +943,7 @@ libraries: description: | Provides lightweight instrumentation of the Lambda core library, supporting all versions. It generates FaaS server spans with the `faas.invocation_id` attribute. Use this package if you only use `RequestStreamHandler` or know you don't use any event classes from `aws-lambda-java-events`. This also includes when you are using `aws-serverless-java-container` to run e.g., a Spring Boot application on Lambda. For custom wrappers when using library instrumentation, you can configure the `OTEL_INSTRUMENTATION_AWS_LAMBDA_HANDLER` environment variable to contain your lambda handler method (in the format `package.ClassName::methodName`) and use one of wrappers as your lambda `Handler`. + library_link: https://docs.aws.amazon.com/lambda/latest/dg/java-handler.html source_path: instrumentation/aws-lambda/aws-lambda-core-1.0 scope: name: io.opentelemetry.aws-lambda-core-1.0 @@ -947,6 +967,7 @@ libraries: - name: aws-lambda-events-2.2 description: | This version of the library instrumentation is deprecated, please use the `aws-lambda-events-3.11` library instrumentation instead. This instrumentation builds on top of the `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including standard and custom event types. + library_link: https://docs.aws.amazon.com/lambda/latest/dg/java-handler.html source_path: instrumentation/aws-lambda/aws-lambda-events-2.2 scope: name: io.opentelemetry.aws-lambda-events-2.2 @@ -992,6 +1013,7 @@ libraries: - name: aws-lambda-events-3.11 description: | This instrumentation builds on top of the `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including standard and custom event types. + library_link: https://docs.aws.amazon.com/lambda/latest/dg/java-handler.html source_path: instrumentation/aws-lambda/aws-lambda-events-3.11 scope: name: io.opentelemetry.aws-lambda-events-3.11 @@ -1038,6 +1060,7 @@ libraries: - name: aws-sdk-1.11 description: | This instrumentation covers the AWS SDK 1.11+ client library, enabling messaging and client spans and metrics for calls to AWS services including DynamoDB, EC2, Kinesis, Lambda, RDS, S3, secrets manager, SNS/SQS and step functions. + library_link: https://aws.amazon.com/sdk-for-java/ source_path: instrumentation/aws-sdk/aws-sdk-1.11 scope: name: io.opentelemetry.aws-sdk-1.11 @@ -1265,6 +1288,7 @@ libraries: - name: aws-sdk-2.2 description: | This instrumentation covers the AWS SDK 2.2+ client library, enabling messaging and client spans and metrics for calls to AWS services including DynamoDB, EC2, Kinesis, Lambda, RDS, S3, SNS/SQS and Bedrock. + library_link: https://aws.amazon.com/sdk-for-java/ source_path: instrumentation/aws-sdk/aws-sdk-2.2 scope: name: io.opentelemetry.aws-sdk-2.2 @@ -1623,6 +1647,7 @@ libraries: - name: azure-core-1.14 description: This instrumentation enables context propagation for the Azure Core library, it does not emit any telemetry on its own. + library_link: https://learn.microsoft.com/en-us/java/api/overview/azure/core-readme?view=azure-java-stable source_path: instrumentation/azure-core/azure-core-1.14 scope: name: io.opentelemetry.azure-core-1.14 @@ -1632,6 +1657,7 @@ libraries: - name: azure-core-1.19 description: This instrumentation enables context propagation for the Azure Core library, it does not emit any telemetry on its own. + library_link: https://learn.microsoft.com/en-us/java/api/overview/azure/core-readme?view=azure-java-stable source_path: instrumentation/azure-core/azure-core-1.19 scope: name: io.opentelemetry.azure-core-1.19 @@ -1641,6 +1667,7 @@ libraries: - name: azure-core-1.36 description: This instrumentation enables context propagation for the Azure Core library, it does not emit any telemetry on its own. + library_link: https://learn.microsoft.com/en-us/java/api/overview/azure/core-readme?view=azure-java-stable source_path: instrumentation/azure-core/azure-core-1.36 scope: name: io.opentelemetry.azure-core-1.36 @@ -1651,6 +1678,7 @@ libraries: - name: c3p0-0.9 description: The c3p0 instrumentation provides connection pool metrics for c3p0 data sources. + library_link: https://github.com/swaldman/c3p0 source_path: instrumentation/c3p0-0.9 scope: name: io.opentelemetry.c3p0-0.9 @@ -1703,6 +1731,7 @@ libraries: - name: camel-2.20 description: | This instrumentation enables tracing for Apache Camel 2.x applications by generating spans for each route execution. For Camel versions 3.5 and newer, users should instead use the native 'camel-opentelemetry' component provided directly by the Camel project. + library_link: https://camel.apache.org/ source_path: instrumentation/camel-2.20 scope: name: io.opentelemetry.camel-2.20 @@ -1828,6 +1857,7 @@ libraries: - name: cassandra-3.0 description: | Instruments the Cassandra database client, providing database client spans and metrics for Cassandra queries. + library_link: https://github.com/apache/cassandra-java-driver source_path: instrumentation/cassandra/cassandra-3.0 scope: name: io.opentelemetry.cassandra-3.0 @@ -1891,6 +1921,7 @@ libraries: - name: cassandra-4.0 description: | Instruments the Cassandra database client, providing database client spans and metrics for Cassandra queries. + library_link: https://github.com/apache/cassandra-java-driver source_path: instrumentation/cassandra/cassandra-4.0 scope: name: io.opentelemetry.cassandra-4.0 @@ -1978,6 +2009,7 @@ libraries: - name: cassandra-4.4 description: | Instruments the Cassandra database client, providing database client spans and metrics for Cassandra queries. + library_link: https://github.com/apache/cassandra-java-driver source_path: instrumentation/cassandra/cassandra-4.4 scope: name: io.opentelemetry.cassandra-4.4 @@ -2068,6 +2100,7 @@ libraries: - name: clickhouse-client-0.5 description: Instruments the V1 ClickHouseClient, providing database client spans and metrics. + library_link: https://github.com/ClickHouse/clickhouse-java source_path: instrumentation/clickhouse-client-0.5 scope: name: io.opentelemetry.clickhouse-client-0.5 @@ -2136,6 +2169,7 @@ libraries: - name: couchbase-2.0 description: | This instrumentation enables database client spans and database client metrics for Couchbase 2.0 operations. It automatically traces key-value operations (get, upsert, replace, remove), view queries, N1QL queries, and cluster management operations. + library_link: https://github.com/couchbase/couchbase-java-client source_path: instrumentation/couchbase/couchbase-2.0 scope: name: io.opentelemetry.couchbase-2.0 @@ -2180,6 +2214,7 @@ libraries: - name: couchbase-2.6 description: | This instrumentation enables database client spans and database client metrics for Couchbase 2.6 operations. It automatically traces key-value operations (get, upsert, replace, remove), view queries, N1QL queries, and cluster management operations. + library_link: https://github.com/couchbase/couchbase-java-client source_path: instrumentation/couchbase/couchbase-2.6 scope: name: io.opentelemetry.couchbase-2.6 @@ -2268,6 +2303,7 @@ libraries: - name: couchbase-3.1 description: | Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. + library_link: https://github.com/couchbase/couchbase-java-client source_path: instrumentation/couchbase/couchbase-3.1 scope: name: io.opentelemetry.couchbase-3.1 @@ -2277,6 +2313,7 @@ libraries: - name: couchbase-3.1.6 description: | Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. + library_link: https://github.com/couchbase/couchbase-java-client source_path: instrumentation/couchbase/couchbase-3.1.6 scope: name: io.opentelemetry.couchbase-3.1.6 @@ -2286,6 +2323,7 @@ libraries: - name: couchbase-3.2 description: | Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. + library_link: https://github.com/couchbase/couchbase-java-client source_path: instrumentation/couchbase/couchbase-3.2 scope: name: io.opentelemetry.couchbase-3.2 @@ -2297,6 +2335,7 @@ libraries: description: | The dropwizard-metrics instrumentation for the dropwizard/codahale metrics library produces OpenTelemetry compliant versions of the metrics generated by the Dropwizard MetricRegistry. The Dropwizard metrics API does not have a concept of metric labels/tags/attributes, thus the data produced by this integration might be of very low quality, depending on how the API is used in the instrumented application. + library_link: https://metrics.dropwizard.io/4.2.0/ disabled_by_default: true source_path: instrumentation/dropwizard/dropwizard-metrics-4.0 scope: @@ -2312,6 +2351,7 @@ libraries: - name: dropwizard-views-0.7 description: This instrumentation enables the creation of spans for Dropwizard views. + library_link: https://www.dropwizard.io/en/latest/manual/views.html source_path: instrumentation/dropwizard/dropwizard-views-0.7 scope: name: io.opentelemetry.dropwizard-views-0.7 @@ -2331,7 +2371,8 @@ libraries: elasticsearch: - name: elasticsearch-api-client-7.16 description: | - This instrumentation extends the elasticsearch-rest-7.0 instrumentation by adding additional `db.elasticsearch.path_parts.id` and `db.elasticsearch.path_parts.index` attributes to Elasticsearch CLIENT spans. Versions 8.10 and later of the client have native support for OpenTelemetry. + This instrumentation extends the elasticsearch-rest-7.0 instrumentation by adding additional `db.elasticsearch.path_parts.id` and `db.elasticsearch.path_parts.index` attributes to Elasticsearch database client spans. Versions 8.10 and later of the client have native support for OpenTelemetry. + library_link: https://www.elastic.co/docs/reference/elasticsearch/clients/java source_path: instrumentation/elasticsearch/elasticsearch-api-client-7.16 scope: name: io.opentelemetry.elasticsearch-api-client-7.16 @@ -2397,6 +2438,7 @@ libraries: - name: elasticsearch-rest-5.0 description: This instrumentation enables database client spans and database client metrics for Elasticsearch REST clients. + library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-rest source_path: instrumentation/elasticsearch/elasticsearch-rest-5.0 scope: name: io.opentelemetry.elasticsearch-rest-5.0 @@ -2459,6 +2501,7 @@ libraries: - name: elasticsearch-rest-6.4 description: This instrumentation enables database client spans and database client metrics for Elasticsearch REST clients. + library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-rest source_path: instrumentation/elasticsearch/elasticsearch-rest-6.4 scope: name: io.opentelemetry.elasticsearch-rest-6.4 @@ -2520,6 +2563,7 @@ libraries: - name: elasticsearch-rest-7.0 description: This instrumentation enables database client spans and database client metrics for Elasticsearch REST clients. + library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-rest source_path: instrumentation/elasticsearch/elasticsearch-rest-7.0 scope: name: io.opentelemetry.elasticsearch-rest-7.0 @@ -2583,6 +2627,7 @@ libraries: - name: elasticsearch-transport-5.0 description: | This instrumentation enables database client spans and database client metrics for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. + library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-api/ source_path: instrumentation/elasticsearch/elasticsearch-transport-5.0 scope: name: io.opentelemetry.elasticsearch-transport-5.0 @@ -2675,6 +2720,7 @@ libraries: - name: elasticsearch-transport-5.3 description: | This instrumentation enables database client spans and database client metrics for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. + library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-api/ source_path: instrumentation/elasticsearch/elasticsearch-transport-5.3 scope: name: io.opentelemetry.elasticsearch-transport-5.3 @@ -2772,6 +2818,7 @@ libraries: - name: elasticsearch-transport-6.0 description: | This instrumentation enables database client spans and database client metrics for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. + library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-api/ source_path: instrumentation/elasticsearch/elasticsearch-transport-6.0 scope: name: io.opentelemetry.elasticsearch-transport-6.0 @@ -2971,6 +3018,7 @@ libraries: - name: google-http-client-1.19 description: This instrumentation enables HTTP client spans and HTTP client metrics for Google HTTP Client requests. + library_link: https://github.com/googleapis/google-http-java-client source_path: instrumentation/google-http-client-1.19 scope: name: io.opentelemetry.google-http-client-1.19 @@ -3059,6 +3107,7 @@ libraries: graphql: - name: graphql-java-12.0 description: This instrumentation enables spans for GraphQL Java operations. + library_link: https://www.graphql-java.com/ source_path: instrumentation/graphql-java/graphql-java-12.0 scope: name: io.opentelemetry.graphql-java-12.0 diff --git a/instrumentation-docs/readme.md b/instrumentation-docs/readme.md index 27695692d2..4e389f6f54 100644 --- a/instrumentation-docs/readme.md +++ b/instrumentation-docs/readme.md @@ -114,6 +114,9 @@ public class SpringWebInstrumentationModule extends InstrumentationModule * name * Identifier for instrumentation module, used to enable/disable * Configured in `InstrumentationModule` code for each module +* library_link + * URL to the library or framework's main website or documentation, or if those don't exist, the + GitHub repository. * source_path * Path to the source code of the instrumentation module * minimum_java_version @@ -145,9 +148,10 @@ additional information about the instrumentation module. As of now, the following fields are supported, all of which are optional: ```yaml -description: "Instruments..." # Description of the instrumentation module -disabled_by_default: true # Defaults to `false` -classification: internal # instrumentation classification: library | internal | custom +description: "This instrumentation enables..." # Description of the instrumentation module +disabled_by_default: true # Defaults to `false` +classification: internal # instrumentation classification: library | internal | custom +library_link: https://... # URL to the library or framework's main website or documentation configurations: - name: otel.instrumentation.common.db-statement-sanitizer.enabled description: Enables statement sanitization for database queries. diff --git a/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/internal/InstrumentationMetaData.java b/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/internal/InstrumentationMetaData.java index d43a8bd2c7..eaf759c0be 100644 --- a/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/internal/InstrumentationMetaData.java +++ b/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/internal/InstrumentationMetaData.java @@ -25,6 +25,10 @@ public class InstrumentationMetaData { private String classification; + @JsonProperty("library_link") + @Nullable + private String libraryLink; + private List configurations = Collections.emptyList(); public InstrumentationMetaData() { @@ -35,10 +39,12 @@ public class InstrumentationMetaData { @Nullable String description, String classification, @Nullable Boolean disabledByDefault, + @Nullable String libraryLink, @Nullable List configurations) { this.classification = classification; this.disabledByDefault = disabledByDefault; this.description = description; + this.libraryLink = libraryLink; this.configurations = Objects.requireNonNullElse(configurations, Collections.emptyList()); } @@ -77,4 +83,13 @@ public class InstrumentationMetaData { public void setConfigurations(@Nullable List configurations) { this.configurations = Objects.requireNonNullElse(configurations, Collections.emptyList()); } + + @Nullable + public String getLibraryLink() { + return libraryLink; + } + + public void setLibraryLink(@Nullable String libraryLink) { + this.libraryLink = libraryLink; + } } diff --git a/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/utils/YamlHelper.java b/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/utils/YamlHelper.java index 98ed802d60..fd2a414434 100644 --- a/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/utils/YamlHelper.java +++ b/instrumentation-docs/src/main/java/io/opentelemetry/instrumentation/docs/utils/YamlHelper.java @@ -198,6 +198,9 @@ public class YamlHelper { if (module.getMetadata().getDescription() != null) { moduleMap.put("description", module.getMetadata().getDescription()); } + if (module.getMetadata().getLibraryLink() != null) { + moduleMap.put("library_link", module.getMetadata().getLibraryLink()); + } if (module.getMetadata().getDisabledByDefault()) { moduleMap.put("disabled_by_default", module.getMetadata().getDisabledByDefault()); } diff --git a/instrumentation-docs/src/test/java/io/opentelemetry/instrumentation/docs/utils/YamlHelperTest.java b/instrumentation-docs/src/test/java/io/opentelemetry/instrumentation/docs/utils/YamlHelperTest.java index be63541917..3a71b6a860 100644 --- a/instrumentation-docs/src/test/java/io/opentelemetry/instrumentation/docs/utils/YamlHelperTest.java +++ b/instrumentation-docs/src/test/java/io/opentelemetry/instrumentation/docs/utils/YamlHelperTest.java @@ -43,6 +43,7 @@ class YamlHelperTest { "Spring Web 6.0 instrumentation", InstrumentationClassification.LIBRARY.toString(), true, + null, null); modules.add( @@ -114,6 +115,7 @@ class YamlHelperTest { "Spring Web 6.0 instrumentation", InstrumentationClassification.LIBRARY.toString(), false, + null, List.of( new ConfigurationOption( "otel.instrumentation.spring-web-6.0.enabled", @@ -134,7 +136,7 @@ class YamlHelperTest { InstrumentationMetaData internalMetadata = new InstrumentationMetaData( - null, InstrumentationClassification.INTERNAL.toString(), null, null); + null, InstrumentationClassification.INTERNAL.toString(), null, null, null); modules.add( new InstrumentationModule.Builder() @@ -148,7 +150,7 @@ class YamlHelperTest { InstrumentationMetaData customMetadata = new InstrumentationMetaData( - null, InstrumentationClassification.CUSTOM.toString(), null, null); + null, InstrumentationClassification.CUSTOM.toString(), null, null, null); Map> externalAnnotationsVersions = Map.of( @@ -214,6 +216,7 @@ class YamlHelperTest { description: test description classification: internal disabled_by_default: true + library_link: https://example.com/test-library configurations: - name: otel.instrumentation.common.db-statement-sanitizer.enabled description: Enables statement sanitization for database queries. @@ -233,6 +236,7 @@ class YamlHelperTest { assertThat(metadata.getClassification()).isEqualTo(InstrumentationClassification.INTERNAL); assertThat(metadata.getDescription()).isEqualTo("test description"); assertThat(metadata.getDisabledByDefault()).isEqualTo(true); + assertThat(metadata.getLibraryLink()).isEqualTo("https://example.com/test-library"); } @Test @@ -241,6 +245,18 @@ class YamlHelperTest { InstrumentationMetaData metadata = YamlHelper.metaDataParser(input); assertThat(metadata.getClassification()).isEqualTo(InstrumentationClassification.INTERNAL); assertThat(metadata.getDescription()).isNull(); + assertThat(metadata.getLibraryLink()).isNull(); + assertThat(metadata.getDisabledByDefault()).isFalse(); + assertThat(metadata.getConfigurations()).isEmpty(); + } + + @Test + void testMetadataParserWithOnlyLibraryLink() throws JsonProcessingException { + String input = "library_link: https://example.com/only-link"; + InstrumentationMetaData metadata = YamlHelper.metaDataParser(input); + assertThat(metadata.getClassification()).isEqualTo(InstrumentationClassification.LIBRARY); + assertThat(metadata.getDescription()).isNull(); + assertThat(metadata.getLibraryLink()).isEqualTo("https://example.com/only-link"); assertThat(metadata.getDisabledByDefault()).isFalse(); assertThat(metadata.getConfigurations()).isEmpty(); } @@ -485,4 +501,80 @@ class YamlHelperTest { assertThat(yaml1).isEqualTo(yaml2); } + + @Test + void testYamlGenerationWithLibraryLink() throws Exception { + List modules = new ArrayList<>(); + Map> targetVersions = new HashMap<>(); + targetVersions.put( + InstrumentationType.JAVAAGENT, new HashSet<>(List.of("com.example:test-library:[1.0.0,)"))); + + InstrumentationMetaData metadataWithLink = + new InstrumentationMetaData( + "Test library instrumentation with link", + InstrumentationClassification.LIBRARY.toString(), + false, + "https://example.com/test-library-docs", + emptyList()); + + modules.add( + new InstrumentationModule.Builder() + .srcPath("instrumentation/test-lib/test-lib-1.0") + .instrumentationName("test-lib-1.0") + .namespace("test-lib") + .group("test-lib") + .targetVersions(targetVersions) + .metadata(metadataWithLink) + .build()); + + InstrumentationMetaData metadataWithoutLink = + new InstrumentationMetaData( + "Test library instrumentation without link", + InstrumentationClassification.LIBRARY.toString(), + false, + null, + emptyList()); + + modules.add( + new InstrumentationModule.Builder() + .srcPath("instrumentation/other-lib/other-lib-1.0") + .instrumentationName("other-lib-1.0") + .namespace("other-lib") + .group("other-lib") + .targetVersions(targetVersions) + .metadata(metadataWithoutLink) + .build()); + + StringWriter stringWriter = new StringWriter(); + BufferedWriter writer = new BufferedWriter(stringWriter); + + YamlHelper.generateInstrumentationYaml(modules, writer); + writer.flush(); + + String expectedYaml = + """ + libraries: + other-lib: + - name: other-lib-1.0 + description: Test library instrumentation without link + source_path: instrumentation/other-lib/other-lib-1.0 + scope: + name: io.opentelemetry.other-lib-1.0 + target_versions: + javaagent: + - com.example:test-library:[1.0.0,) + test-lib: + - name: test-lib-1.0 + description: Test library instrumentation with link + library_link: https://example.com/test-library-docs + source_path: instrumentation/test-lib/test-lib-1.0 + scope: + name: io.opentelemetry.test-lib-1.0 + target_versions: + javaagent: + - com.example:test-library:[1.0.0,) + """; + + assertThat(expectedYaml).isEqualTo(stringWriter.toString()); + } } diff --git a/instrumentation/activej-http-6.0/metadata.yaml b/instrumentation/activej-http-6.0/metadata.yaml index 5a227897f1..304b488628 100644 --- a/instrumentation/activej-http-6.0/metadata.yaml +++ b/instrumentation/activej-http-6.0/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables HTTP server spans and HTTP server metrics for the ActiveJ HTTP server. +library_link: https://activej.io/ diff --git a/instrumentation/akka/akka-actor-2.3/metadata.yaml b/instrumentation/akka/akka-actor-2.3/metadata.yaml index c1a83e29bb..10a31b6bb3 100644 --- a/instrumentation/akka/akka-actor-2.3/metadata.yaml +++ b/instrumentation/akka/akka-actor-2.3/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation provides context propagation for Akka actors, it does not emit any telemetry on its own. +library_link: https://doc.akka.io/libraries/akka-core/current/typed/index.html diff --git a/instrumentation/akka/akka-actor-fork-join-2.5/metadata.yaml b/instrumentation/akka/akka-actor-fork-join-2.5/metadata.yaml index b9bfd22540..455e49e55d 100644 --- a/instrumentation/akka/akka-actor-fork-join-2.5/metadata.yaml +++ b/instrumentation/akka/akka-actor-fork-join-2.5/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation provides context propagation for the Akka Fork-Join Pool, it does not emit any telemetry on its own. +library_link: https://doc.akka.io/libraries/akka-core/current/typed/index.html diff --git a/instrumentation/akka/akka-http-10.0/metadata.yaml b/instrumentation/akka/akka-http-10.0/metadata.yaml index 9ce2a76f48..3228b74026 100644 --- a/instrumentation/akka/akka-http-10.0/metadata.yaml +++ b/instrumentation/akka/akka-http-10.0/metadata.yaml @@ -1,3 +1,4 @@ description: > This instrumentation enables HTTP client spans and metrics for the Akka HTTP client, and HTTP server spans and metrics for the Akka HTTP server. +library_link: https://doc.akka.io/docs/akka-http/current/index.html diff --git a/instrumentation/alibaba-druid-1.0/metadata.yaml b/instrumentation/alibaba-druid-1.0/metadata.yaml index fea1243bef..07b26ff1c9 100644 --- a/instrumentation/alibaba-druid-1.0/metadata.yaml +++ b/instrumentation/alibaba-druid-1.0/metadata.yaml @@ -1,3 +1,4 @@ description: > The Alibaba Druid instrumentation generates database connection pool metrics for druid data sources. +library_link: https://github.com/alibaba/druid diff --git a/instrumentation/apache-dbcp-2.0/metadata.yaml b/instrumentation/apache-dbcp-2.0/metadata.yaml index b4f5c4be55..52981169ad 100644 --- a/instrumentation/apache-dbcp-2.0/metadata.yaml +++ b/instrumentation/apache-dbcp-2.0/metadata.yaml @@ -5,3 +5,4 @@ description: > only activates if the `BasicDataSource` is registered to an `MBeanServer`. If using Spring Boot, this happens automatically as all Spring beans that support JMX registration are automatically registered by default. +library_link: https://commons.apache.org/proper/commons-dbcp/ diff --git a/instrumentation/apache-dubbo-2.7/metadata.yaml b/instrumentation/apache-dubbo-2.7/metadata.yaml index 285ec23f8e..2deedb82d5 100644 --- a/instrumentation/apache-dubbo-2.7/metadata.yaml +++ b/instrumentation/apache-dubbo-2.7/metadata.yaml @@ -2,6 +2,7 @@ description: The Apache Dubbo instrumentation provides RPC client spans and RPC Apache Dubbo RPC calls. Each call produces a span named after the Dubbo method, enriched with standard RPC attributes (system, service, method), network attributes, and error details if an exception occurs. +library_link: https://github.com/apache/dubbo/ configurations: - name: otel.instrumentation.common.peer-service-mapping description: Used to specify a mapping from host names or IP addresses to peer services. diff --git a/instrumentation/apache-httpasyncclient-4.1/metadata.yaml b/instrumentation/apache-httpasyncclient-4.1/metadata.yaml index 4a7a1140f9..033d214b4b 100644 --- a/instrumentation/apache-httpasyncclient-4.1/metadata.yaml +++ b/instrumentation/apache-httpasyncclient-4.1/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables HTTP client spans and HTTP client metrics for the Apache HttpAsyncClient. +library_link: https://hc.apache.org/index.html diff --git a/instrumentation/apache-httpclient/apache-httpclient-2.0/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-2.0/metadata.yaml index e50d42320f..000fb1800b 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-2.0/metadata.yaml +++ b/instrumentation/apache-httpclient/apache-httpclient-2.0/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables HTTP client spans and HTTP client metrics for versions 2 and 3 of the Apache HttpClient. +library_link: https://hc.apache.org/index.html diff --git a/instrumentation/apache-httpclient/apache-httpclient-4.0/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-4.0/metadata.yaml index 015238e2f8..39d3f42f52 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-4.0/metadata.yaml +++ b/instrumentation/apache-httpclient/apache-httpclient-4.0/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables HTTP client spans and HTTP client metrics for version 4 of the Apache HttpClient. +library_link: https://hc.apache.org/index.html diff --git a/instrumentation/apache-httpclient/apache-httpclient-4.3/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-4.3/metadata.yaml index ea375ebfed..bd364a6a5e 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-4.3/metadata.yaml +++ b/instrumentation/apache-httpclient/apache-httpclient-4.3/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation provides a library integration that enables HTTP client spans and HTTP client metrics for the Apache HttpClient. +library_link: https://hc.apache.org/index.html diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.0/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-5.0/metadata.yaml index 530609ca74..6400d25c59 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-5.0/metadata.yaml +++ b/instrumentation/apache-httpclient/apache-httpclient-5.0/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables HTTP client spans and HTTP client metrics for version 5 of the Apache HttpClient. +library_link: https://hc.apache.org/index.html diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.2/library/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-5.2/library/metadata.yaml index eb4297e91d..44d209456c 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-5.2/library/metadata.yaml +++ b/instrumentation/apache-httpclient/apache-httpclient-5.2/library/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables CLIENT spans and metrics for the Apache HttpAsyncClient. +library_link: https://hc.apache.org/index.html diff --git a/instrumentation/apache-httpclient/apache-httpclient-5.2/metadata.yaml b/instrumentation/apache-httpclient/apache-httpclient-5.2/metadata.yaml index ea375ebfed..bd364a6a5e 100644 --- a/instrumentation/apache-httpclient/apache-httpclient-5.2/metadata.yaml +++ b/instrumentation/apache-httpclient/apache-httpclient-5.2/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation provides a library integration that enables HTTP client spans and HTTP client metrics for the Apache HttpClient. +library_link: https://hc.apache.org/index.html diff --git a/instrumentation/apache-shenyu-2.4/metadata.yaml b/instrumentation/apache-shenyu-2.4/metadata.yaml index 4bc00f6197..ab95d42e93 100644 --- a/instrumentation/apache-shenyu-2.4/metadata.yaml +++ b/instrumentation/apache-shenyu-2.4/metadata.yaml @@ -1,6 +1,7 @@ description: > This instrumentation does not emit telemetry on its own. Instead, it augments existing HTTP server spans and HTTP server metrics with the HTTP route and Shenyu specific attributes. +library_link: https://shenyu.apache.org/ configurations: - name: otel.instrumentation.apache-shenyu.experimental-span-attributes description: > diff --git a/instrumentation/armeria/armeria-1.3/metadata.yaml b/instrumentation/armeria/armeria-1.3/metadata.yaml index 2dbe53da23..2193e2b895 100644 --- a/instrumentation/armeria/armeria-1.3/metadata.yaml +++ b/instrumentation/armeria/armeria-1.3/metadata.yaml @@ -1,3 +1,4 @@ description: > This instrumentation enables HTTP client spans and metrics for the Armeria HTTP client, and HTTP server spans and metrics for the Armeria HTTP server. +library_link: https://armeria.dev/ diff --git a/instrumentation/armeria/armeria-grpc-1.14/metadata.yaml b/instrumentation/armeria/armeria-grpc-1.14/metadata.yaml index bfc8426533..6fb1394a9b 100644 --- a/instrumentation/armeria/armeria-grpc-1.14/metadata.yaml +++ b/instrumentation/armeria/armeria-grpc-1.14/metadata.yaml @@ -1,3 +1,4 @@ description: > This instrumentation enables RPC client spans and metrics for the Armeria gRPC client, and RPC server spans and metrics for the Armeria gRPC server. +library_link: https://armeria.dev/ diff --git a/instrumentation/async-http-client/async-http-client-1.9/metadata.yaml b/instrumentation/async-http-client/async-http-client-1.9/metadata.yaml index 6a037197b6..1ff1e4f33a 100644 --- a/instrumentation/async-http-client/async-http-client-1.9/metadata.yaml +++ b/instrumentation/async-http-client/async-http-client-1.9/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables HTTP client spans and HTTP client metrics for version 1 of the AsyncHttpClient (AHC) HTTP client. +library_link: https://github.com/AsyncHttpClient/async-http-client diff --git a/instrumentation/async-http-client/async-http-client-2.0/metadata.yaml b/instrumentation/async-http-client/async-http-client-2.0/metadata.yaml index 469e49766f..c965d84944 100644 --- a/instrumentation/async-http-client/async-http-client-2.0/metadata.yaml +++ b/instrumentation/async-http-client/async-http-client-2.0/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables HTTP client spans and HTTP client metrics for version 2 of the AsyncHttpClient (AHC) HTTP client. +library_link: https://github.com/AsyncHttpClient/async-http-client diff --git a/instrumentation/avaje-jex-3.0/metadata.yaml b/instrumentation/avaje-jex-3.0/metadata.yaml index af48cd7e17..298a92934e 100644 --- a/instrumentation/avaje-jex-3.0/metadata.yaml +++ b/instrumentation/avaje-jex-3.0/metadata.yaml @@ -2,3 +2,4 @@ description: > This instrumentation does not emit telemetry on its own. Instead, it hooks into the Avaje Jex Context to extract the HTTP route and attach it to existing HTTP server spans and HTTP server metrics. +library_link: https://avaje.io/jex/ diff --git a/instrumentation/aws-lambda/aws-lambda-core-1.0/metadata.yaml b/instrumentation/aws-lambda/aws-lambda-core-1.0/metadata.yaml index 38c4ecfede..9874a606a0 100644 --- a/instrumentation/aws-lambda/aws-lambda-core-1.0/metadata.yaml +++ b/instrumentation/aws-lambda/aws-lambda-core-1.0/metadata.yaml @@ -8,6 +8,7 @@ description: > For custom wrappers when using library instrumentation, you can configure the `OTEL_INSTRUMENTATION_AWS_LAMBDA_HANDLER` environment variable to contain your lambda handler method (in the format `package.ClassName::methodName`) and use one of wrappers as your lambda `Handler`. +library_link: https://docs.aws.amazon.com/lambda/latest/dg/java-handler.html configurations: - name: otel.instrumentation.aws-lambda.flush-timeout type: int diff --git a/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml b/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml index 9217c34011..5ebd193e9c 100644 --- a/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml +++ b/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml @@ -2,6 +2,7 @@ description: > This version of the library instrumentation is deprecated, please use the `aws-lambda-events-3.11` library instrumentation instead. This instrumentation builds on top of the `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including standard and custom event types. +library_link: https://docs.aws.amazon.com/lambda/latest/dg/java-handler.html configurations: - name: otel.instrumentation.aws-lambda.flush-timeout type: int diff --git a/instrumentation/aws-lambda/aws-lambda-events-3.11/metadata.yaml b/instrumentation/aws-lambda/aws-lambda-events-3.11/metadata.yaml index 3cf6a3e821..391729cd71 100644 --- a/instrumentation/aws-lambda/aws-lambda-events-3.11/metadata.yaml +++ b/instrumentation/aws-lambda/aws-lambda-events-3.11/metadata.yaml @@ -1,6 +1,7 @@ description: > This instrumentation builds on top of the `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including standard and custom event types. +library_link: https://docs.aws.amazon.com/lambda/latest/dg/java-handler.html configurations: - name: otel.instrumentation.aws-lambda.flush-timeout type: int diff --git a/instrumentation/aws-sdk/aws-sdk-1.11/metadata.yaml b/instrumentation/aws-sdk/aws-sdk-1.11/metadata.yaml index 67a599bc96..1e9e99f398 100644 --- a/instrumentation/aws-sdk/aws-sdk-1.11/metadata.yaml +++ b/instrumentation/aws-sdk/aws-sdk-1.11/metadata.yaml @@ -2,6 +2,7 @@ description: > This instrumentation covers the AWS SDK 1.11+ client library, enabling messaging and client spans and metrics for calls to AWS services including DynamoDB, EC2, Kinesis, Lambda, RDS, S3, secrets manager, SNS/SQS and step functions. +library_link: https://aws.amazon.com/sdk-for-java/ configurations: - name: otel.instrumentation.aws-sdk.experimental-span-attributes description: > diff --git a/instrumentation/aws-sdk/aws-sdk-2.2/metadata.yaml b/instrumentation/aws-sdk/aws-sdk-2.2/metadata.yaml index 81605dccda..352990cd9d 100644 --- a/instrumentation/aws-sdk/aws-sdk-2.2/metadata.yaml +++ b/instrumentation/aws-sdk/aws-sdk-2.2/metadata.yaml @@ -2,6 +2,7 @@ description: > This instrumentation covers the AWS SDK 2.2+ client library, enabling messaging and client spans and metrics for calls to AWS services including DynamoDB, EC2, Kinesis, Lambda, RDS, S3, SNS/SQS and Bedrock. +library_link: https://aws.amazon.com/sdk-for-java/ configurations: - name: otel.instrumentation.messaging.experimental.receive-telemetry.enabled description: > diff --git a/instrumentation/azure-core/azure-core-1.14/metadata.yaml b/instrumentation/azure-core/azure-core-1.14/metadata.yaml index bee04ae8b1..a225b87a74 100644 --- a/instrumentation/azure-core/azure-core-1.14/metadata.yaml +++ b/instrumentation/azure-core/azure-core-1.14/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables context propagation for the Azure Core library, it does not emit any telemetry on its own. +library_link: https://learn.microsoft.com/en-us/java/api/overview/azure/core-readme?view=azure-java-stable diff --git a/instrumentation/azure-core/azure-core-1.19/metadata.yaml b/instrumentation/azure-core/azure-core-1.19/metadata.yaml index bee04ae8b1..a225b87a74 100644 --- a/instrumentation/azure-core/azure-core-1.19/metadata.yaml +++ b/instrumentation/azure-core/azure-core-1.19/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables context propagation for the Azure Core library, it does not emit any telemetry on its own. +library_link: https://learn.microsoft.com/en-us/java/api/overview/azure/core-readme?view=azure-java-stable diff --git a/instrumentation/azure-core/azure-core-1.36/metadata.yaml b/instrumentation/azure-core/azure-core-1.36/metadata.yaml index bee04ae8b1..a225b87a74 100644 --- a/instrumentation/azure-core/azure-core-1.36/metadata.yaml +++ b/instrumentation/azure-core/azure-core-1.36/metadata.yaml @@ -1 +1,2 @@ description: This instrumentation enables context propagation for the Azure Core library, it does not emit any telemetry on its own. +library_link: https://learn.microsoft.com/en-us/java/api/overview/azure/core-readme?view=azure-java-stable diff --git a/instrumentation/c3p0-0.9/metadata.yaml b/instrumentation/c3p0-0.9/metadata.yaml index 0c307d2321..9a8b089951 100644 --- a/instrumentation/c3p0-0.9/metadata.yaml +++ b/instrumentation/c3p0-0.9/metadata.yaml @@ -1 +1,2 @@ description: The c3p0 instrumentation provides connection pool metrics for c3p0 data sources. +library_link: https://github.com/swaldman/c3p0 diff --git a/instrumentation/camel-2.20/metadata.yaml b/instrumentation/camel-2.20/metadata.yaml index 811ffc94c4..968f1d58d0 100644 --- a/instrumentation/camel-2.20/metadata.yaml +++ b/instrumentation/camel-2.20/metadata.yaml @@ -2,6 +2,7 @@ description: > This instrumentation enables tracing for Apache Camel 2.x applications by generating spans for each route execution. For Camel versions 3.5 and newer, users should instead use the native 'camel-opentelemetry' component provided directly by the Camel project. +library_link: https://camel.apache.org/ configurations: - name: otel.instrumentation.camel.experimental-span-attributes description: > diff --git a/instrumentation/cassandra/cassandra-3.0/metadata.yaml b/instrumentation/cassandra/cassandra-3.0/metadata.yaml index e0de86a5fe..1ba8531796 100644 --- a/instrumentation/cassandra/cassandra-3.0/metadata.yaml +++ b/instrumentation/cassandra/cassandra-3.0/metadata.yaml @@ -1,6 +1,7 @@ description: > Instruments the Cassandra database client, providing database client spans and metrics for Cassandra queries. +library_link: https://github.com/apache/cassandra-java-driver configurations: - name: otel.instrumentation.common.db-statement-sanitizer.enabled description: Enables statement sanitization for database queries. diff --git a/instrumentation/cassandra/cassandra-4.0/metadata.yaml b/instrumentation/cassandra/cassandra-4.0/metadata.yaml index e0de86a5fe..1ba8531796 100644 --- a/instrumentation/cassandra/cassandra-4.0/metadata.yaml +++ b/instrumentation/cassandra/cassandra-4.0/metadata.yaml @@ -1,6 +1,7 @@ description: > Instruments the Cassandra database client, providing database client spans and metrics for Cassandra queries. +library_link: https://github.com/apache/cassandra-java-driver configurations: - name: otel.instrumentation.common.db-statement-sanitizer.enabled description: Enables statement sanitization for database queries. diff --git a/instrumentation/cassandra/cassandra-4.4/metadata.yaml b/instrumentation/cassandra/cassandra-4.4/metadata.yaml index e0de86a5fe..1ba8531796 100644 --- a/instrumentation/cassandra/cassandra-4.4/metadata.yaml +++ b/instrumentation/cassandra/cassandra-4.4/metadata.yaml @@ -1,6 +1,7 @@ description: > Instruments the Cassandra database client, providing database client spans and metrics for Cassandra queries. +library_link: https://github.com/apache/cassandra-java-driver configurations: - name: otel.instrumentation.common.db-statement-sanitizer.enabled description: Enables statement sanitization for database queries. diff --git a/instrumentation/clickhouse-client-0.5/metadata.yaml b/instrumentation/clickhouse-client-0.5/metadata.yaml index 9287ee0c5f..9bf8c092fb 100644 --- a/instrumentation/clickhouse-client-0.5/metadata.yaml +++ b/instrumentation/clickhouse-client-0.5/metadata.yaml @@ -1,4 +1,5 @@ description: Instruments the V1 ClickHouseClient, providing database client spans and metrics. +library_link: https://github.com/ClickHouse/clickhouse-java configurations: - name: otel.instrumentation.common.db-statement-sanitizer.enabled description: Enables statement sanitization for database queries. diff --git a/instrumentation/couchbase/couchbase-2.0/metadata.yaml b/instrumentation/couchbase/couchbase-2.0/metadata.yaml index 126e92d6da..eb4b19f069 100644 --- a/instrumentation/couchbase/couchbase-2.0/metadata.yaml +++ b/instrumentation/couchbase/couchbase-2.0/metadata.yaml @@ -2,3 +2,4 @@ description: > This instrumentation enables database client spans and database client metrics for Couchbase 2.0 operations. It automatically traces key-value operations (get, upsert, replace, remove), view queries, N1QL queries, and cluster management operations. +library_link: https://github.com/couchbase/couchbase-java-client diff --git a/instrumentation/couchbase/couchbase-2.6/metadata.yaml b/instrumentation/couchbase/couchbase-2.6/metadata.yaml index 3c78a71257..0776918ae8 100644 --- a/instrumentation/couchbase/couchbase-2.6/metadata.yaml +++ b/instrumentation/couchbase/couchbase-2.6/metadata.yaml @@ -2,6 +2,7 @@ description: > This instrumentation enables database client spans and database client metrics for Couchbase 2.6 operations. It automatically traces key-value operations (get, upsert, replace, remove), view queries, N1QL queries, and cluster management operations. +library_link: https://github.com/couchbase/couchbase-java-client configurations: - name: otel.instrumentation.couchbase.experimental-span-attributes description: > diff --git a/instrumentation/couchbase/couchbase-3.1.6/metadata.yaml b/instrumentation/couchbase/couchbase-3.1.6/metadata.yaml index 959f051258..ecbda30e26 100644 --- a/instrumentation/couchbase/couchbase-3.1.6/metadata.yaml +++ b/instrumentation/couchbase/couchbase-3.1.6/metadata.yaml @@ -1,3 +1,4 @@ description: > Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. +library_link: https://github.com/couchbase/couchbase-java-client diff --git a/instrumentation/couchbase/couchbase-3.1/metadata.yaml b/instrumentation/couchbase/couchbase-3.1/metadata.yaml index 959f051258..ecbda30e26 100644 --- a/instrumentation/couchbase/couchbase-3.1/metadata.yaml +++ b/instrumentation/couchbase/couchbase-3.1/metadata.yaml @@ -1,3 +1,4 @@ description: > Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. +library_link: https://github.com/couchbase/couchbase-java-client diff --git a/instrumentation/couchbase/couchbase-3.2/metadata.yaml b/instrumentation/couchbase/couchbase-3.2/metadata.yaml index 959f051258..ecbda30e26 100644 --- a/instrumentation/couchbase/couchbase-3.2/metadata.yaml +++ b/instrumentation/couchbase/couchbase-3.2/metadata.yaml @@ -1,3 +1,4 @@ description: > Couchbase instrumentation is owned by the Couchbase project for versions 3+. This instrumentation automatically configures the instrumentation provided by the Couchbase library. +library_link: https://github.com/couchbase/couchbase-java-client diff --git a/instrumentation/dropwizard/dropwizard-metrics-4.0/metadata.yaml b/instrumentation/dropwizard/dropwizard-metrics-4.0/metadata.yaml index 930c129fa3..808f1b80be 100644 --- a/instrumentation/dropwizard/dropwizard-metrics-4.0/metadata.yaml +++ b/instrumentation/dropwizard/dropwizard-metrics-4.0/metadata.yaml @@ -5,6 +5,7 @@ description: > The Dropwizard metrics API does not have a concept of metric labels/tags/attributes, thus the data produced by this integration might be of very low quality, depending on how the API is used in the instrumented application. +library_link: https://metrics.dropwizard.io/4.2.0/ disabled_by_default: true configurations: - name: otel.instrumentation.dropwizard-metrics.enabled diff --git a/instrumentation/dropwizard/dropwizard-views-0.7/metadata.yaml b/instrumentation/dropwizard/dropwizard-views-0.7/metadata.yaml index 3d12762fa6..b0fa428763 100644 --- a/instrumentation/dropwizard/dropwizard-views-0.7/metadata.yaml +++ b/instrumentation/dropwizard/dropwizard-views-0.7/metadata.yaml @@ -1,4 +1,5 @@ description: This instrumentation enables the creation of spans for Dropwizard views. +library_link: https://www.dropwizard.io/en/latest/manual/views.html configurations: - name: otel.instrumentation.common.experimental.view-telemetry.enabled description: Enables the creation of experimental view (INTERNAL) spans. diff --git a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/metadata.yaml index fc2be4a9be..5db4ba15cf 100644 --- a/instrumentation/elasticsearch/elasticsearch-api-client-7.16/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-api-client-7.16/metadata.yaml @@ -1,5 +1,6 @@ description: > This instrumentation extends the elasticsearch-rest-7.0 instrumentation by adding additional `db.elasticsearch.path_parts.id` and `db.elasticsearch.path_parts.index` attributes to - Elasticsearch CLIENT spans. Versions 8.10 and later of the client have native support for + Elasticsearch database client spans. Versions 8.10 and later of the client have native support for OpenTelemetry. +library_link: https://www.elastic.co/docs/reference/elasticsearch/clients/java diff --git a/instrumentation/elasticsearch/elasticsearch-rest-5.0/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-rest-5.0/metadata.yaml index a6b87d3942..de0261adb3 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-5.0/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-rest-5.0/metadata.yaml @@ -1,4 +1,5 @@ description: This instrumentation enables database client spans and database client metrics for Elasticsearch REST clients. +library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-rest configurations: - name: otel.instrumentation.elasticsearch.capture-search-query description: > diff --git a/instrumentation/elasticsearch/elasticsearch-rest-6.4/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-rest-6.4/metadata.yaml index a6b87d3942..de0261adb3 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-6.4/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-rest-6.4/metadata.yaml @@ -1,4 +1,5 @@ description: This instrumentation enables database client spans and database client metrics for Elasticsearch REST clients. +library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-rest configurations: - name: otel.instrumentation.elasticsearch.capture-search-query description: > diff --git a/instrumentation/elasticsearch/elasticsearch-rest-7.0/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-rest-7.0/metadata.yaml index a6b87d3942..de0261adb3 100644 --- a/instrumentation/elasticsearch/elasticsearch-rest-7.0/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-rest-7.0/metadata.yaml @@ -1,4 +1,5 @@ description: This instrumentation enables database client spans and database client metrics for Elasticsearch REST clients. +library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-rest configurations: - name: otel.instrumentation.elasticsearch.capture-search-query description: > diff --git a/instrumentation/elasticsearch/elasticsearch-transport-5.0/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-transport-5.0/metadata.yaml index d92c51ed97..e2f0f47bd0 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-5.0/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-transport-5.0/metadata.yaml @@ -2,6 +2,7 @@ description: > This instrumentation enables database client spans and database client metrics for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. +library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-api/ configurations: - name: otel.instrumentation.elasticsearch.experimental-span-attributes description: > diff --git a/instrumentation/elasticsearch/elasticsearch-transport-5.3/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-transport-5.3/metadata.yaml index b480368363..0a739c7609 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-5.3/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-transport-5.3/metadata.yaml @@ -2,6 +2,7 @@ description: > This instrumentation enables database client spans and database client metrics for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. +library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-api/ configurations: - name: otel.instrumentation.elasticsearch.experimental-span-attributes description: > diff --git a/instrumentation/elasticsearch/elasticsearch-transport-6.0/metadata.yaml b/instrumentation/elasticsearch/elasticsearch-transport-6.0/metadata.yaml index 78afb6307d..9236d34807 100644 --- a/instrumentation/elasticsearch/elasticsearch-transport-6.0/metadata.yaml +++ b/instrumentation/elasticsearch/elasticsearch-transport-6.0/metadata.yaml @@ -2,6 +2,7 @@ description: > This instrumentation enables database client spans and database client metrics for Elasticsearch transport client requests. Each call produces a span named after the Elasticsearch action, enriched with transport-specific attributes. +library_link: https://www.elastic.co/guide/en/elasticsearch/client/java-api/ configurations: - name: otel.instrumentation.elasticsearch.experimental-span-attributes description: > diff --git a/instrumentation/google-http-client-1.19/metadata.yaml b/instrumentation/google-http-client-1.19/metadata.yaml index 13e0575015..7fb2d572d9 100644 --- a/instrumentation/google-http-client-1.19/metadata.yaml +++ b/instrumentation/google-http-client-1.19/metadata.yaml @@ -1,4 +1,5 @@ description: This instrumentation enables HTTP client spans and HTTP client metrics for Google HTTP Client requests. +library_link: https://github.com/googleapis/google-http-java-client configurations: - name: otel.instrumentation.http.known-methods description: > diff --git a/instrumentation/graphql-java/graphql-java-12.0/metadata.yaml b/instrumentation/graphql-java/graphql-java-12.0/metadata.yaml index 7279dc02ed..5bdb67a7e2 100644 --- a/instrumentation/graphql-java/graphql-java-12.0/metadata.yaml +++ b/instrumentation/graphql-java/graphql-java-12.0/metadata.yaml @@ -1,4 +1,5 @@ description: This instrumentation enables spans for GraphQL Java operations. +library_link: https://www.graphql-java.com/ configurations: - name: otel.instrumentation.graphql.query-sanitizer.enabled description: Enables sanitization of sensitive information from queries so they aren't added as span attributes.