Introduce instrumentation classifications to metadata (#13672)
This commit is contained in:
parent
377781c93f
commit
6521fc885d
|
@ -2,8 +2,8 @@
|
|||
# The structure and contents are a work in progress and subject to change.
|
||||
# For more information see: https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/13468
|
||||
|
||||
activej:
|
||||
instrumentations:
|
||||
libraries:
|
||||
activej:
|
||||
- name: activej-http-6.0
|
||||
source_path: instrumentation/activej-http-6.0
|
||||
minimum_java_version: 17
|
||||
|
@ -12,8 +12,7 @@ activej:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- io.activej:activej-http:[6.0,)
|
||||
akka:
|
||||
instrumentations:
|
||||
akka:
|
||||
- name: akka-http-10.0
|
||||
source_path: instrumentation/akka/akka-http-10.0
|
||||
scope:
|
||||
|
@ -41,8 +40,7 @@ akka:
|
|||
- com.typesafe.akka:akka-actor_2.11:[2.3,)
|
||||
- com.typesafe.akka:akka-actor_2.12:[2.3,)
|
||||
- com.typesafe.akka:akka-actor_2.13:[2.3,)
|
||||
alibaba:
|
||||
instrumentations:
|
||||
alibaba:
|
||||
- name: alibaba-druid-1.0
|
||||
source_path: instrumentation/alibaba-druid-1.0
|
||||
scope:
|
||||
|
@ -52,8 +50,7 @@ alibaba:
|
|||
- com.alibaba:druid:(,)
|
||||
library:
|
||||
- com.alibaba:druid:1.0.0
|
||||
apache:
|
||||
instrumentations:
|
||||
apache:
|
||||
- name: apache-shenyu-2.4
|
||||
source_path: instrumentation/apache-shenyu-2.4
|
||||
scope:
|
||||
|
@ -120,8 +117,7 @@ apache:
|
|||
- org.apache.commons:commons-dbcp2:[2,)
|
||||
library:
|
||||
- org.apache.commons:commons-dbcp2:2.0
|
||||
armeria:
|
||||
instrumentations:
|
||||
armeria:
|
||||
- name: armeria-1.3
|
||||
source_path: instrumentation/armeria/armeria-1.3
|
||||
scope:
|
||||
|
@ -138,8 +134,7 @@ armeria:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.linecorp.armeria:armeria-grpc:[1.14.0,)
|
||||
async:
|
||||
instrumentations:
|
||||
async:
|
||||
- name: async-http-client-1.9
|
||||
source_path: instrumentation/async-http-client/async-http-client-1.9
|
||||
scope:
|
||||
|
@ -154,8 +149,7 @@ async:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.asynchttpclient:async-http-client:[2.0.0,)
|
||||
aws:
|
||||
instrumentations:
|
||||
aws:
|
||||
- name: aws-lambda-events-2.2
|
||||
source_path: instrumentation/aws-lambda/aws-lambda-events-2.2
|
||||
scope:
|
||||
|
@ -203,8 +197,7 @@ aws:
|
|||
- software.amazon.awssdk:sqs:2.2.0
|
||||
- software.amazon.awssdk:sns:2.2.0
|
||||
- software.amazon.awssdk:lambda:2.2.0
|
||||
azure:
|
||||
instrumentations:
|
||||
azure:
|
||||
- name: azure-core-1.36
|
||||
source_path: instrumentation/azure-core/azure-core-1.36
|
||||
scope:
|
||||
|
@ -226,8 +219,7 @@ azure:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.azure:azure-core:[1.14.0,1.19.0)
|
||||
c3p0:
|
||||
instrumentations:
|
||||
c3p0:
|
||||
- name: c3p0-0.9
|
||||
source_path: instrumentation/c3p0-0.9
|
||||
scope:
|
||||
|
@ -237,8 +229,7 @@ c3p0:
|
|||
- com.mchange:c3p0:(,)
|
||||
library:
|
||||
- com.mchange:c3p0:0.9.2
|
||||
camel:
|
||||
instrumentations:
|
||||
camel:
|
||||
- name: camel-2.20
|
||||
source_path: instrumentation/camel-2.20
|
||||
scope:
|
||||
|
@ -246,8 +237,7 @@ camel:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.camel:camel-core:[2.19,3)
|
||||
cassandra:
|
||||
instrumentations:
|
||||
cassandra:
|
||||
- name: cassandra-4.0
|
||||
source_path: instrumentation/cassandra/cassandra-4.0
|
||||
scope:
|
||||
|
@ -271,8 +261,7 @@ cassandra:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.datastax.cassandra:cassandra-driver-core:[3.0,4.0)
|
||||
clickhouse:
|
||||
instrumentations:
|
||||
clickhouse:
|
||||
- name: clickhouse-client-0.5
|
||||
description: Instruments the V1 ClickHouseClient, providing database client spans
|
||||
and metrics.
|
||||
|
@ -282,8 +271,7 @@ clickhouse:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.clickhouse.client:clickhouse-client:[0.5.0,)
|
||||
couchbase:
|
||||
instrumentations:
|
||||
couchbase:
|
||||
- name: couchbase-3.1.6
|
||||
source_path: instrumentation/couchbase/couchbase-3.1.6
|
||||
scope:
|
||||
|
@ -319,8 +307,7 @@ couchbase:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.couchbase.client:java-client:[3.1,3.1.6)
|
||||
dropwizard:
|
||||
instrumentations:
|
||||
dropwizard:
|
||||
- name: dropwizard-metrics-4.0
|
||||
disabled_by_default: true
|
||||
source_path: instrumentation/dropwizard/dropwizard-metrics-4.0
|
||||
|
@ -336,8 +323,7 @@ dropwizard:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- io.dropwizard:dropwizard-views:(,3.0.0)
|
||||
elasticsearch:
|
||||
instrumentations:
|
||||
elasticsearch:
|
||||
- name: elasticsearch-rest-6.4
|
||||
source_path: instrumentation/elasticsearch/elasticsearch-rest-6.4
|
||||
scope:
|
||||
|
@ -394,8 +380,7 @@ elasticsearch:
|
|||
javaagent:
|
||||
- org.elasticsearch.client:transport:[5.3.0,6.0.0)
|
||||
- org.elasticsearch:elasticsearch:[5.3.0,6.0.0)
|
||||
executors:
|
||||
instrumentations:
|
||||
executors:
|
||||
- name: executors
|
||||
source_path: instrumentation/executors
|
||||
scope:
|
||||
|
@ -403,8 +388,7 @@ executors:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- Java 8+
|
||||
finagle:
|
||||
instrumentations:
|
||||
finagle:
|
||||
- name: finagle-http-23.11
|
||||
source_path: instrumentation/finagle-http-23.11
|
||||
scope:
|
||||
|
@ -413,8 +397,7 @@ finagle:
|
|||
javaagent:
|
||||
- com.twitter:finagle-http_2.13:[23.11.0,]
|
||||
- com.twitter:finagle-http_2.12:[23.11.0,]
|
||||
finatra:
|
||||
instrumentations:
|
||||
finatra:
|
||||
- name: finatra-2.9
|
||||
source_path: instrumentation/finatra-2.9
|
||||
scope:
|
||||
|
@ -423,8 +406,7 @@ finatra:
|
|||
javaagent:
|
||||
- com.twitter:finatra-http_2.11:[2.9.0,]
|
||||
- com.twitter:finatra-http_2.12:[2.9.0,]
|
||||
geode:
|
||||
instrumentations:
|
||||
geode:
|
||||
- name: geode-1.4
|
||||
source_path: instrumentation/geode-1.4
|
||||
scope:
|
||||
|
@ -432,8 +414,7 @@ geode:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.geode:geode-core:[1.4.0,)
|
||||
google:
|
||||
instrumentations:
|
||||
google:
|
||||
- name: google-http-client-1.19
|
||||
source_path: instrumentation/google-http-client-1.19
|
||||
scope:
|
||||
|
@ -441,8 +422,7 @@ google:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.google.http-client:google-http-client:[1.19.0,)
|
||||
grails:
|
||||
instrumentations:
|
||||
grails:
|
||||
- name: grails-3.0
|
||||
source_path: instrumentation/grails-3.0
|
||||
scope:
|
||||
|
@ -450,8 +430,7 @@ grails:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.grails:grails-web-url-mappings:[3.0,)
|
||||
graphql:
|
||||
instrumentations:
|
||||
graphql:
|
||||
- name: graphql-java-12.0
|
||||
source_path: instrumentation/graphql-java/graphql-java-12.0
|
||||
scope:
|
||||
|
@ -471,8 +450,7 @@ graphql:
|
|||
- com.graphql-java:graphql-java:[20,)
|
||||
library:
|
||||
- com.graphql-java:graphql-java:20.0
|
||||
grizzly:
|
||||
instrumentations:
|
||||
grizzly:
|
||||
- name: grizzly-2.3
|
||||
source_path: instrumentation/grizzly-2.3
|
||||
scope:
|
||||
|
@ -480,8 +458,7 @@ grizzly:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.glassfish.grizzly:grizzly-http:[2.3,)
|
||||
grpc:
|
||||
instrumentations:
|
||||
grpc:
|
||||
- name: grpc-1.6
|
||||
source_path: instrumentation/grpc-1.6
|
||||
scope:
|
||||
|
@ -491,8 +468,7 @@ grpc:
|
|||
- io.grpc:grpc-core:[1.6.0,)
|
||||
library:
|
||||
- io.grpc:grpc-core:1.6.0
|
||||
guava:
|
||||
instrumentations:
|
||||
guava:
|
||||
- name: guava-10.0
|
||||
source_path: instrumentation/guava-10.0
|
||||
scope:
|
||||
|
@ -502,8 +478,7 @@ guava:
|
|||
- com.google.guava:guava:[10.0,]
|
||||
library:
|
||||
- com.google.guava:guava:10.0
|
||||
gwt:
|
||||
instrumentations:
|
||||
gwt:
|
||||
- name: gwt-2.0
|
||||
source_path: instrumentation/gwt-2.0
|
||||
scope:
|
||||
|
@ -512,8 +487,7 @@ gwt:
|
|||
javaagent:
|
||||
- com.google.gwt:gwt-servlet:[2.0.0,)
|
||||
- org.gwtproject:gwt-servlet:[2.10.0,)
|
||||
hibernate:
|
||||
instrumentations:
|
||||
hibernate:
|
||||
- name: hibernate-4.0
|
||||
source_path: instrumentation/hibernate/hibernate-4.0
|
||||
scope:
|
||||
|
@ -550,8 +524,7 @@ hibernate:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.hibernate.reactive:hibernate-reactive-core:(,)
|
||||
hikaricp:
|
||||
instrumentations:
|
||||
hikaricp:
|
||||
- name: hikaricp-3.0
|
||||
source_path: instrumentation/hikaricp-3.0
|
||||
scope:
|
||||
|
@ -561,8 +534,7 @@ hikaricp:
|
|||
- com.zaxxer:HikariCP:[3.0.0,)
|
||||
library:
|
||||
- com.zaxxer:HikariCP:3.0.0
|
||||
http:
|
||||
instrumentations:
|
||||
http:
|
||||
- name: http-url-connection
|
||||
source_path: instrumentation/http-url-connection
|
||||
scope:
|
||||
|
@ -570,8 +542,7 @@ http:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- Java 8+
|
||||
hystrix:
|
||||
instrumentations:
|
||||
hystrix:
|
||||
- name: hystrix-1.4
|
||||
source_path: instrumentation/hystrix-1.4
|
||||
scope:
|
||||
|
@ -579,8 +550,7 @@ hystrix:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.netflix.hystrix:hystrix-core:[1.4.0,)
|
||||
influxdb:
|
||||
instrumentations:
|
||||
influxdb:
|
||||
- name: influxdb-2.4
|
||||
source_path: instrumentation/influxdb-2.4
|
||||
scope:
|
||||
|
@ -588,8 +558,7 @@ influxdb:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.influxdb:influxdb-java:[2.4,)
|
||||
java:
|
||||
instrumentations:
|
||||
java:
|
||||
- name: java-http-server
|
||||
source_path: instrumentation/java-http-server
|
||||
scope:
|
||||
|
@ -605,8 +574,7 @@ java:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- Java 11+
|
||||
javalin:
|
||||
instrumentations:
|
||||
javalin:
|
||||
- name: javalin-5.0
|
||||
source_path: instrumentation/javalin-5.0
|
||||
minimum_java_version: 11
|
||||
|
@ -615,8 +583,7 @@ javalin:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- io.javalin:javalin:[5.0.0,)
|
||||
jaxrs:
|
||||
instrumentations:
|
||||
jaxrs:
|
||||
- name: jaxrs-2.0-cxf-3.2
|
||||
source_path: instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-cxf-3.2
|
||||
scope:
|
||||
|
@ -692,8 +659,7 @@ jaxrs:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- javax.ws.rs:jsr311-api:[0.5,)
|
||||
jaxws:
|
||||
instrumentations:
|
||||
jaxws:
|
||||
- name: jaxws-jws-api-1.1
|
||||
disabled_by_default: true
|
||||
source_path: instrumentation/jaxws/jaxws-jws-api-1.1
|
||||
|
@ -740,8 +706,7 @@ jaxws:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.sun.xml.ws:jaxws-rt:[2.2.0.1,)
|
||||
jboss:
|
||||
instrumentations:
|
||||
jboss:
|
||||
- name: jboss-logmanager-appender-1.1
|
||||
source_path: instrumentation/jboss-logmanager/jboss-logmanager-appender-1.1
|
||||
scope:
|
||||
|
@ -756,8 +721,7 @@ jboss:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.jboss.logmanager:jboss-logmanager:[1.1.0.GA,)
|
||||
jdbc:
|
||||
instrumentations:
|
||||
jdbc:
|
||||
- name: jdbc
|
||||
disabled_by_default: true
|
||||
source_path: instrumentation/jdbc
|
||||
|
@ -766,8 +730,7 @@ jdbc:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- Java 8+
|
||||
jedis:
|
||||
instrumentations:
|
||||
jedis:
|
||||
- name: jedis-1.4
|
||||
source_path: instrumentation/jedis/jedis-1.4
|
||||
scope:
|
||||
|
@ -789,8 +752,7 @@ jedis:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- redis.clients:jedis:[3.0.0,4)
|
||||
jetty:
|
||||
instrumentations:
|
||||
jetty:
|
||||
- name: jetty-httpclient-12.0
|
||||
source_path: instrumentation/jetty-httpclient/jetty-httpclient-12.0
|
||||
minimum_java_version: 17
|
||||
|
@ -833,8 +795,7 @@ jetty:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.eclipse.jetty:jetty-server:[11, 12)
|
||||
jms:
|
||||
instrumentations:
|
||||
jms:
|
||||
- name: jms-3.0
|
||||
source_path: instrumentation/jms/jms-3.0
|
||||
minimum_java_version: 11
|
||||
|
@ -852,8 +813,7 @@ jms:
|
|||
- javax.jms:javax.jms-api:(,)
|
||||
- jakarta.jms:jakarta.jms-api:(,3)
|
||||
- javax.jms:jms-api:(,)
|
||||
jodd:
|
||||
instrumentations:
|
||||
jodd:
|
||||
- name: jodd-http-4.2
|
||||
source_path: instrumentation/jodd-http-4.2
|
||||
scope:
|
||||
|
@ -861,8 +821,7 @@ jodd:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.jodd:jodd-http:[4.2.0,)
|
||||
jsf:
|
||||
instrumentations:
|
||||
jsf:
|
||||
- name: jsf-myfaces-3.0
|
||||
source_path: instrumentation/jsf/jsf-myfaces-3.0
|
||||
minimum_java_version: 11
|
||||
|
@ -897,8 +856,7 @@ jsf:
|
|||
- com.sun.faces:jsf-impl:[2.0,2.1)
|
||||
- org.glassfish:javax.faces:[2.0.7,3)
|
||||
- javax.faces:jsf-impl:[1.2,2)
|
||||
jsp:
|
||||
instrumentations:
|
||||
jsp:
|
||||
- name: jsp-2.3
|
||||
source_path: instrumentation/jsp-2.3
|
||||
scope:
|
||||
|
@ -906,8 +864,7 @@ jsp:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.tomcat:tomcat-jasper:[7.0.19,10)
|
||||
kafka:
|
||||
instrumentations:
|
||||
kafka:
|
||||
- name: kafka-streams-0.11
|
||||
source_path: instrumentation/kafka/kafka-streams-0.11
|
||||
scope:
|
||||
|
@ -929,8 +886,7 @@ kafka:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.kafka:kafka-clients:[0.11.0.0,)
|
||||
kotlinx:
|
||||
instrumentations:
|
||||
kotlinx:
|
||||
- name: kotlinx-coroutines
|
||||
source_path: instrumentation/kotlinx-coroutines
|
||||
scope:
|
||||
|
@ -956,8 +912,7 @@ kotlinx:
|
|||
javaagent:
|
||||
- org.jetbrains.kotlinx:kotlinx-coroutines-core:[1.3.0,1.3.8)
|
||||
- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:[1.3.9,)
|
||||
ktor:
|
||||
instrumentations:
|
||||
ktor:
|
||||
- name: ktor-2.0
|
||||
source_path: instrumentation/ktor/ktor-2.0
|
||||
scope:
|
||||
|
@ -987,8 +942,7 @@ ktor:
|
|||
target_versions:
|
||||
library:
|
||||
- io.ktor:ktor-server-core:[1.0.0,1.+)
|
||||
kubernetes:
|
||||
instrumentations:
|
||||
kubernetes:
|
||||
- name: kubernetes-client-7.0
|
||||
source_path: instrumentation/kubernetes-client-7.0
|
||||
scope:
|
||||
|
@ -996,8 +950,7 @@ kubernetes:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- io.kubernetes:client-java-api:[7.0.0,)
|
||||
lettuce:
|
||||
instrumentations:
|
||||
lettuce:
|
||||
- name: lettuce-5.1
|
||||
source_path: instrumentation/lettuce/lettuce-5.1
|
||||
scope:
|
||||
|
@ -1021,8 +974,7 @@ lettuce:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- biz.paluch.redis:lettuce:[4.0.Final,)
|
||||
liberty:
|
||||
instrumentations:
|
||||
liberty:
|
||||
- name: liberty-dispatcher-20.0
|
||||
source_path: instrumentation/liberty/liberty-dispatcher-20.0
|
||||
scope:
|
||||
|
@ -1033,8 +985,7 @@ liberty:
|
|||
scope:
|
||||
name: io.opentelemetry.liberty-20.0
|
||||
target_versions: {}
|
||||
log4j:
|
||||
instrumentations:
|
||||
log4j:
|
||||
- name: log4j-context-data-2.7
|
||||
source_path: instrumentation/log4j/log4j-context-data/log4j-context-data-2.7
|
||||
scope:
|
||||
|
@ -1072,8 +1023,7 @@ log4j:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.logging.log4j:log4j-core:[2.17.0,)
|
||||
logback:
|
||||
instrumentations:
|
||||
logback:
|
||||
- name: logback-mdc-1.0
|
||||
source_path: instrumentation/logback/logback-mdc-1.0
|
||||
scope:
|
||||
|
@ -1095,8 +1045,7 @@ logback:
|
|||
- net.logstash.logback:logstash-logback-encoder:3.0
|
||||
- org.slf4j:slf4j-api:2.0.0
|
||||
- ch.qos.logback:logback-classic:1.3.0
|
||||
micrometer:
|
||||
instrumentations:
|
||||
micrometer:
|
||||
- name: micrometer-1.5
|
||||
disabled_by_default: true
|
||||
source_path: instrumentation/micrometer/micrometer-1.5
|
||||
|
@ -1107,8 +1056,7 @@ micrometer:
|
|||
- io.micrometer:micrometer-core:[1.5.0,)
|
||||
library:
|
||||
- io.micrometer:micrometer-core:1.5.0
|
||||
mongo:
|
||||
instrumentations:
|
||||
mongo:
|
||||
- name: mongo-4.0
|
||||
source_path: instrumentation/mongo/mongo-4.0
|
||||
scope:
|
||||
|
@ -1140,8 +1088,7 @@ mongo:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.mongodb:mongodb-driver-async:[3.3,)
|
||||
mybatis:
|
||||
instrumentations:
|
||||
mybatis:
|
||||
- name: mybatis-3.2
|
||||
disabled_by_default: true
|
||||
source_path: instrumentation/mybatis-3.2
|
||||
|
@ -1150,8 +1097,7 @@ mybatis:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.mybatis:mybatis:[3.2.0,)
|
||||
netty:
|
||||
instrumentations:
|
||||
netty:
|
||||
- name: netty-3.8
|
||||
source_path: instrumentation/netty/netty-3.8
|
||||
scope:
|
||||
|
@ -1177,8 +1123,7 @@ netty:
|
|||
- io.netty:netty-all:[4.1.0.Final,5.0.0)
|
||||
library:
|
||||
- io.netty:netty-codec-http:4.1.0.Final
|
||||
okhttp:
|
||||
instrumentations:
|
||||
okhttp:
|
||||
- name: okhttp-3.0
|
||||
source_path: instrumentation/okhttp/okhttp-3.0
|
||||
scope:
|
||||
|
@ -1195,8 +1140,7 @@ okhttp:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.squareup.okhttp:okhttp:[2.2,3)
|
||||
opensearch:
|
||||
instrumentations:
|
||||
opensearch:
|
||||
- name: opensearch-rest-1.0
|
||||
source_path: instrumentation/opensearch/opensearch-rest-1.0
|
||||
minimum_java_version: 11
|
||||
|
@ -1205,8 +1149,7 @@ opensearch:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.opensearch.client:opensearch-rest-client:[1.0,)
|
||||
oracle:
|
||||
instrumentations:
|
||||
oracle:
|
||||
- name: oracle-ucp-11.2
|
||||
source_path: instrumentation/oracle-ucp-11.2
|
||||
scope:
|
||||
|
@ -1217,8 +1160,7 @@ oracle:
|
|||
library:
|
||||
- com.oracle.database.jdbc:ucp:11.2.0.4
|
||||
- com.oracle.database.jdbc:ojdbc8:12.2.0.1
|
||||
oshi:
|
||||
instrumentations:
|
||||
oshi:
|
||||
- name: oshi
|
||||
source_path: instrumentation/oshi
|
||||
scope:
|
||||
|
@ -1228,15 +1170,13 @@ oshi:
|
|||
- com.github.oshi:oshi-core:[5.3.1,)
|
||||
library:
|
||||
- com.github.oshi:oshi-core:5.3.1
|
||||
payara:
|
||||
instrumentations:
|
||||
payara:
|
||||
- name: payara
|
||||
source_path: instrumentation/payara
|
||||
scope:
|
||||
name: io.opentelemetry.payara
|
||||
target_versions: {}
|
||||
pekko:
|
||||
instrumentations:
|
||||
pekko:
|
||||
- name: pekko-actor-1.0
|
||||
source_path: instrumentation/pekko/pekko-actor-1.0
|
||||
scope:
|
||||
|
@ -1258,8 +1198,7 @@ pekko:
|
|||
- org.apache.pekko:pekko-http_3:[1.0,)
|
||||
- com.softwaremill.sttp.tapir:tapir-pekko-http-server_2.13:[1.7,)
|
||||
- org.apache.pekko:pekko-http_2.13:[1.0,)
|
||||
play:
|
||||
instrumentations:
|
||||
play:
|
||||
- name: play-ws-1.0
|
||||
source_path: instrumentation/play/play-ws/play-ws-1.0
|
||||
scope:
|
||||
|
@ -1301,8 +1240,7 @@ play:
|
|||
javaagent:
|
||||
- com.typesafe.play:play-ahc-ws-standalone_2.13:[2.1.0,]
|
||||
- com.typesafe.play:play-ahc-ws-standalone_2.12:[2.1.0,]
|
||||
powerjob:
|
||||
instrumentations:
|
||||
powerjob:
|
||||
- name: powerjob-4.0
|
||||
source_path: instrumentation/powerjob-4.0
|
||||
scope:
|
||||
|
@ -1310,8 +1248,7 @@ powerjob:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- tech.powerjob:powerjob-worker:[4.0.0,)
|
||||
pulsar:
|
||||
instrumentations:
|
||||
pulsar:
|
||||
- name: pulsar-2.8
|
||||
source_path: instrumentation/pulsar/pulsar-2.8
|
||||
scope:
|
||||
|
@ -1319,8 +1256,7 @@ pulsar:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.pulsar:pulsar-client:[2.8.0,)
|
||||
quarkus:
|
||||
instrumentations:
|
||||
quarkus:
|
||||
- name: quarkus-resteasy-reactive
|
||||
source_path: instrumentation/quarkus-resteasy-reactive
|
||||
scope:
|
||||
|
@ -1328,8 +1264,7 @@ quarkus:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- io.quarkus:quarkus-resteasy-reactive:(,3.9.0)
|
||||
quartz:
|
||||
instrumentations:
|
||||
quartz:
|
||||
- name: quartz-2.0
|
||||
source_path: instrumentation/quartz-2.0
|
||||
scope:
|
||||
|
@ -1339,8 +1274,7 @@ quartz:
|
|||
- org.quartz-scheduler:quartz:[2.0.0,)
|
||||
library:
|
||||
- org.quartz-scheduler:quartz:2.0.0
|
||||
r2dbc:
|
||||
instrumentations:
|
||||
r2dbc:
|
||||
- name: r2dbc-1.0
|
||||
source_path: instrumentation/r2dbc-1.0
|
||||
scope:
|
||||
|
@ -1350,8 +1284,7 @@ r2dbc:
|
|||
- io.r2dbc:r2dbc-spi:[1.0.0.RELEASE,)
|
||||
library:
|
||||
- io.r2dbc:r2dbc-spi:1.0.0.RELEASE
|
||||
rabbitmq:
|
||||
instrumentations:
|
||||
rabbitmq:
|
||||
- name: rabbitmq-2.7
|
||||
source_path: instrumentation/rabbitmq-2.7
|
||||
scope:
|
||||
|
@ -1359,8 +1292,7 @@ rabbitmq:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.rabbitmq:amqp-client:[2.7.0,)
|
||||
ratpack:
|
||||
instrumentations:
|
||||
ratpack:
|
||||
- name: ratpack-1.4
|
||||
source_path: instrumentation/ratpack/ratpack-1.4
|
||||
scope:
|
||||
|
@ -1377,8 +1309,7 @@ ratpack:
|
|||
- io.ratpack:ratpack-core:[1.7.0,)
|
||||
library:
|
||||
- io.ratpack:ratpack-core:1.7.0
|
||||
reactor:
|
||||
instrumentations:
|
||||
reactor:
|
||||
- name: reactor-kafka-1.0
|
||||
source_path: instrumentation/reactor/reactor-kafka-1.0
|
||||
scope:
|
||||
|
@ -1415,8 +1346,7 @@ reactor:
|
|||
javaagent:
|
||||
- io.projectreactor.netty:reactor-netty-http:[1.0.0,)
|
||||
- io.projectreactor.netty:reactor-netty:[1.0.0,)
|
||||
rediscala:
|
||||
instrumentations:
|
||||
rediscala:
|
||||
- name: rediscala-1.8
|
||||
source_path: instrumentation/rediscala-1.8
|
||||
scope:
|
||||
|
@ -1430,8 +1360,7 @@ rediscala:
|
|||
- io.github.rediscala:rediscala_2.13:[1.10.0,)
|
||||
- com.github.etaty:rediscala_2.13:[1.9.0,)
|
||||
- com.github.Ma27:rediscala_2.12:[1.8.1,)
|
||||
redisson:
|
||||
instrumentations:
|
||||
redisson:
|
||||
- name: redisson-3.17
|
||||
source_path: instrumentation/redisson/redisson-3.17
|
||||
scope:
|
||||
|
@ -1446,15 +1375,13 @@ redisson:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.redisson:redisson:[3.0.0,3.17.0)
|
||||
resources:
|
||||
instrumentations:
|
||||
resources:
|
||||
- name: resources
|
||||
source_path: instrumentation/resources
|
||||
scope:
|
||||
name: io.opentelemetry.resources
|
||||
target_versions: {}
|
||||
restlet:
|
||||
instrumentations:
|
||||
restlet:
|
||||
- name: restlet-1.1
|
||||
source_path: instrumentation/restlet/restlet-1.1
|
||||
scope:
|
||||
|
@ -1474,8 +1401,7 @@ restlet:
|
|||
- org.restlet.jse:org.restlet:[2.0.0,)
|
||||
library:
|
||||
- org.restlet.jse:org.restlet:2.0.2
|
||||
rmi:
|
||||
instrumentations:
|
||||
rmi:
|
||||
- name: rmi
|
||||
source_path: instrumentation/rmi
|
||||
scope:
|
||||
|
@ -1483,8 +1409,7 @@ rmi:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- Java 8+
|
||||
rocketmq:
|
||||
instrumentations:
|
||||
rocketmq:
|
||||
- name: rocketmq-client-5.0
|
||||
source_path: instrumentation/rocketmq/rocketmq-client/rocketmq-client-5.0
|
||||
scope:
|
||||
|
@ -1501,8 +1426,7 @@ rocketmq:
|
|||
- org.apache.rocketmq:rocketmq-client:[4.0.0,)
|
||||
library:
|
||||
- org.apache.rocketmq:rocketmq-client:4.8.0
|
||||
runtime:
|
||||
instrumentations:
|
||||
runtime:
|
||||
- name: runtime-telemetry-java17
|
||||
source_path: instrumentation/runtime-telemetry/runtime-telemetry-java17
|
||||
minimum_java_version: 17
|
||||
|
@ -1514,8 +1438,7 @@ runtime:
|
|||
scope:
|
||||
name: io.opentelemetry.runtime-telemetry-java8
|
||||
target_versions: {}
|
||||
rxjava:
|
||||
instrumentations:
|
||||
rxjava:
|
||||
- name: rxjava-1.0
|
||||
source_path: instrumentation/rxjava/rxjava-1.0
|
||||
scope:
|
||||
|
@ -1550,8 +1473,7 @@ rxjava:
|
|||
- io.reactivex.rxjava3:rxjava:[3.0.0,3.1.0]
|
||||
library:
|
||||
- io.reactivex.rxjava3:rxjava:[3.0.12,3.1.0)
|
||||
scala:
|
||||
instrumentations:
|
||||
scala:
|
||||
- name: scala-fork-join-2.8
|
||||
source_path: instrumentation/scala-fork-join-2.8
|
||||
scope:
|
||||
|
@ -1559,8 +1481,7 @@ scala:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.scala-lang:scala-library:[2.8.0,2.12.0)
|
||||
servlet:
|
||||
instrumentations:
|
||||
servlet:
|
||||
- name: servlet-5.0
|
||||
source_path: instrumentation/servlet/servlet-5.0
|
||||
scope:
|
||||
|
@ -1582,8 +1503,7 @@ servlet:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- javax.servlet:javax.servlet-api:[3.0,)
|
||||
spark:
|
||||
instrumentations:
|
||||
spark:
|
||||
- name: spark-2.3
|
||||
source_path: instrumentation/spark-2.3
|
||||
scope:
|
||||
|
@ -1591,8 +1511,7 @@ spark:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.sparkjava:spark-core:[2.3,)
|
||||
spring:
|
||||
instrumentations:
|
||||
spring:
|
||||
- name: spring-rabbit-1.0
|
||||
source_path: instrumentation/spring/spring-rabbit-1.0
|
||||
scope:
|
||||
|
@ -1777,8 +1696,7 @@ spring:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.springframework:spring-web:[6.0.0,)
|
||||
spymemcached:
|
||||
instrumentations:
|
||||
spymemcached:
|
||||
- name: spymemcached-2.12
|
||||
source_path: instrumentation/spymemcached-2.12
|
||||
scope:
|
||||
|
@ -1786,8 +1704,7 @@ spymemcached:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- net.spy:spymemcached:[2.12.0,)
|
||||
struts:
|
||||
instrumentations:
|
||||
struts:
|
||||
- name: struts-2.3
|
||||
source_path: instrumentation/struts/struts-2.3
|
||||
scope:
|
||||
|
@ -1803,8 +1720,7 @@ struts:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.struts:struts2-core:[7.0.0,)
|
||||
tapestry:
|
||||
instrumentations:
|
||||
tapestry:
|
||||
- name: tapestry-5.4
|
||||
source_path: instrumentation/tapestry-5.4
|
||||
scope:
|
||||
|
@ -1812,8 +1728,7 @@ tapestry:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.tapestry:tapestry-core:[5.4.0,)
|
||||
tomcat:
|
||||
instrumentations:
|
||||
tomcat:
|
||||
- name: tomcat-10.0
|
||||
source_path: instrumentation/tomcat/tomcat-10.0
|
||||
minimum_java_version: 11
|
||||
|
@ -1836,8 +1751,7 @@ tomcat:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.tomcat:tomcat-jdbc:[8.5.0,)
|
||||
twilio:
|
||||
instrumentations:
|
||||
twilio:
|
||||
- name: twilio-6.6
|
||||
source_path: instrumentation/twilio-6.6
|
||||
scope:
|
||||
|
@ -1845,8 +1759,7 @@ twilio:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.twilio.sdk:twilio:(,8.0.0)
|
||||
undertow:
|
||||
instrumentations:
|
||||
undertow:
|
||||
- name: undertow-1.4
|
||||
source_path: instrumentation/undertow-1.4
|
||||
scope:
|
||||
|
@ -1854,8 +1767,7 @@ undertow:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- io.undertow:undertow-core:[1.4.0.Final,)
|
||||
vaadin:
|
||||
instrumentations:
|
||||
vaadin:
|
||||
- name: vaadin-14.2
|
||||
source_path: instrumentation/vaadin-14.2
|
||||
scope:
|
||||
|
@ -1864,8 +1776,7 @@ vaadin:
|
|||
javaagent:
|
||||
- com.vaadin:flow-server:[2.2.0,3)
|
||||
- com.vaadin:flow-server:[3.1.0,)
|
||||
vertx:
|
||||
instrumentations:
|
||||
vertx:
|
||||
- name: vertx-kafka-client-3.6
|
||||
source_path: instrumentation/vertx/vertx-kafka-client-3.6
|
||||
scope:
|
||||
|
@ -1915,8 +1826,7 @@ vertx:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- io.vertx:vertx-core:[3.0.0,4.0.0)
|
||||
vibur:
|
||||
instrumentations:
|
||||
vibur:
|
||||
- name: vibur-dbcp-11.0
|
||||
source_path: instrumentation/vibur-dbcp-11.0
|
||||
scope:
|
||||
|
@ -1926,8 +1836,7 @@ vibur:
|
|||
- org.vibur:vibur-dbcp:[11.0,)
|
||||
library:
|
||||
- org.vibur:vibur-dbcp:11.0
|
||||
wicket:
|
||||
instrumentations:
|
||||
wicket:
|
||||
- name: wicket-8.0
|
||||
source_path: instrumentation/wicket-8.0
|
||||
scope:
|
||||
|
@ -1935,8 +1844,7 @@ wicket:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.apache.wicket:wicket:[8.0.0,]
|
||||
xxl:
|
||||
instrumentations:
|
||||
xxl:
|
||||
- name: xxl-job-2.3.0
|
||||
source_path: instrumentation/xxl-job/xxl-job-2.3.0
|
||||
scope:
|
||||
|
@ -1958,8 +1866,7 @@ xxl:
|
|||
target_versions:
|
||||
javaagent:
|
||||
- com.xuxueli:xxl-job-core:[1.9.2, 2.1.2)
|
||||
zio:
|
||||
instrumentations:
|
||||
zio:
|
||||
- name: zio-2.0
|
||||
source_path: instrumentation/zio/zio-2.0
|
||||
scope:
|
||||
|
@ -1969,3 +1876,109 @@ zio:
|
|||
- dev.zio:zio_2.13:[2.0.0,)
|
||||
- dev.zio:zio_3:[2.0.0,)
|
||||
- dev.zio:zio_2.12:[2.0.0,)
|
||||
internal:
|
||||
- name: opentelemetry-api-1.15
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.15
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.15
|
||||
- name: opentelemetry-api-1.10
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.10
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.10
|
||||
- name: opentelemetry-api-1.27
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.27
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.27
|
||||
- name: internal-application-logger
|
||||
source_path: instrumentation/internal/internal-application-logger
|
||||
scope:
|
||||
name: io.opentelemetry.internal-application-logger
|
||||
- name: internal-class-loader
|
||||
source_path: instrumentation/internal/internal-class-loader
|
||||
scope:
|
||||
name: io.opentelemetry.internal-class-loader
|
||||
- name: java-util-logging
|
||||
source_path: instrumentation/java-util-logging
|
||||
scope:
|
||||
name: io.opentelemetry.java-util-logging
|
||||
- name: internal-reflection
|
||||
source_path: instrumentation/internal/internal-reflection
|
||||
scope:
|
||||
name: io.opentelemetry.internal-reflection
|
||||
- name: opentelemetry-instrumentation-api
|
||||
source_path: instrumentation/opentelemetry-instrumentation-api
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-instrumentation-api
|
||||
- name: opentelemetry-api-1.37
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.37
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.37
|
||||
- name: opentelemetry-api-1.38
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.38
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.38
|
||||
- name: opentelemetry-api-1.31
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.31
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.31
|
||||
- name: opentelemetry-api-1.32
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.32
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.32
|
||||
- name: opentelemetry-api-1.42
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.42
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.42
|
||||
- name: opentelemetry-api-1.40
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.40
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.40
|
||||
- name: opentelemetry-api-1.47
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.47
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.47
|
||||
- name: internal-lambda
|
||||
source_path: instrumentation/internal/internal-lambda
|
||||
scope:
|
||||
name: io.opentelemetry.internal-lambda
|
||||
- name: internal-eclipse-osgi-3.6
|
||||
source_path: instrumentation/internal/internal-eclipse-osgi-3.6
|
||||
scope:
|
||||
name: io.opentelemetry.internal-eclipse-osgi-3.6
|
||||
- name: internal-url-class-loader
|
||||
source_path: instrumentation/internal/internal-url-class-loader
|
||||
scope:
|
||||
name: io.opentelemetry.internal-url-class-loader
|
||||
- name: opentelemetry-api-1.4
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.4
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.4
|
||||
- name: opentelemetry-api-1.0
|
||||
source_path: instrumentation/opentelemetry-api/opentelemetry-api-1.0
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-api-1.0
|
||||
custom:
|
||||
- name: external-annotations
|
||||
source_path: instrumentation/external-annotations
|
||||
scope:
|
||||
name: io.opentelemetry.external-annotations
|
||||
- name: opentelemetry-extension-annotations-1.0
|
||||
source_path: instrumentation/opentelemetry-extension-annotations-1.0
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-extension-annotations-1.0
|
||||
- name: opentelemetry-instrumentation-annotations-1.16
|
||||
source_path: instrumentation/opentelemetry-instrumentation-annotations-1.16
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-instrumentation-annotations-1.16
|
||||
- name: jmx-metrics
|
||||
source_path: instrumentation/jmx-metrics
|
||||
scope:
|
||||
name: io.opentelemetry.jmx-metrics
|
||||
- name: methods
|
||||
source_path: instrumentation/methods
|
||||
scope:
|
||||
name: io.opentelemetry.methods
|
||||
- name: opentelemetry-extension-kotlin-1.0
|
||||
source_path: instrumentation/opentelemetry-extension-kotlin-1.0
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-extension-kotlin-1.0
|
||||
|
|
|
@ -10,8 +10,8 @@ Run the doc generator:
|
|||
|
||||
## Instrumentation Hierarchy
|
||||
|
||||
An "InstrumentationEntity" represents a module that that targets specific code in a framework/library/technology.
|
||||
Each instrumentation uses muzzle to determine which versions of the target code it supports.
|
||||
An "InstrumentationEntity" represents a module that that targets specific code in a
|
||||
framework/library/technology. Each entity will have a name, a namespace, and a group.
|
||||
|
||||
Using these structures as examples:
|
||||
|
||||
|
@ -28,8 +28,10 @@ Using these structures as examples:
|
|||
│ │ │ └── spring-cloud-gateway-common
|
||||
```
|
||||
|
||||
* Name
|
||||
* Ex: `clickhouse-client-05`, `jaxrs-1.0`, `spring-cloud-gateway-2.0`
|
||||
Results in the following:
|
||||
|
||||
* Name - the full name of the instrumentation module
|
||||
* `clickhouse-client-05`, `jaxrs-1.0`, `spring-cloud-gateway-2.0`
|
||||
* Namespace - direct parent. if none, use name and strip version
|
||||
* `clickhouse-client`, `jaxrs`, `spring-cloud-gateway`
|
||||
* Group - top most parent
|
||||
|
@ -47,6 +49,10 @@ public class SpringWebInstrumentationModule extends InstrumentationModule
|
|||
|
||||
## Instrumentation metadata
|
||||
|
||||
* classification
|
||||
* `library` - Instrumentation that targets a library
|
||||
* `internal` - Instrumentation that is used internally by the OpenTelemetry Java Agent
|
||||
* `custom` - Utilities that are used to create custom instrumentation
|
||||
* name
|
||||
* Identifier for instrumentation module, used to enable/disable
|
||||
* Configured in `InstrumentationModule` code for each module
|
||||
|
@ -69,15 +75,12 @@ public class SpringWebInstrumentationModule extends InstrumentationModule
|
|||
Within each instrumentation source directory, a `metadata.yaml` file can be created to provide
|
||||
additional information about the instrumentation module.
|
||||
|
||||
As of now, the following fields are supported:
|
||||
As of now, the following fields are supported, all of which are optional:
|
||||
|
||||
```yaml
|
||||
description: "Description of what the instrumentation does."
|
||||
disabled_by_default: true
|
||||
|
||||
# used to mark modules that do not instrument traditional libraries (e.g. methods, annotations)
|
||||
# defaults to true
|
||||
isLibraryInstrumentation: false
|
||||
description: "Instruments..." # Description of the instrumentation module
|
||||
disabled_by_default: true # Defaults to `false`
|
||||
classification: internal # instrumentation classification: library | internal | custom
|
||||
```
|
||||
|
||||
### Gradle File Derived Information
|
||||
|
|
|
@ -31,7 +31,7 @@ public class DocGeneratorApplication {
|
|||
writer.write("# The structure and contents are a work in progress and subject to change.\n");
|
||||
writer.write(
|
||||
"# For more information see: https://github.com/open-telemetry/opentelemetry-java-instrumentation/issues/13468\n\n");
|
||||
YamlHelper.printInstrumentationList(entities, writer);
|
||||
YamlHelper.generateInstrumentationYaml(entities, writer);
|
||||
} catch (IOException e) {
|
||||
logger.severe("Error writing instrumentation list: " + e.getMessage());
|
||||
}
|
||||
|
|
|
@ -22,20 +22,17 @@ import java.util.Set;
|
|||
|
||||
class InstrumentationAnalyzer {
|
||||
|
||||
private final FileManager fileSearch;
|
||||
private final FileManager fileManager;
|
||||
|
||||
InstrumentationAnalyzer(FileManager fileSearch) {
|
||||
this.fileSearch = fileSearch;
|
||||
InstrumentationAnalyzer(FileManager fileManager) {
|
||||
this.fileManager = fileManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a list of InstrumentationPath objects into a list of InstrumentationEntity objects.
|
||||
* Each InstrumentationEntity represents a unique combination of group, namespace, and
|
||||
* instrumentation name. The types of instrumentation (e.g., library, javaagent) are aggregated
|
||||
* into a list within each entity.
|
||||
* Converts a list of {@link InstrumentationPath} into a list of {@link InstrumentationEntity},
|
||||
*
|
||||
* @param paths the list of InstrumentationPath objects to be converted
|
||||
* @return a list of InstrumentationEntity objects with aggregated types
|
||||
* @param paths the list of {@link InstrumentationPath} objects to be converted
|
||||
* @return a list of {@link InstrumentationEntity} objects with aggregated types
|
||||
*/
|
||||
public static List<InstrumentationEntity> convertToEntities(List<InstrumentationPath> paths) {
|
||||
Map<String, InstrumentationEntity> entityMap = new HashMap<>();
|
||||
|
@ -62,17 +59,17 @@ class InstrumentationAnalyzer {
|
|||
* Extracts version information from each instrumentation's build.gradle file. Extracts
|
||||
* information from metadata.yaml files.
|
||||
*
|
||||
* @return a list of InstrumentationEntity objects with target versions
|
||||
* @return a list of {@link InstrumentationEntity}
|
||||
*/
|
||||
List<InstrumentationEntity> analyze() {
|
||||
List<InstrumentationPath> paths = fileSearch.getInstrumentationPaths();
|
||||
List<InstrumentationPath> paths = fileManager.getInstrumentationPaths();
|
||||
List<InstrumentationEntity> entities = convertToEntities(paths);
|
||||
|
||||
for (InstrumentationEntity entity : entities) {
|
||||
List<String> gradleFiles = fileSearch.findBuildGradleFiles(entity.getSrcPath());
|
||||
List<String> gradleFiles = fileManager.findBuildGradleFiles(entity.getSrcPath());
|
||||
analyzeVersions(gradleFiles, entity);
|
||||
|
||||
String metadataFile = fileSearch.getMetaDataFile(entity.getSrcPath());
|
||||
String metadataFile = fileManager.getMetaDataFile(entity.getSrcPath());
|
||||
if (metadataFile != null) {
|
||||
entity.setMetadata(YamlHelper.metaDataParser(metadataFile));
|
||||
}
|
||||
|
@ -83,7 +80,7 @@ class InstrumentationAnalyzer {
|
|||
void analyzeVersions(List<String> files, InstrumentationEntity entity) {
|
||||
Map<InstrumentationType, Set<String>> versions = new HashMap<>();
|
||||
for (String file : files) {
|
||||
String fileContents = fileSearch.readFileToString(file);
|
||||
String fileContents = fileManager.readFileToString(file);
|
||||
DependencyInfo results = null;
|
||||
|
||||
if (file.contains("/javaagent/")) {
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
* Copyright The OpenTelemetry Authors
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
package io.opentelemetry.instrumentation.docs.internal;
|
||||
|
||||
import java.util.Locale;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* This class is internal and is hence not for public use. Its APIs are unstable and can change at
|
||||
* any time.
|
||||
*/
|
||||
public enum InstrumentationClassification {
|
||||
LIBRARY,
|
||||
CUSTOM,
|
||||
INTERNAL;
|
||||
|
||||
@Nullable
|
||||
public static InstrumentationClassification fromString(@Nullable String type) {
|
||||
if (type == null) {
|
||||
return null;
|
||||
}
|
||||
return switch (type.toLowerCase(Locale.getDefault())) {
|
||||
case "library" -> LIBRARY;
|
||||
case "internal" -> INTERNAL;
|
||||
case "custom" -> CUSTOM;
|
||||
default -> null;
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return name().toLowerCase(Locale.getDefault());
|
||||
}
|
||||
}
|
|
@ -70,8 +70,11 @@ public class InstrumentationEntity {
|
|||
return scopeInfo;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public InstrumentationMetaData getMetadata() {
|
||||
if (metadata == null) {
|
||||
metadata = new InstrumentationMetaData();
|
||||
}
|
||||
|
||||
return metadata;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
package io.opentelemetry.instrumentation.docs.internal;
|
||||
|
||||
import java.util.Objects;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
|
@ -14,18 +15,14 @@ import javax.annotation.Nullable;
|
|||
*/
|
||||
public class InstrumentationMetaData {
|
||||
@Nullable private String description;
|
||||
@Nullable private Boolean isLibraryInstrumentation;
|
||||
@Nullable private Boolean disabledByDefault;
|
||||
private String classification;
|
||||
|
||||
public InstrumentationMetaData() {}
|
||||
|
||||
public InstrumentationMetaData(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public InstrumentationMetaData(
|
||||
String description, Boolean isLibraryInstrumentation, Boolean disabledByDefault) {
|
||||
this.isLibraryInstrumentation = isLibraryInstrumentation;
|
||||
String description, String classification, Boolean disabledByDefault) {
|
||||
this.classification = classification;
|
||||
this.disabledByDefault = disabledByDefault;
|
||||
this.description = description;
|
||||
}
|
||||
|
@ -35,8 +32,11 @@ public class InstrumentationMetaData {
|
|||
return description;
|
||||
}
|
||||
|
||||
public Boolean getIsLibraryInstrumentation() {
|
||||
return Objects.requireNonNullElse(isLibraryInstrumentation, true);
|
||||
@Nonnull
|
||||
public InstrumentationClassification getClassification() {
|
||||
return Objects.requireNonNullElse(
|
||||
InstrumentationClassification.fromString(classification),
|
||||
InstrumentationClassification.LIBRARY);
|
||||
}
|
||||
|
||||
public Boolean getDisabledByDefault() {
|
||||
|
@ -47,8 +47,8 @@ public class InstrumentationMetaData {
|
|||
this.description = description;
|
||||
}
|
||||
|
||||
public void setIsLibraryInstrumentation(@Nullable Boolean libraryInstrumentation) {
|
||||
isLibraryInstrumentation = libraryInstrumentation;
|
||||
public void setClassification(@Nullable String classification) {
|
||||
this.classification = classification;
|
||||
}
|
||||
|
||||
public void setDisabledByDefault(@Nullable Boolean disabledByDefault) {
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
|
||||
package io.opentelemetry.instrumentation.docs.utils;
|
||||
|
||||
import io.opentelemetry.instrumentation.docs.internal.InstrumentationClassification;
|
||||
import io.opentelemetry.instrumentation.docs.internal.InstrumentationEntity;
|
||||
import io.opentelemetry.instrumentation.docs.internal.InstrumentationMetaData;
|
||||
import java.io.BufferedWriter;
|
||||
|
@ -26,45 +27,53 @@ public class YamlHelper {
|
|||
TypeDescription customDescriptor = new TypeDescription(InstrumentationMetaData.class);
|
||||
customDescriptor.substituteProperty(
|
||||
"disabled_by_default", Boolean.class, "getDisabledByDefault", "setDisabledByDefault");
|
||||
customDescriptor.substituteProperty(
|
||||
"classification", String.class, "getClassification", "setClassification");
|
||||
metaDataYaml.addTypeDescription(customDescriptor);
|
||||
}
|
||||
|
||||
public static void printInstrumentationList(
|
||||
public static void generateInstrumentationYaml(
|
||||
List<InstrumentationEntity> list, BufferedWriter writer) {
|
||||
Map<String, List<InstrumentationEntity>> groupedByGroup =
|
||||
DumperOptions options = new DumperOptions();
|
||||
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
|
||||
|
||||
Yaml yaml = new Yaml(options);
|
||||
|
||||
Map<String, Object> libraries = getLibraryInstrumentations(list);
|
||||
if (!libraries.isEmpty()) {
|
||||
yaml.dump(getLibraryInstrumentations(list), writer);
|
||||
}
|
||||
|
||||
Map<String, Object> internal = generateBaseYaml(list, InstrumentationClassification.INTERNAL);
|
||||
if (!internal.isEmpty()) {
|
||||
yaml.dump(internal, writer);
|
||||
}
|
||||
|
||||
Map<String, Object> custom = generateBaseYaml(list, InstrumentationClassification.CUSTOM);
|
||||
if (!custom.isEmpty()) {
|
||||
yaml.dump(custom, writer);
|
||||
}
|
||||
}
|
||||
|
||||
private static Map<String, Object> getLibraryInstrumentations(List<InstrumentationEntity> list) {
|
||||
Map<String, List<InstrumentationEntity>> libraryInstrumentations =
|
||||
list.stream()
|
||||
.filter(entity -> isLibraryInstrumentation(entity.getMetadata()))
|
||||
.filter(
|
||||
entity ->
|
||||
entity
|
||||
.getMetadata()
|
||||
.getClassification()
|
||||
.equals(InstrumentationClassification.LIBRARY))
|
||||
.collect(
|
||||
Collectors.groupingBy(
|
||||
InstrumentationEntity::getGroup, TreeMap::new, Collectors.toList()));
|
||||
|
||||
Map<String, Object> output = new TreeMap<>();
|
||||
groupedByGroup.forEach(
|
||||
libraryInstrumentations.forEach(
|
||||
(group, entities) -> {
|
||||
Map<String, Object> groupMap = new LinkedHashMap<>();
|
||||
List<Map<String, Object>> instrumentations = new ArrayList<>();
|
||||
for (InstrumentationEntity entity : entities) {
|
||||
Map<String, Object> entityMap = new LinkedHashMap<>();
|
||||
entityMap.put("name", entity.getInstrumentationName());
|
||||
|
||||
if (entity.getMetadata() != null) {
|
||||
if (entity.getMetadata().getDescription() != null) {
|
||||
entityMap.put("description", entity.getMetadata().getDescription());
|
||||
}
|
||||
|
||||
if (entity.getMetadata().getDisabledByDefault()) {
|
||||
entityMap.put("disabled_by_default", entity.getMetadata().getDisabledByDefault());
|
||||
}
|
||||
}
|
||||
|
||||
entityMap.put("source_path", entity.getSrcPath());
|
||||
|
||||
if (entity.getMinJavaVersion() != null) {
|
||||
entityMap.put("minimum_java_version", entity.getMinJavaVersion());
|
||||
}
|
||||
|
||||
Map<String, Object> scopeMap = getScopeMap(entity);
|
||||
entityMap.put("scope", scopeMap);
|
||||
Map<String, Object> entityMap = baseProperties(entity);
|
||||
|
||||
Map<String, Object> targetVersions = new TreeMap<>();
|
||||
if (entity.getTargetVersions() != null && !entity.getTargetVersions().isEmpty()) {
|
||||
|
@ -81,23 +90,60 @@ public class YamlHelper {
|
|||
|
||||
instrumentations.add(entityMap);
|
||||
}
|
||||
groupMap.put("instrumentations", instrumentations);
|
||||
output.put(group, groupMap);
|
||||
output.put(group, instrumentations);
|
||||
});
|
||||
|
||||
DumperOptions options = new DumperOptions();
|
||||
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
|
||||
|
||||
Yaml yaml = new Yaml(options);
|
||||
yaml.dump(output, writer);
|
||||
Map<String, Object> newOutput = new TreeMap<>();
|
||||
if (output.isEmpty()) {
|
||||
return newOutput;
|
||||
}
|
||||
newOutput.put("libraries", output);
|
||||
return newOutput;
|
||||
}
|
||||
|
||||
// We assume true unless explicitly overridden
|
||||
private static Boolean isLibraryInstrumentation(InstrumentationMetaData metadata) {
|
||||
if (metadata == null) {
|
||||
return true;
|
||||
private static Map<String, Object> generateBaseYaml(
|
||||
List<InstrumentationEntity> list, InstrumentationClassification classification) {
|
||||
List<InstrumentationEntity> filtered =
|
||||
list.stream()
|
||||
.filter(entity -> entity.getMetadata().getClassification().equals(classification))
|
||||
.toList();
|
||||
|
||||
List<Map<String, Object>> instrumentations = new ArrayList<>();
|
||||
for (InstrumentationEntity entity : filtered) {
|
||||
instrumentations.add(baseProperties(entity));
|
||||
}
|
||||
return metadata.getIsLibraryInstrumentation();
|
||||
|
||||
Map<String, Object> newOutput = new TreeMap<>();
|
||||
if (instrumentations.isEmpty()) {
|
||||
return newOutput;
|
||||
}
|
||||
newOutput.put(classification.toString(), instrumentations);
|
||||
return newOutput;
|
||||
}
|
||||
|
||||
private static Map<String, Object> baseProperties(InstrumentationEntity entity) {
|
||||
Map<String, Object> entityMap = new LinkedHashMap<>();
|
||||
entityMap.put("name", entity.getInstrumentationName());
|
||||
|
||||
if (entity.getMetadata() != null) {
|
||||
if (entity.getMetadata().getDescription() != null) {
|
||||
entityMap.put("description", entity.getMetadata().getDescription());
|
||||
}
|
||||
|
||||
if (entity.getMetadata().getDisabledByDefault()) {
|
||||
entityMap.put("disabled_by_default", entity.getMetadata().getDisabledByDefault());
|
||||
}
|
||||
}
|
||||
|
||||
entityMap.put("source_path", entity.getSrcPath());
|
||||
|
||||
if (entity.getMinJavaVersion() != null) {
|
||||
entityMap.put("minimum_java_version", entity.getMinJavaVersion());
|
||||
}
|
||||
|
||||
Map<String, Object> scopeMap = getScopeMap(entity);
|
||||
entityMap.put("scope", scopeMap);
|
||||
return entityMap;
|
||||
}
|
||||
|
||||
private static Map<String, Object> getScopeMap(InstrumentationEntity entity) {
|
||||
|
|
|
@ -7,6 +7,7 @@ package io.opentelemetry.instrumentation.docs.utils;
|
|||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import io.opentelemetry.instrumentation.docs.internal.InstrumentationClassification;
|
||||
import io.opentelemetry.instrumentation.docs.internal.InstrumentationEntity;
|
||||
import io.opentelemetry.instrumentation.docs.internal.InstrumentationMetaData;
|
||||
import io.opentelemetry.instrumentation.docs.internal.InstrumentationType;
|
||||
|
@ -29,8 +30,11 @@ class YamlHelperTest {
|
|||
InstrumentationType.JAVAAGENT,
|
||||
new HashSet<>(List.of("org.springframework:spring-web:[6.0.0,)")));
|
||||
|
||||
InstrumentationMetaData metadata1 =
|
||||
new InstrumentationMetaData("Spring Web 6.0 instrumentation", true, true);
|
||||
InstrumentationMetaData springMetadata =
|
||||
new InstrumentationMetaData(
|
||||
"Spring Web 6.0 instrumentation",
|
||||
InstrumentationClassification.LIBRARY.toString(),
|
||||
true);
|
||||
|
||||
entities.add(
|
||||
new InstrumentationEntity.Builder()
|
||||
|
@ -39,7 +43,7 @@ class YamlHelperTest {
|
|||
.namespace("spring")
|
||||
.group("spring")
|
||||
.targetVersions(targetVersions1)
|
||||
.metadata(metadata1)
|
||||
.metadata(springMetadata)
|
||||
.minJavaVersion(11)
|
||||
.build());
|
||||
|
||||
|
@ -60,13 +64,13 @@ class YamlHelperTest {
|
|||
StringWriter stringWriter = new StringWriter();
|
||||
BufferedWriter writer = new BufferedWriter(stringWriter);
|
||||
|
||||
YamlHelper.printInstrumentationList(entities, writer);
|
||||
YamlHelper.generateInstrumentationYaml(entities, writer);
|
||||
writer.flush();
|
||||
|
||||
String expectedYaml =
|
||||
"""
|
||||
spring:
|
||||
instrumentations:
|
||||
libraries:
|
||||
spring:
|
||||
- name: spring-web-6.0
|
||||
description: Spring Web 6.0 instrumentation
|
||||
disabled_by_default: true
|
||||
|
@ -77,8 +81,7 @@ class YamlHelperTest {
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.springframework:spring-web:[6.0.0,)
|
||||
struts:
|
||||
instrumentations:
|
||||
struts:
|
||||
- name: struts-2.3
|
||||
source_path: instrumentation/struts/struts-2.3
|
||||
scope:
|
||||
|
@ -92,15 +95,18 @@ class YamlHelperTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
void testPrintInstrumentationListIgnoresNonLibraryInstrumentation() throws Exception {
|
||||
void testGenerateInstrumentationYamlSeparatesClassifications() throws Exception {
|
||||
List<InstrumentationEntity> entities = new ArrayList<>();
|
||||
Map<InstrumentationType, Set<String>> targetVersions1 = new HashMap<>();
|
||||
targetVersions1.put(
|
||||
Map<InstrumentationType, Set<String>> springTargetVersions = new HashMap<>();
|
||||
springTargetVersions.put(
|
||||
InstrumentationType.JAVAAGENT,
|
||||
new HashSet<>(List.of("org.springframework:spring-web:[6.0.0,)")));
|
||||
|
||||
InstrumentationMetaData metadata1 =
|
||||
new InstrumentationMetaData("Spring Web 6.0 instrumentation");
|
||||
InstrumentationMetaData springMetadata =
|
||||
new InstrumentationMetaData(
|
||||
"Spring Web 6.0 instrumentation",
|
||||
InstrumentationClassification.LIBRARY.toString(),
|
||||
false);
|
||||
|
||||
entities.add(
|
||||
new InstrumentationEntity.Builder()
|
||||
|
@ -108,12 +114,13 @@ class YamlHelperTest {
|
|||
.instrumentationName("spring-web-6.0")
|
||||
.namespace("spring")
|
||||
.group("spring")
|
||||
.targetVersions(targetVersions1)
|
||||
.metadata(metadata1)
|
||||
.targetVersions(springTargetVersions)
|
||||
.metadata(springMetadata)
|
||||
.minJavaVersion(11)
|
||||
.build());
|
||||
|
||||
InstrumentationMetaData metadata2 = new InstrumentationMetaData(null, false, null);
|
||||
InstrumentationMetaData internalMetadata =
|
||||
new InstrumentationMetaData(null, InstrumentationClassification.INTERNAL.toString(), null);
|
||||
|
||||
entities.add(
|
||||
new InstrumentationEntity.Builder()
|
||||
|
@ -121,20 +128,33 @@ class YamlHelperTest {
|
|||
.instrumentationName("internal-application-logger")
|
||||
.namespace("internal")
|
||||
.group("internal")
|
||||
.metadata(metadata2)
|
||||
.metadata(internalMetadata)
|
||||
.targetVersions(new HashMap<>())
|
||||
.build());
|
||||
|
||||
InstrumentationMetaData customMetadata =
|
||||
new InstrumentationMetaData(null, InstrumentationClassification.CUSTOM.toString(), null);
|
||||
|
||||
entities.add(
|
||||
new InstrumentationEntity.Builder()
|
||||
.srcPath("instrumentation/opentelemetry-external-annotations-1.0")
|
||||
.instrumentationName("opentelemetry-external-annotations")
|
||||
.namespace("opentelemetry-external-annotations")
|
||||
.group("opentelemetry-external-annotations")
|
||||
.metadata(customMetadata)
|
||||
.targetVersions(new HashMap<>())
|
||||
.build());
|
||||
|
||||
StringWriter stringWriter = new StringWriter();
|
||||
BufferedWriter writer = new BufferedWriter(stringWriter);
|
||||
|
||||
YamlHelper.printInstrumentationList(entities, writer);
|
||||
YamlHelper.generateInstrumentationYaml(entities, writer);
|
||||
writer.flush();
|
||||
|
||||
String expectedYaml =
|
||||
"""
|
||||
spring:
|
||||
instrumentations:
|
||||
libraries:
|
||||
spring:
|
||||
- name: spring-web-6.0
|
||||
description: Spring Web 6.0 instrumentation
|
||||
source_path: instrumentation/spring/spring-web/spring-web-6.0
|
||||
|
@ -144,6 +164,16 @@ class YamlHelperTest {
|
|||
target_versions:
|
||||
javaagent:
|
||||
- org.springframework:spring-web:[6.0.0,)
|
||||
internal:
|
||||
- name: internal-application-logger
|
||||
source_path: instrumentation/internal/internal-application-logger
|
||||
scope:
|
||||
name: io.opentelemetry.internal-application-logger
|
||||
custom:
|
||||
- name: opentelemetry-external-annotations
|
||||
source_path: instrumentation/opentelemetry-external-annotations-1.0
|
||||
scope:
|
||||
name: io.opentelemetry.opentelemetry-external-annotations
|
||||
""";
|
||||
|
||||
assertThat(expectedYaml).isEqualTo(stringWriter.toString());
|
||||
|
@ -153,22 +183,22 @@ class YamlHelperTest {
|
|||
void testMetadataParser() {
|
||||
String input =
|
||||
"""
|
||||
description: test description
|
||||
isLibraryInstrumentation: false
|
||||
disabled_by_default: true
|
||||
""";
|
||||
description: test description
|
||||
classification: internal
|
||||
disabled_by_default: true
|
||||
""";
|
||||
|
||||
InstrumentationMetaData metadata = YamlHelper.metaDataParser(input);
|
||||
assertThat(metadata.getIsLibraryInstrumentation()).isFalse();
|
||||
assertThat(metadata.getClassification()).isEqualTo(InstrumentationClassification.INTERNAL);
|
||||
assertThat(metadata.getDescription()).isEqualTo("test description");
|
||||
assertThat(metadata.getDisabledByDefault()).isEqualTo(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testMetadataParserWithOnlyLibraryEntry() {
|
||||
String input = "isLibraryInstrumentation: false";
|
||||
String input = "classification: internal";
|
||||
InstrumentationMetaData metadata = YamlHelper.metaDataParser(input);
|
||||
assertThat(metadata.getIsLibraryInstrumentation()).isFalse();
|
||||
assertThat(metadata.getClassification()).isEqualTo(InstrumentationClassification.INTERNAL);
|
||||
assertThat(metadata.getDescription()).isNull();
|
||||
assertThat(metadata.getDisabledByDefault()).isFalse();
|
||||
}
|
||||
|
@ -177,7 +207,7 @@ class YamlHelperTest {
|
|||
void testMetadataParserWithOnlyDescription() {
|
||||
String input = "description: false";
|
||||
InstrumentationMetaData metadata = YamlHelper.metaDataParser(input);
|
||||
assertThat(metadata.getIsLibraryInstrumentation()).isTrue();
|
||||
assertThat(metadata.getClassification()).isEqualTo(InstrumentationClassification.LIBRARY);
|
||||
assertThat(metadata.getDisabledByDefault()).isFalse();
|
||||
}
|
||||
|
||||
|
@ -185,7 +215,7 @@ class YamlHelperTest {
|
|||
void testMetadataParserWithOnlyDisabledByDefault() {
|
||||
String input = "disabled_by_default: true";
|
||||
InstrumentationMetaData metadata = YamlHelper.metaDataParser(input);
|
||||
assertThat(metadata.getIsLibraryInstrumentation()).isTrue();
|
||||
assertThat(metadata.getClassification()).isEqualTo(InstrumentationClassification.LIBRARY);
|
||||
assertThat(metadata.getDescription()).isNull();
|
||||
assertThat(metadata.getDisabledByDefault()).isTrue();
|
||||
}
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: custom
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: custom
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: custom
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: custom
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: custom
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: custom
|
||||
|
|
|
@ -1 +1 @@
|
|||
isLibraryInstrumentation: false
|
||||
classification: internal
|
||||
|
|
Loading…
Reference in New Issue