diff --git a/docs/contributing/documenting-instrumentation.md b/docs/contributing/documenting-instrumentation.md index 03e148c2df88..b64a6bc2e7ba 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 81fff4f7efb9..746bb6fbb0e9 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 0d75a2b6ade0..95854d2bf0de 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 d43a8bd2c748..eaf759c0bee0 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 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 List getConfigurations() { 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 98ed802d6047..fd2a414434df 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 @@ private static void addMetadataProperties( 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 be63541917f9..3a71b6a86042 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 @@ void testPrintInstrumentationList() throws Exception { "Spring Web 6.0 instrumentation", InstrumentationClassification.LIBRARY.toString(), true, + null, null); modules.add( @@ -114,6 +115,7 @@ void testGenerateInstrumentationYamlSeparatesClassifications() throws Exception "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 @@ void testGenerateInstrumentationYamlSeparatesClassifications() throws Exception 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 @@ void testGenerateInstrumentationYamlSeparatesClassifications() throws Exception 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 @@ void testMetadataParser() throws JsonProcessingException { 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 @@ void testMetadataParser() throws JsonProcessingException { 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 @@ void testMetadataParserWithOnlyLibraryEntry() throws JsonProcessingException { 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 @@ void testTelemetryGroupsAreSorted() throws Exception { 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 5a227897f102..304b488628d0 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 c1a83e29bb5f..10a31b6bb3c3 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 b9bfd2254016..455e49e55d8d 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 9ce2a76f48a7..3228b74026af 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 fea1243befb7..07b26ff1c997 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 b4f5c4be5557..52981169ad5c 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 285ec23f8e59..2deedb82d52e 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 4a7a1140f9a4..033d214b4b9c 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 e50d42320fc5..000fb1800be1 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 015238e2f85b..39d3f42f5258 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 ea375ebfed91..bd364a6a5ef9 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 530609ca7439..6400d25c59f6 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 eb4297e91dfb..44d209456cfa 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 ea375ebfed91..bd364a6a5ef9 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 4bc00f619700..ab95d42e9305 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 2dbe53da234d..2193e2b895ad 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 bfc8426533ca..6fb1394a9b1a 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 6a037197b6d0..1ff1e4f33ad2 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 469e49766f9e..c965d8494436 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 af48cd7e17cf..298a92934ea2 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 38c4ecfededd..9874a606a002 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 9217c340114c..5ebd193e9c1e 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 3cf6a3e821d0..391729cd71df 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 67a599bc9606..1e9e99f398b0 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 81605dccdafc..352990cd9d53 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 bee04ae8b1c4..a225b87a74c9 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 bee04ae8b1c4..a225b87a74c9 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 bee04ae8b1c4..a225b87a74c9 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 0c307d232160..9a8b08995180 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 811ffc94c426..968f1d58d09d 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 e0de86a5fe32..1ba853179653 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 e0de86a5fe32..1ba853179653 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 e0de86a5fe32..1ba853179653 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 9287ee0c5f91..9bf8c092fb0c 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 126e92d6da02..eb4b19f0695b 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 3c78a71257e1..0776918ae8ba 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 959f05125813..ecbda30e26eb 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 959f05125813..ecbda30e26eb 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 959f05125813..ecbda30e26eb 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 930c129fa366..808f1b80beb0 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 3d12762fa676..b0fa4287635d 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 fc2be4a9bec5..5db4ba15cf6f 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 a6b87d39429a..de0261adb368 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 a6b87d39429a..de0261adb368 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 a6b87d39429a..de0261adb368 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 d92c51ed9722..e2f0f47bd0f5 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 b48036836352..0a739c76095c 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 78afb6307d29..9236d3480708 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 13e0575015f0..7fb2d572d923 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 7279dc02ed5b..5bdb67a7e26e 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.