elasticsearch-java 7.17.20 has native instrumentation (#11083)

This commit is contained in:
Lauri Tulmin 2024-04-10 23:05:12 +03:00 committed by GitHub
parent 5847b233a8
commit 17c8f0da74
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 185 additions and 134 deletions

View File

@ -18,7 +18,7 @@ or [contributing](../CONTRIBUTING.md).
These are the supported libraries and frameworks:
| Library/Framework | Auto-instrumented versions | Standalone Library Instrumentation [1] | Semantic Conventions |
|---------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
|---------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|
| [Akka Actors](https://doc.akka.io/docs/akka/current/typed/index.html) | 2.3+ | N/A | Context propagation |
| [Akka HTTP](https://doc.akka.io/docs/akka-http/current/index.html) | 10.0+ | N/A | [HTTP Client Spans], [HTTP Client Metrics], [HTTP Server Spans], [HTTP Server Metrics], Provides `http.route` [2] |
| [Alibaba Druid](https://github.com/alibaba/druid) | 1.0+ | [opentelemetry-alibaba-druid-1.0](../instrumentation/alibaba-druid-1.0/library) | [Database Pool Metrics] |
@ -56,7 +56,7 @@ These are the supported libraries and frameworks:
| [Eclipse Jetty HTTP Client](https://www.eclipse.org/jetty/javadoc/jetty-9/org/eclipse/jetty/client/HttpClient.html) | 9.2+ (not including 10+ yet) | [opentelemetry-jetty-httpclient-9.2](../instrumentation/jetty-httpclient/jetty-httpclient-9.2/library) | [HTTP Client Spans], [HTTP Client Metrics] |
| [Eclipse Metro](https://projects.eclipse.org/projects/ee4j.metro) | 2.2+ | N/A | Provides `http.route` [2], Controller Spans [3] |
| [Eclipse Mojarra](https://projects.eclipse.org/projects/ee4j.mojarra) | 1.2+ | N/A | Provides `http.route` [2], Controller Spans [3] |
| [Elasticsearch API Client](https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/index.html) | 7.16+ | N/A | [Elasticsearch Client Spans] |
| [Elasticsearch API Client](https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/index.html) | 7.16 - 7.17.19,<br>8.0 - 8.9.+ [4] | N/A | [Elasticsearch Client Spans] |
| [Elasticsearch REST Client](https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html) | 5.0+ | N/A | [Database Client Spans] |
| [Elasticsearch Transport Client](https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html) | 5.0+ | N/A | [Database Client Spans] |
| [Finagle](https://github.com/twitter/finagle) | 23.11+ | N/A | none |
@ -154,6 +154,8 @@ These are the supported libraries and frameworks:
**[3]** Controller Spans are `INTERNAL` spans capturing the controller and/or view execution. See [Suppressing controller and/or view spans](https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/#suppressing-controller-andor-view-spans).
**[4]** Newer versions of the library have telemetry built-in.
[Elasticsearch Client Spans]: https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/elasticsearch.md
[HTTP Server Spans]: https://github.com/open-telemetry/semantic-conventions/blob/main/docs/http/http-spans.md#http-server
[HTTP Client Spans]: https://github.com/open-telemetry/semantic-conventions/blob/main/docs/http/http-spans.md#http-client

View File

@ -6,8 +6,27 @@ muzzle {
pass {
group.set("co.elastic.clients")
module.set("elasticsearch-java")
versions.set("[7.16,8.10)") // 8.10+ has native, on-by-default opentelemetry instrumentation
assertInverse.set(true)
versions.set("[7.16,7.17.20)") // 7.17.20+ has native, on-by-default opentelemetry instrumentation
}
pass {
group.set("co.elastic.clients")
module.set("elasticsearch-java")
versions.set("[8.0.0,8.10)") // 8.10+ has native, on-by-default opentelemetry instrumentation
}
fail {
group.set("co.elastic.clients")
module.set("elasticsearch-java")
versions.set("(,7.16)")
}
fail {
group.set("co.elastic.clients")
module.set("elasticsearch-java")
versions.set("[7.17.20,8.0.0)")
}
fail {
group.set("co.elastic.clients")
module.set("elasticsearch-java")
versions.set("[8.10,)")
}
}
@ -23,14 +42,44 @@ dependencies {
testImplementation("com.fasterxml.jackson.core:jackson-databind:2.14.2")
testImplementation("org.testcontainers:elasticsearch")
latestDepTestLibrary("co.elastic.clients:elasticsearch-java:7.17.19")
}
val latestDepTest = findProperty("testLatestDeps") as Boolean
testing {
suites {
val version8Test by registering(JvmTestSuite::class) {
dependencies {
sources {
java {
setSrcDirs(listOf("src/test/java"))
}
resources {
setSrcDirs(listOf("src/test/resources"))
}
}
implementation("com.fasterxml.jackson.core:jackson-databind:2.14.2")
implementation("org.testcontainers:elasticsearch")
if (latestDepTest) {
// 8.10+ has native, on-by-default opentelemetry instrumentation
latestDepTestLibrary("co.elastic.clients:elasticsearch-java:8.9.+")
implementation("co.elastic.clients:elasticsearch-java:8.9.+")
} else {
implementation("co.elastic.clients:elasticsearch-java:8.0.0")
}
}
}
}
}
tasks {
test {
usesService(gradle.sharedServices.registrations["testcontainersBuildService"].service)
}
check {
dependsOn(testing.suites)
}
}
tasks.withType<Test>().configureEach {