Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions changelog/unreleased/SOLR-18310-otel-jdk-sender.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
title: >
opentelemetry: the default OTLP sender is now http/protobuf port 4318 and with fewer/no JARs to do so.
JARs for others like gRPC have been removed but users can add as they need.
type: dependency_update

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a typical dependency_update usage (isn't an upgrade) but why not use it here.
CC @janhoy

authors:
- name: David Smiley
links:
- name: SOLR-18310
url: https://issues.apache.org/jira/browse/SOLR-18310
1 change: 1 addition & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,7 @@ opentelemetry-bom = { module = "io.opentelemetry:opentelemetry-bom", version.ref
opentelemetry-context = { module = "io.opentelemetry:opentelemetry-context", version.ref = "opentelemetry" }
opentelemetry-exporter-otlp = { module = "io.opentelemetry:opentelemetry-exporter-otlp", version.ref = "opentelemetry" }
opentelemetry-exporter-prometheus = { module = "io.opentelemetry:opentelemetry-exporter-prometheus", version.ref = "opentelemetry-prometheus" }
opentelemetry-exporter-sender-jdk = { module = "io.opentelemetry:opentelemetry-exporter-sender-jdk", version.ref = "opentelemetry" }
opentelemetry-runtime-telemetry = { module = "io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17", version.ref = "opentelemetry-runtime-telemetry" }
opentelemetry-sdk = { module = "io.opentelemetry:opentelemetry-sdk", version.ref = "opentelemetry" }
opentelemetry-sdk-extension-autoconfigure = { module = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure", version.ref = "opentelemetry" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public interface MetricExporterFactory {
Boolean.parseBoolean(EnvUtils.getProperty("solr.metrics.otlpExporterEnabled", "false"));

public static final String OTLP_EXPORTER_PROTOCOL =
EnvUtils.getProperty("solr.metrics.otlpExporterProtocol", "grpc");
EnvUtils.getProperty("solr.metrics.otlpExporterProtocol", "http");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we know that http is the default choice in the otel world? I guess in my head I thought grpc for performacne reasons? But I'm not an expert!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OTLP http/protobuf is widely supported OOTB on recipients AFAICT. I suspect users won't notice this change, but it's not something to withhold from a changelog.
I do expect a there would be a performance difference, albeit not much for a reasonably performant http stack (I think JDK HttpClient is such).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default is grpc but I am ok with http.


public static final int OTLP_EXPORTER_INTERVAL =
Integer.parseInt(EnvUtils.getProperty("solr.metrics.otlpExporterInterval", "60000"));
Expand Down
25 changes: 1 addition & 24 deletions solr/cross-dc-manager/gradle.lockfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ com.fasterxml.woodstox:woodstox-core:7.2.1=jarValidation,runtimeClasspath,runtim
com.github.ben-manes.caffeine:caffeine:3.2.4=annotationProcessor,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testRuntimeClasspath
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor
com.github.luben:zstd-jni:1.5.6-4=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.google.android:annotations:4.1.1.4=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
com.google.api.grpc:proto-google-common-protos:2.64.1=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto.value:auto-value-annotations:1.11.1=annotationProcessor,errorprone,testAnnotationProcessor
com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor
Expand All @@ -40,10 +38,6 @@ com.google.protobuf:protobuf-java:4.35.1=annotationProcessor,errorprone,jarValid
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.jayway.jsonpath:json-path:3.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.lmax:disruptor:4.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.squareup.okhttp3:okhttp-jvm:5.4.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
com.squareup.okhttp3:okhttp:5.4.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
com.squareup.okio:okio-jvm:3.17.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
com.squareup.okio:okio:3.17.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
com.tdunning:t-digest:3.3=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.thoughtworks.paranamer:paranamer:2.8.3=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
com.typesafe.scala-logging:scala-logging_2.13:3.9.5=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
Expand All @@ -58,23 +52,9 @@ commons-validator:commons-validator:1.10.1=jarValidation,runtimeClasspath,runtim
io.dropwizard.metrics:metrics-core:4.2.39=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.github.eisop:dataflow-errorprone:3.41.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor
io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,errorprone,testAnnotationProcessor
io.grpc:grpc-api:1.82.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.grpc:grpc-context:1.82.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.grpc:grpc-core:1.82.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.grpc:grpc-netty:1.82.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.grpc:grpc-protobuf-lite:1.82.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.grpc:grpc-protobuf:1.82.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.grpc:grpc-stub:1.82.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.grpc:grpc-util:1.82.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.netty:netty-bom:4.2.15.Final=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.netty:netty-buffer:4.2.15.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-codec-base:4.2.15.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-codec-compression:4.2.15.Final=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.netty:netty-codec-http2:4.2.15.Final=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.netty:netty-codec-http:4.2.15.Final=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.netty:netty-codec-socks:4.2.15.Final=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.netty:netty-common:4.2.15.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-handler-proxy:4.2.15.Final=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.netty:netty-handler:4.2.15.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-resolver:4.2.15.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.netty:netty-tcnative-boringssl-static:2.0.79.Final=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
Expand All @@ -97,15 +77,14 @@ io.opentelemetry:opentelemetry-exporter-common:1.56.0=jarValidation,runtimeClass
io.opentelemetry:opentelemetry-exporter-otlp-common:1.56.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-exporter-otlp:1.56.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-exporter-prometheus:1.56.0-alpha=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-exporter-sender-okhttp:1.56.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-exporter-sender-jdk:1.56.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-sdk-common:1.56.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:1.56.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.56.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-sdk-logs:1.56.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-sdk-metrics:1.56.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
io.opentelemetry:opentelemetry-sdk-trace:1.56.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.opentelemetry:opentelemetry-sdk:1.56.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.perfmark:perfmark-api:0.27.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
io.sgr:s2-geometry-library-java:1.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
Expand Down Expand Up @@ -217,8 +196,6 @@ org.glassfish.jersey.media:jersey-media-json-jackson:4.0.2=jarValidation,runtime
org.glassfish.jersey:jersey-bom:4.0.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath
org.javassist:javassist:3.30.2-GA=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.jetbrains.kotlin:kotlin-stdlib:2.2.21=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
org.jetbrains:annotations:26.1.0=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
org.jspecify:jspecify:1.0.0=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath
Expand Down
1 change: 0 additions & 1 deletion solr/licenses/grpc-netty-1.82.0.jar.sha1

This file was deleted.

1 change: 0 additions & 1 deletion solr/licenses/netty-codec-http2-4.2.15.Final.jar.sha1

This file was deleted.

1 change: 0 additions & 1 deletion solr/licenses/netty-codec-socks-4.2.15.Final.jar.sha1

This file was deleted.

1 change: 0 additions & 1 deletion solr/licenses/netty-handler-proxy-4.2.15.Final.jar.sha1

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
a444a2c56f7b40cbde39bc542523a912811b7d97

This file was deleted.

1 change: 0 additions & 1 deletion solr/licenses/proto-google-common-protos-2.64.1.jar.sha1

This file was deleted.

16 changes: 6 additions & 10 deletions solr/modules/opentelemetry/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ dependencies {
implementation platform(project(':platform'))
implementation project(':solr:core')

implementation platform(libs.netty.bom)
implementation platform(libs.opentelemetry.bom)

implementation libs.slf4j.api
Expand All @@ -32,16 +31,13 @@ dependencies {
implementation libs.opentelemetry.sdk
implementation libs.opentelemetry.sdk.metrics
implementation libs.opentelemetry.sdk.extension.autoconfigure
implementation libs.opentelemetry.exporter.otlp
// End users must recompile with jaeger exporter and/or zipkin exporter if they need these
implementation(libs.opentelemetry.exporter.otlp) {
// Exclude the OkHttp-based sender; we use the JDK HTTP sender instead
exclude group: 'io.opentelemetry', module: 'opentelemetry-exporter-sender-okhttp'
}

// NOTE: sdk-autoconfigure needs both opentelemetry-sdk-metrics and opentelemetry-sdk-logs even if we don't use them

// gRPC transport via netty - since we already ship netty this is more lightweight than netty-shaded
runtimeOnly libs.grpc.netty
runtimeOnly libs.grpc.protobuf
runtimeOnly libs.grpc.stub
runtimeOnly libs.grpc.context
// OTLP HTTP sender that requires no additional dependencies.
runtimeOnly libs.opentelemetry.exporter.sender.jdk
// See https://issues.apache.org/jira/browse/LOG4J2-3609 due to needing these annotations
compileOnly libs.apache.tomcat.annotationsapi

Expand Down
Loading
Loading