From 866d03a727db1c71acee143c804934ec842d842f Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Mon, 25 Aug 2025 06:49:50 -0400 Subject: [PATCH 1/4] metadata for new aws lambda events --- docs/instrumentation-list.yaml | 45 ++++++++++++++++++- instrumentation-docs/instrumentations.sh | 1 + .../aws-lambda-events-2.2/metadata.yaml | 13 ++++-- .../library/build.gradle.kts | 16 ++++--- .../aws-lambda-events-3.11/metadata.yaml | 9 ++++ 5 files changed, 75 insertions(+), 9 deletions(-) create mode 100644 instrumentation/aws-lambda/aws-lambda-events-3.11/metadata.yaml diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index 09b1a3a835fe..05bc80993bb1 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -945,7 +945,7 @@ libraries: type: STRING - name: aws-lambda-events-2.2 description: | - Provides full instrumentation of the Lambda library, including standard and custom event types, from `aws-lambda-java-events` 2.2+. + This version of the library instrumentation is deprecated, please use the aws-lambda-events-3.11 library instrumentation instead. Provides instrumentation of the Lambda library, including standard and custom event types, from `aws-lambda-java-events` 2.2+. Does not support SQSBatchResponse. source_path: instrumentation/aws-lambda/aws-lambda-events-2.2 scope: name: io.opentelemetry.aws-lambda-events-2.2 @@ -960,6 +960,11 @@ libraries: description: Flush timeout in milliseconds. type: int default: 10000 + - name: otel.instrumentation.http.known-methods + description: | + Configures the instrumentation to recognize an alternative set of HTTP request methods. All other methods will be treated as `_OTHER`. + type: list + default: CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE telemetry: - when: default spans: @@ -984,6 +989,8 @@ libraries: - name: user_agent.original type: STRING - name: aws-lambda-events-3.11 + description: | + Provides full instrumentation of the Lambda library, including standard and custom event types, from `aws-lambda-java-events` 3.11+. source_path: instrumentation/aws-lambda/aws-lambda-events-3.11 scope: name: io.opentelemetry.aws-lambda-events-3.11 @@ -991,6 +998,42 @@ libraries: library: - com.amazonaws:aws-lambda-java-events:3.11.0 - com.amazonaws:aws-lambda-java-core:1.0.0 + configurations: + - name: otel.instrumentation.aws-lambda.flush-timeout + description: Flush timeout in milliseconds. + type: int + default: 10000 + telemetry: + - when: default + spans: + - span_kind: CONSUMER + attributes: + - name: messaging.destination.name + type: STRING + - name: messaging.message.id + type: STRING + - name: messaging.operation + type: STRING + - name: messaging.system + type: STRING + - span_kind: SERVER + attributes: + - name: cloud.account.id + type: STRING + - name: cloud.resource_id + type: STRING + - name: faas.invocation_id + type: STRING + - name: faas.trigger + type: STRING + - name: http.request.method + type: STRING + - name: http.response.status_code + type: LONG + - name: url.full + type: STRING + - name: user_agent.original + type: STRING - 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. diff --git a/instrumentation-docs/instrumentations.sh b/instrumentation-docs/instrumentations.sh index 79d186871e40..9b207a7ea5b4 100755 --- a/instrumentation-docs/instrumentations.sh +++ b/instrumentation-docs/instrumentations.sh @@ -117,6 +117,7 @@ readonly INSTRUMENTATIONS=( "openai:openai-java-1.1:javaagent:test" "aws-lambda:aws-lambda-core-1.0:javaagent:test" "aws-lambda:aws-lambda-events-2.2:javaagent:test" + "aws-lambda:aws-lambda-events-3.11:library:test" "cassandra:cassandra-3.0:javaagent:test" "cassandra:cassandra-3.0:javaagent:testStableSemconv" "cassandra:cassandra-4.0:javaagent:test" 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 3dc33adf8ec7..556a9b9fc3b6 100644 --- a/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml +++ b/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml @@ -1,9 +1,16 @@ description: > - Provides full instrumentation of the Lambda library, including standard and custom event types, - from `aws-lambda-java-events` 2.2+. + This version of the library instrumentation is deprecated, please use the aws-lambda-events-3.11 + library instrumentation instead. Provides instrumentation of the Lambda library, including + standard and custom event types, from `aws-lambda-java-events` 2.2+. Does not support + SQSBatchResponse. configurations: - name: otel.instrumentation.aws-lambda.flush-timeout type: int default: 10000 description: Flush timeout in milliseconds. - + - name: otel.instrumentation.http.known-methods + description: > + Configures the instrumentation to recognize an alternative set of HTTP request methods. All + other methods will be treated as `_OTHER`. + type: list + default: "CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE" diff --git a/instrumentation/aws-lambda/aws-lambda-events-3.11/library/build.gradle.kts b/instrumentation/aws-lambda/aws-lambda-events-3.11/library/build.gradle.kts index 7e63bb6e53bf..d21c0b8ebfba 100644 --- a/instrumentation/aws-lambda/aws-lambda-events-3.11/library/build.gradle.kts +++ b/instrumentation/aws-lambda/aws-lambda-events-3.11/library/build.gradle.kts @@ -22,9 +22,15 @@ dependencies { testImplementation("uk.org.webcompere:system-stubs-jupiter") } -tasks.withType().configureEach { - // required on jdk17 - jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") - jvmArgs("--add-opens=java.base/java.util=ALL-UNNAMED") - jvmArgs("-XX:+IgnoreUnrecognizedVMOptions") +tasks { + withType().configureEach { + // required on jdk17 + jvmArgs("--add-opens=java.base/java.lang=ALL-UNNAMED") + jvmArgs("--add-opens=java.base/java.util=ALL-UNNAMED") + jvmArgs("-XX:+IgnoreUnrecognizedVMOptions") + } + + test { + systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false") + } } diff --git a/instrumentation/aws-lambda/aws-lambda-events-3.11/metadata.yaml b/instrumentation/aws-lambda/aws-lambda-events-3.11/metadata.yaml new file mode 100644 index 000000000000..0d522d8d516f --- /dev/null +++ b/instrumentation/aws-lambda/aws-lambda-events-3.11/metadata.yaml @@ -0,0 +1,9 @@ +description: > + Provides full instrumentation of the Lambda library, including standard and custom event types, + from `aws-lambda-java-events` 3.11+. +configurations: + - name: otel.instrumentation.aws-lambda.flush-timeout + type: int + default: 10000 + description: Flush timeout in milliseconds. + From da5decf4fa702cfa40eea5d31787996a1c338cae Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Mon, 25 Aug 2025 09:56:31 -0400 Subject: [PATCH 2/4] Update descriptions --- docs/instrumentation-list.yaml | 4 ++-- instrumentation/aws-lambda/README.md | 7 +++++-- .../aws-lambda/aws-lambda-events-2.2/metadata.yaml | 6 +++--- .../aws-lambda/aws-lambda-events-3.11/metadata.yaml | 4 ++-- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index 05bc80993bb1..e8d6017b0bd5 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -945,7 +945,7 @@ libraries: type: STRING - 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. Provides instrumentation of the Lambda library, including standard and custom event types, from `aws-lambda-java-events` 2.2+. Does not support SQSBatchResponse. + 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 lightweight `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including standard and custom event types. source_path: instrumentation/aws-lambda/aws-lambda-events-2.2 scope: name: io.opentelemetry.aws-lambda-events-2.2 @@ -990,7 +990,7 @@ libraries: type: STRING - name: aws-lambda-events-3.11 description: | - Provides full instrumentation of the Lambda library, including standard and custom event types, from `aws-lambda-java-events` 3.11+. + This instrumentation builds on top of the lightweight `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including standard and custom event types. source_path: instrumentation/aws-lambda/aws-lambda-events-3.11 scope: name: io.opentelemetry.aws-lambda-events-3.11 diff --git a/instrumentation/aws-lambda/README.md b/instrumentation/aws-lambda/README.md index 9173db38f84b..83d3a7f98bc2 100644 --- a/instrumentation/aws-lambda/README.md +++ b/instrumentation/aws-lambda/README.md @@ -7,5 +7,8 @@ We provide two packages for instrumenting AWS lambda functions. `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. -- [aws-lambda-events-2.2](./aws-lambda-events-2.2/library) provides full instrumentation of the Lambda library, including standard - and custom event types, from `aws-lambda-java-events` 2.2+. +- [aws-lambda-events-2.2](./aws-lambda-events-2.2/library) (Library instrumentation is deprecated) provides instrumentation of the Lambda library, + including standard and custom event types, from `aws-lambda-java-events` 2.2+. + +- [aws-lambda-events-3.11](./aws-lambda-events-2.2/library) provides instrumentation of the Lambda library, including standard and custom event + types, from `aws-lambda-java-events` 3.11+. 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 556a9b9fc3b6..31dcf7118ef3 100644 --- a/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml +++ b/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml @@ -1,8 +1,8 @@ description: > This version of the library instrumentation is deprecated, please use the aws-lambda-events-3.11 - library instrumentation instead. Provides instrumentation of the Lambda library, including - standard and custom event types, from `aws-lambda-java-events` 2.2+. Does not support - SQSBatchResponse. + library instrumentation instead. This instrumentation builds on top of the lightweight + `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including + standard and custom event types. 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 0d522d8d516f..57c4268c3f74 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,6 @@ description: > - Provides full instrumentation of the Lambda library, including standard and custom event types, - from `aws-lambda-java-events` 3.11+. + This instrumentation builds on top of the lightweight `aws-lambda-core-1.0` instrumentation, + expanding support to cover the Lambda library, including standard and custom event types. configurations: - name: otel.instrumentation.aws-lambda.flush-timeout type: int From 903bb908f8c21cad17ccf87ecdc6704b45c683fe Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Wed, 27 Aug 2025 08:50:41 -0400 Subject: [PATCH 3/4] update core desc --- docs/instrumentation-list.yaml | 137 ++++++++++ instrumentation-docs/collect.sh | 22 +- instrumentation-docs/instrumentations.sh | 250 +++++++++--------- .../aws-lambda-core-1.0/metadata.yaml | 4 + 4 files changed, 277 insertions(+), 136 deletions(-) diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index e8d6017b0bd5..4451e2230376 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -923,6 +923,7 @@ libraries: - name: aws-lambda-core-1.0 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` env property to your lambda handler method in following format `package.ClassName::methodName` and use one of wrappers as your lambda `Handler`. source_path: instrumentation/aws-lambda/aws-lambda-core-1.0 scope: name: io.opentelemetry.aws-lambda-core-1.0 @@ -2922,6 +2923,43 @@ libraries: target_versions: javaagent: - org.apache.geode:geode-core:[1.4.0,) + telemetry: + - when: default + spans: + - span_kind: CLIENT + attributes: + - name: db.name + type: STRING + - name: db.operation + type: STRING + - name: db.statement + type: STRING + - name: db.system + type: STRING + - when: otel.semconv-stability.opt-in=database + metrics: + - name: db.client.operation.duration + description: Duration of database client operations. + type: HISTOGRAM + unit: s + attributes: + - name: db.namespace + type: STRING + - name: db.operation.name + type: STRING + - name: db.system.name + type: STRING + spans: + - span_kind: CLIENT + attributes: + - name: db.namespace + type: STRING + - name: db.operation.name + type: STRING + - name: db.query.text + type: STRING + - name: db.system.name + type: STRING google: - name: google-http-client-1.19 source_path: instrumentation/google-http-client-1.19 @@ -2969,6 +3007,11 @@ libraries: target_versions: javaagent: - org.grails:grails-web-url-mappings:[3.0,) + telemetry: + - when: otel.instrumentation.common.experimental.controller-telemetry.enabled=true + spans: + - span_kind: INTERNAL + attributes: [] graphql: - name: graphql-java-12.0 source_path: instrumentation/graphql-java/graphql-java-12.0 @@ -2979,6 +3022,17 @@ libraries: - com.graphql-java:graphql-java:[12,20) library: - com.graphql-java:graphql-java:[12.0,19.+) + telemetry: + - when: default + spans: + - span_kind: INTERNAL + attributes: + - name: graphql.document + type: STRING + - name: graphql.operation.name + type: STRING + - name: graphql.operation.type + type: STRING - name: graphql-java-20.0 source_path: instrumentation/graphql-java/graphql-java-20.0 minimum_java_version: 11 @@ -2989,6 +3043,31 @@ libraries: - com.graphql-java:graphql-java:[20,) library: - com.graphql-java:graphql-java:20.0 + telemetry: + - when: default + spans: + - span_kind: INTERNAL + attributes: + - name: graphql.document + type: STRING + - name: graphql.operation.name + type: STRING + - name: graphql.operation.type + type: STRING + - when: otel.instrumentation.graphql.data-fetcher.enabled=true + spans: + - span_kind: INTERNAL + attributes: + - name: graphql.document + type: STRING + - name: graphql.field.name + type: STRING + - name: graphql.field.path + type: STRING + - name: graphql.operation.name + type: STRING + - name: graphql.operation.type + type: STRING grizzly: - name: grizzly-2.3 source_path: instrumentation/grizzly-2.3 @@ -2997,6 +3076,53 @@ libraries: target_versions: javaagent: - org.glassfish.grizzly:grizzly-http:[2.3,) + telemetry: + - when: default + metrics: + - name: http.server.request.duration + description: Duration of HTTP server requests. + type: HISTOGRAM + unit: s + attributes: + - name: http.request.method + type: STRING + - name: http.response.status_code + type: LONG + - name: network.protocol.version + type: STRING + - name: url.scheme + type: STRING + spans: + - span_kind: SERVER + attributes: + - name: client.address + type: STRING + - name: error.type + type: STRING + - name: http.request.method + type: STRING + - name: http.request.method_original + type: STRING + - name: http.response.status_code + type: LONG + - name: network.peer.address + type: STRING + - name: network.peer.port + type: LONG + - name: network.protocol.version + type: STRING + - name: server.address + type: STRING + - name: server.port + type: LONG + - name: url.path + type: STRING + - name: url.query + type: STRING + - name: url.scheme + type: STRING + - name: user_agent.original + type: STRING grpc: - name: grpc-1.6 source_path: instrumentation/grpc-1.6 @@ -3026,6 +3152,17 @@ libraries: javaagent: - com.google.gwt:gwt-servlet:[2.0.0,) - org.gwtproject:gwt-servlet:[2.10.0,) + telemetry: + - when: default + spans: + - span_kind: SERVER + attributes: + - name: rpc.method + type: STRING + - name: rpc.service + type: STRING + - name: rpc.system + type: STRING hibernate: - name: hibernate-3.3 source_path: instrumentation/hibernate/hibernate-3.3 diff --git a/instrumentation-docs/collect.sh b/instrumentation-docs/collect.sh index 130aaff2d908..3f71aeec1a3e 100755 --- a/instrumentation-docs/collect.sh +++ b/instrumentation-docs/collect.sh @@ -154,17 +154,17 @@ main() { run_gradle_tasks "${gradle_tasks[@]}" # Setup colima if needed - setup_colima - - # Process colima-specific instrumentations - echo "Processing colima instrumentations..." - gradle_tasks=() - while IFS= read -r line; do - gradle_tasks+=("$line") - done < <(process_descriptors "${COLIMA_INSTRUMENTATIONS[@]}") - run_gradle_tasks "${gradle_tasks[@]}" - - colima stop +# setup_colima +# +# # Process colima-specific instrumentations +# echo "Processing colima instrumentations..." +# gradle_tasks=() +# while IFS= read -r line; do +# gradle_tasks+=("$line") +# done < <(process_descriptors "${COLIMA_INSTRUMENTATIONS[@]}") +# run_gradle_tasks "${gradle_tasks[@]}" +# +# colima stop # uncomment the next line to remove all .telemetry directories #find_and_remove_all_telemetry diff --git a/instrumentation-docs/instrumentations.sh b/instrumentation-docs/instrumentations.sh index 9b207a7ea5b4..2361d800ce2a 100755 --- a/instrumentation-docs/instrumentations.sh +++ b/instrumentation-docs/instrumentations.sh @@ -7,132 +7,132 @@ set -euo pipefail # shellcheck disable=SC2034 readonly INSTRUMENTATIONS=( # : : [ gradle-task-suffix ] - "activej-http-6.0:javaagent:test" - "akka:akka-http-10.0:javaagent:test" - "armeria:armeria-grpc-1.14:javaagent:test" - "apache-httpasyncclient-4.1:javaagent:test" - "alibaba-druid-1.0:javaagent:test" - "alibaba-druid-1.0:javaagent:testStableSemconv" - "apache-dbcp-2.0:javaagent:test" - "apache-dbcp-2.0:javaagent:testStableSemconv" - "apache-httpclient:apache-httpclient-2.0:javaagent:test" - "apache-httpclient:apache-httpclient-4.0:javaagent:test" - "apache-httpclient:apache-httpclient-4.3:library:test" - "apache-httpclient:apache-httpclient-5.0:javaagent:test" - "apache-dubbo-2.7:javaagent:testDubbo" - "c3p0-0.9:javaagent:test" - "c3p0-0.9:javaagent:testStableSemconv" - "clickhouse-client-0.5:javaagent:test" - "clickhouse-client-0.5:javaagent:testStableSemconv" - "aws-sdk:aws-sdk-1.11:javaagent:test" - "google-http-client-1.19:javaagent:test" - "http-url-connection:javaagent:test" - "java-http-client:javaagent:test" - "jetty-httpclient:jetty-httpclient-9.2:javaagent:test" - "jetty-httpclient:jetty-httpclient-12.0:javaagent:test" - "jodd-http-4.2:javaagent:test" - "netty:netty-3.8:javaagent:test" - "netty:netty-4.0:javaagent:test" - "netty:netty-4.1:javaagent:test" - "okhttp:okhttp-2.2:javaagent:test" - "okhttp:okhttp-3.0:javaagent:test" - "pekko:pekko-http-1.0:javaagent:test" - "play:play-ws:play-ws-1.0:javaagent:test" - "play:play-ws:play-ws-2.0:javaagent:test" - "play:play-ws:play-ws-2.1:javaagent:test" - "reactor:reactor-netty:reactor-netty-0.9:javaagent:test" - "reactor:reactor-netty:reactor-netty-1.0:javaagent:test" - "spring:spring-webflux:spring-webflux-5.0:javaagent:test" - "vertx:vertx-http-client:vertx-http-client-3.0:javaagent:test" - "vertx:vertx-http-client:vertx-http-client-4.0:javaagent:test" - "vertx:vertx-http-client:vertx-http-client-5.0:javaagent:test" - "vertx:vertx-redis-client-4.0:javaagent:test" - "vertx:vertx-redis-client-4.0:javaagent:testStableSemconv" - "vertx:vertx-sql-client:vertx-sql-client-4.0:javaagent:test" - "vertx:vertx-sql-client:vertx-sql-client-4.0:javaagent:testStableSemconv" - "vertx:vertx-sql-client:vertx-sql-client-5.0:javaagent:test" - "vertx:vertx-sql-client:vertx-sql-client-5.0:javaagent:testStableSemconv" - "aws-sdk:aws-sdk-1.11:javaagent:testStableSemconv" - "aws-sdk:aws-sdk-2.2:javaagent:test" - "aws-sdk:aws-sdk-2.2:javaagent:testStableSemconv" - "aws-sdk:aws-sdk-2.2:javaagent:testBedrockRuntime" - "hikaricp-3.0:javaagent:test" - "hikaricp-3.0:javaagent:testStableSemconv" - "tomcat:tomcat-jdbc:javaagent:test" - "tomcat:tomcat-jdbc:javaagent:testStableSemconv" - "oshi:javaagent:test" - "oshi:javaagent:testExperimental" - "vibur-dbcp-11.0:javaagent:test" - "vibur-dbcp-11.0:javaagent:testStableSemconv" - "elasticsearch:elasticsearch-api-client-7.16:javaagent:test" - "elasticsearch:elasticsearch-api-client-7.16:javaagent:testStableSemconv" - "elasticsearch:elasticsearch-rest-7.0:javaagent:test" - "elasticsearch:elasticsearch-rest-7.0:javaagent:testStableSemconv" - "elasticsearch:elasticsearch-transport-5.0:javaagent:test" - "elasticsearch:elasticsearch-transport-5.0:javaagent:testStableSemconv" - "elasticsearch:elasticsearch-transport-5.0:javaagent:testExperimental" - "elasticsearch:elasticsearch-transport-5.3:javaagent:test" - "elasticsearch:elasticsearch-transport-5.3:javaagent:testStableSemconv" - "elasticsearch:elasticsearch-transport-5.3:javaagent:testExperimental" - "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6Test" - "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6TestStableSemconv" - "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6TestExperimental" - "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65Test" - "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65TestStableSemconv" - "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65TestExperimental" - "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7Test" - "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestStableSemconv" - "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestExperimental" - "apache-httpclient:apache-httpclient-5.2:library:test" - "armeria:armeria-1.3:javaagent:test" - "async-http-client:async-http-client-1.9:javaagent:test" - "async-http-client:async-http-client-2.0:javaagent:test" - "apache-dubbo-2.7:javaagent:testDubbo" - "finagle-http-23.11:javaagent:test" - "finatra-2.9:javaagent:test" - "spring:spring-batch-3.0:javaagent:test" - "spring:spring-data:spring-data-1.8:javaagent:test" - "spring:spring-integration-4.1:javaagent:test" - "spring:spring-integration-4.1:javaagent:testWithRabbitInstrumentation" - "spring:spring-integration-4.1:javaagent:testWithProducerInstrumentation" - "spring:spring-jms:spring-jms-2.0:javaagent:test" - "spring:spring-kafka-2.7:javaagent:test" - "spring:spring-kafka-2.7:javaagent:testNoReceiveTelemetry" - "spring:spring-pulsar-1.0:javaagent:test" - "spring:spring-rabbit-1.0:javaagent:test" - "spring:spring-rmi-4.0:javaagent:test" - "spring:spring-scheduling-3.1:javaagent:test" - "spring:spring-scheduling-3.1:javaagent:testExperimental" - "spring:spring-web:spring-web-3.1:library:test" - "spring:spring-web:spring-web-6.0:javaagent:test" - "spring:spring-webflux:spring-webflux-5.0:javaagent:test" - "spring:spring-webflux:spring-webflux-5.3:library:test" - "spring:spring-webmvc:spring-webmvc-3.1:javaagent:test" - "spring:spring-webmvc:spring-webmvc-3.1:javaagent:testExperimental" - "spring:spring-webmvc:spring-webmvc-5.3:library:test" - "spring:spring-webmvc:spring-webmvc-6.0:javaagent:test" - "spring:spring-webmvc:spring-webmvc-3.1:javaagent:testExperimental" - "spring:spring-webmvc:spring-webmvc-6.0:javaagent:test" - "spring:spring-webmvc:spring-webmvc-6.0:javaagent:testExperimental" - "openai:openai-java-1.1:javaagent:test" - "aws-lambda:aws-lambda-core-1.0:javaagent:test" - "aws-lambda:aws-lambda-events-2.2:javaagent:test" +# "activej-http-6.0:javaagent:test" +# "akka:akka-http-10.0:javaagent:test" +# "armeria:armeria-grpc-1.14:javaagent:test" +# "apache-httpasyncclient-4.1:javaagent:test" +# "alibaba-druid-1.0:javaagent:test" +# "alibaba-druid-1.0:javaagent:testStableSemconv" +# "apache-dbcp-2.0:javaagent:test" +# "apache-dbcp-2.0:javaagent:testStableSemconv" +# "apache-httpclient:apache-httpclient-2.0:javaagent:test" +# "apache-httpclient:apache-httpclient-4.0:javaagent:test" +# "apache-httpclient:apache-httpclient-4.3:library:test" +# "apache-httpclient:apache-httpclient-5.0:javaagent:test" +# "apache-dubbo-2.7:javaagent:testDubbo" +# "c3p0-0.9:javaagent:test" +# "c3p0-0.9:javaagent:testStableSemconv" +# "clickhouse-client-0.5:javaagent:test" +# "clickhouse-client-0.5:javaagent:testStableSemconv" +# "aws-sdk:aws-sdk-1.11:javaagent:test" +# "google-http-client-1.19:javaagent:test" +# "http-url-connection:javaagent:test" +# "java-http-client:javaagent:test" +# "jetty-httpclient:jetty-httpclient-9.2:javaagent:test" +# "jetty-httpclient:jetty-httpclient-12.0:javaagent:test" +# "jodd-http-4.2:javaagent:test" +# "netty:netty-3.8:javaagent:test" +# "netty:netty-4.0:javaagent:test" +# "netty:netty-4.1:javaagent:test" +# "okhttp:okhttp-2.2:javaagent:test" +# "okhttp:okhttp-3.0:javaagent:test" +# "pekko:pekko-http-1.0:javaagent:test" +# "play:play-ws:play-ws-1.0:javaagent:test" +# "play:play-ws:play-ws-2.0:javaagent:test" +# "play:play-ws:play-ws-2.1:javaagent:test" +# "reactor:reactor-netty:reactor-netty-0.9:javaagent:test" +# "reactor:reactor-netty:reactor-netty-1.0:javaagent:test" +# "spring:spring-webflux:spring-webflux-5.0:javaagent:test" +# "vertx:vertx-http-client:vertx-http-client-3.0:javaagent:test" +# "vertx:vertx-http-client:vertx-http-client-4.0:javaagent:test" +# "vertx:vertx-http-client:vertx-http-client-5.0:javaagent:test" +# "vertx:vertx-redis-client-4.0:javaagent:test" +# "vertx:vertx-redis-client-4.0:javaagent:testStableSemconv" +# "vertx:vertx-sql-client:vertx-sql-client-4.0:javaagent:test" +# "vertx:vertx-sql-client:vertx-sql-client-4.0:javaagent:testStableSemconv" +# "vertx:vertx-sql-client:vertx-sql-client-5.0:javaagent:test" +# "vertx:vertx-sql-client:vertx-sql-client-5.0:javaagent:testStableSemconv" +# "aws-sdk:aws-sdk-1.11:javaagent:testStableSemconv" +# "aws-sdk:aws-sdk-2.2:javaagent:test" +# "aws-sdk:aws-sdk-2.2:javaagent:testStableSemconv" +# "aws-sdk:aws-sdk-2.2:javaagent:testBedrockRuntime" +# "hikaricp-3.0:javaagent:test" +# "hikaricp-3.0:javaagent:testStableSemconv" +# "tomcat:tomcat-jdbc:javaagent:test" +# "tomcat:tomcat-jdbc:javaagent:testStableSemconv" +# "oshi:javaagent:test" +# "oshi:javaagent:testExperimental" +# "vibur-dbcp-11.0:javaagent:test" +# "vibur-dbcp-11.0:javaagent:testStableSemconv" +# "elasticsearch:elasticsearch-api-client-7.16:javaagent:test" +# "elasticsearch:elasticsearch-api-client-7.16:javaagent:testStableSemconv" +# "elasticsearch:elasticsearch-rest-7.0:javaagent:test" +# "elasticsearch:elasticsearch-rest-7.0:javaagent:testStableSemconv" +# "elasticsearch:elasticsearch-transport-5.0:javaagent:test" +# "elasticsearch:elasticsearch-transport-5.0:javaagent:testStableSemconv" +# "elasticsearch:elasticsearch-transport-5.0:javaagent:testExperimental" +# "elasticsearch:elasticsearch-transport-5.3:javaagent:test" +# "elasticsearch:elasticsearch-transport-5.3:javaagent:testStableSemconv" +# "elasticsearch:elasticsearch-transport-5.3:javaagent:testExperimental" +# "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6Test" +# "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6TestStableSemconv" +# "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch6TestExperimental" +# "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65Test" +# "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65TestStableSemconv" +# "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch65TestExperimental" +# "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7Test" +# "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestStableSemconv" +# "elasticsearch:elasticsearch-transport-6.0:javaagent:elasticsearch7TestExperimental" +# "apache-httpclient:apache-httpclient-5.2:library:test" +# "armeria:armeria-1.3:javaagent:test" +# "async-http-client:async-http-client-1.9:javaagent:test" +# "async-http-client:async-http-client-2.0:javaagent:test" +# "apache-dubbo-2.7:javaagent:testDubbo" +# "finagle-http-23.11:javaagent:test" +# "finatra-2.9:javaagent:test" +# "spring:spring-batch-3.0:javaagent:test" +# "spring:spring-data:spring-data-1.8:javaagent:test" +# "spring:spring-integration-4.1:javaagent:test" +# "spring:spring-integration-4.1:javaagent:testWithRabbitInstrumentation" +# "spring:spring-integration-4.1:javaagent:testWithProducerInstrumentation" +# "spring:spring-jms:spring-jms-2.0:javaagent:test" +# "spring:spring-kafka-2.7:javaagent:test" +# "spring:spring-kafka-2.7:javaagent:testNoReceiveTelemetry" +# "spring:spring-pulsar-1.0:javaagent:test" +# "spring:spring-rabbit-1.0:javaagent:test" +# "spring:spring-rmi-4.0:javaagent:test" +# "spring:spring-scheduling-3.1:javaagent:test" +# "spring:spring-scheduling-3.1:javaagent:testExperimental" +# "spring:spring-web:spring-web-3.1:library:test" +# "spring:spring-web:spring-web-6.0:javaagent:test" +# "spring:spring-webflux:spring-webflux-5.0:javaagent:test" +# "spring:spring-webflux:spring-webflux-5.3:library:test" +# "spring:spring-webmvc:spring-webmvc-3.1:javaagent:test" +# "spring:spring-webmvc:spring-webmvc-3.1:javaagent:testExperimental" +# "spring:spring-webmvc:spring-webmvc-5.3:library:test" +# "spring:spring-webmvc:spring-webmvc-6.0:javaagent:test" +# "spring:spring-webmvc:spring-webmvc-3.1:javaagent:testExperimental" +# "spring:spring-webmvc:spring-webmvc-6.0:javaagent:test" +# "spring:spring-webmvc:spring-webmvc-6.0:javaagent:testExperimental" +# "openai:openai-java-1.1:javaagent:test" +# "aws-lambda:aws-lambda-core-1.0:javaagent:test" +# "aws-lambda:aws-lambda-events-2.2:javaagent:test" "aws-lambda:aws-lambda-events-3.11:library:test" - "cassandra:cassandra-3.0:javaagent:test" - "cassandra:cassandra-3.0:javaagent:testStableSemconv" - "cassandra:cassandra-4.0:javaagent:test" - "cassandra:cassandra-4.0:javaagent:testStableSemconv" - "cassandra:cassandra-4.4:javaagent:test" - "cassandra:cassandra-4.4:javaagent:testStableSemconv" - "camel-2.20:javaagent:test" - "camel-2.20:javaagent:testStableSemconv" - "camel-2.20:javaagent:testExperimental" - "couchbase:couchbase-2.0:javaagent:test" - "couchbase:couchbase-2.0:javaagent:testStableSemconv" - "couchbase:couchbase-2.6:javaagent:test" - "couchbase:couchbase-2.6:javaagent:testStableSemconv" - "couchbase:couchbase-2.6:javaagent:testExperimental" - "dropwizard:dropwizard-views-0.7:javaagent:test" +# "cassandra:cassandra-3.0:javaagent:test" +# "cassandra:cassandra-3.0:javaagent:testStableSemconv" +# "cassandra:cassandra-4.0:javaagent:test" +# "cassandra:cassandra-4.0:javaagent:testStableSemconv" +# "cassandra:cassandra-4.4:javaagent:test" +# "cassandra:cassandra-4.4:javaagent:testStableSemconv" +# "camel-2.20:javaagent:test" +# "camel-2.20:javaagent:testStableSemconv" +# "camel-2.20:javaagent:testExperimental" +# "couchbase:couchbase-2.0:javaagent:test" +# "couchbase:couchbase-2.0:javaagent:testStableSemconv" +# "couchbase:couchbase-2.6:javaagent:test" +# "couchbase:couchbase-2.6:javaagent:testStableSemconv" +# "couchbase:couchbase-2.6:javaagent:testExperimental" +# "dropwizard:dropwizard-views-0.7:javaagent:test" ) # Some instrumentation test suites don't run ARM, so we use colima to run them in an x86_64 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 bd5ba34b9aec..1922bcb95a93 100644 --- a/instrumentation/aws-lambda/aws-lambda-core-1.0/metadata.yaml +++ b/instrumentation/aws-lambda/aws-lambda-core-1.0/metadata.yaml @@ -4,6 +4,10 @@ description: > 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` + env property to your lambda handler method in following format `package.ClassName::methodName` and use one of wrappers + as your lambda `Handler`. configurations: - name: otel.instrumentation.aws-lambda.flush-timeout type: int From a8da39ee1b0289e95a4c06d857c1e650d7cde212 Mon Sep 17 00:00:00 2001 From: Jay DeLuca Date: Thu, 28 Aug 2025 13:30:10 -0400 Subject: [PATCH 4/4] pr review updates --- docs/instrumentation-list.yaml | 6 +++--- .../aws-lambda/aws-lambda-core-1.0/metadata.yaml | 4 ++-- .../aws-lambda/aws-lambda-events-2.2/metadata.yaml | 7 +++---- .../aws-lambda/aws-lambda-events-3.11/metadata.yaml | 4 ++-- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/docs/instrumentation-list.yaml b/docs/instrumentation-list.yaml index c838e8a03012..54f3fdb3a714 100644 --- a/docs/instrumentation-list.yaml +++ b/docs/instrumentation-list.yaml @@ -923,7 +923,7 @@ libraries: - name: aws-lambda-core-1.0 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` env property to your lambda handler method in following format `package.ClassName::methodName` and use one of wrappers as your lambda `Handler`. + 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`. source_path: instrumentation/aws-lambda/aws-lambda-core-1.0 scope: name: io.opentelemetry.aws-lambda-core-1.0 @@ -946,7 +946,7 @@ libraries: type: STRING - 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 lightweight `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including standard and custom event types. + 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. source_path: instrumentation/aws-lambda/aws-lambda-events-2.2 scope: name: io.opentelemetry.aws-lambda-events-2.2 @@ -991,7 +991,7 @@ libraries: type: STRING - name: aws-lambda-events-3.11 description: | - This instrumentation builds on top of the lightweight `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including standard and custom event types. + 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. source_path: instrumentation/aws-lambda/aws-lambda-events-3.11 scope: name: io.opentelemetry.aws-lambda-events-3.11 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 1922bcb95a93..97e231491514 100644 --- a/instrumentation/aws-lambda/aws-lambda-core-1.0/metadata.yaml +++ b/instrumentation/aws-lambda/aws-lambda-core-1.0/metadata.yaml @@ -6,8 +6,8 @@ description: > application on Lambda. For custom wrappers when using library instrumentation, you can configure the `OTEL_INSTRUMENTATION_AWS_LAMBDA_HANDLER` - env property to your lambda handler method in following format `package.ClassName::methodName` and use one of wrappers - as your 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`. 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 31dcf7118ef3..9217c340114c 100644 --- a/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml +++ b/instrumentation/aws-lambda/aws-lambda-events-2.2/metadata.yaml @@ -1,8 +1,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 lightweight - `aws-lambda-core-1.0` instrumentation, expanding support to cover the Lambda library, including - standard and custom event types. + 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. 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 57c4268c3f74..3cf6a3e821d0 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,6 @@ description: > - This instrumentation builds on top of the lightweight `aws-lambda-core-1.0` instrumentation, - expanding support to cover the Lambda library, including standard and custom event types. + 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. configurations: - name: otel.instrumentation.aws-lambda.flush-timeout type: int