From bfce91905f8ad6827d9bb19c15c354055e133897 Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Thu, 30 Apr 2026 18:43:22 +0800 Subject: [PATCH] removed telemetry switch from configuration --- doc/server_configuration.md | 3 +-- docker/Dockerfile | 15 +++++------ .../net/woggioni/rbcs/api/Configuration.java | 3 --- .../graal/GraalNativeImageConfiguration.kt | 1 - .../rbcs/server/otel/OtelController.kt | 26 +++++-------------- .../rbcs/server/RemoteBuildCacheServer.kt | 10 +++---- .../rbcs/server/configuration/Parser.kt | 3 --- .../rbcs/server/configuration/Serializer.kt | 1 - .../net/woggioni/rbcs/server/rbcs-default.xml | 3 +-- .../rbcs/server/schema/rbcs-server.xsd | 8 ------ .../test/AbstractBasicAuthServerTest.kt | 1 - .../rbcs/server/test/AbstractTlsServerTest.kt | 1 - .../rbcs/server/test/NoAuthServerTest.kt | 1 - .../rbcs/server/test/valid/rbcs-default.xml | 2 +- 14 files changed, 20 insertions(+), 58 deletions(-) diff --git a/doc/server_configuration.md b/doc/server_configuration.md index 1d5ca78..c52f946 100644 --- a/doc/server_configuration.md +++ b/doc/server_configuration.md @@ -5,7 +5,6 @@ The root element that contains all server configuration. **Attributes:** - `path` (optional): URI path prefix for cache requests. Example: if set to "cache", requests would be made to "http://www.example.com/cache/KEY" -- `enable-telemetry` (optional): If set to "true" it will enable opentelemetry integration (you will need to make sure the `rbcs-server-otel` has been unpacked in the `plugins` folder) #### Child Elements @@ -140,7 +139,7 @@ Configures TLS encryption. diff --git a/docker/Dockerfile b/docker/Dockerfile index 5a3fb41..61db168 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -7,7 +7,8 @@ FROM base-release AS release-vanilla ADD rbcs-cli-envelope-*.jar rbcs.jar ADD logback.xml /etc/rbcs/logback.xml ENV RBCS_CONFIGURATION_DIR="/etc/rbcs" -ENTRYPOINT ["java", "-Dlogback.configurationFile=/etc/rbcs/logback.xml", "-XX:MaxRAMPercentage=70", "-XX:GCTimeRatio=24", "-XX:+UseZGC", "-jar", "/var/lib/rbcs/rbcs.jar"] +ENV JDK_JAVA_OPTIONS=-Dlogback.configurationFile=/etc/rbcs/logback.xml\ -XX:MaxRAMPercentage=70\ -XX:GCTimeRatio=24\ -XX:+UseZGC +ENTRYPOINT ["java", "-jar", "/var/lib/rbcs/rbcs.jar"] FROM base-release AS release-memcache ADD --chown=rbcs:rbcs rbcs-cli-envelope-*.jar rbcs.jar @@ -16,8 +17,7 @@ WORKDIR /var/lib/rbcs/plugins RUN --mount=type=bind,source=.,target=/build/distributions tar -xf /build/distributions/rbcs-server-memcache*.tar WORKDIR /var/lib/rbcs ADD logback.xml /etc/rbcs/logback.xml -ENV RBCS_CONFIGURATION_DIR="/etc/rbcs" -ENTRYPOINT ["java", "-Dlogback.configurationFile=/etc/rbcs/logback.xml", "-XX:MaxRAMPercentage=70", "-XX:GCTimeRatio=24", "-XX:+UseZGC", "-jar", "/var/lib/rbcs/rbcs.jar"] +ENTRYPOINT ["java", "-jar", "/var/lib/rbcs/rbcs.jar"] FROM base-release AS release-redis ADD --chown=rbcs:rbcs rbcs-cli-envelope-*.jar rbcs.jar @@ -26,8 +26,7 @@ WORKDIR /var/lib/rbcs/plugins RUN --mount=type=bind,source=.,target=/build/distributions tar -xf /build/distributions/rbcs-server-redis*.tar WORKDIR /var/lib/rbcs ADD logback.xml /etc/rbcs/logback.xml -ENV RBCS_CONFIGURATION_DIR="/etc/rbcs" -ENTRYPOINT ["java", "-Dlogback.configurationFile=/etc/rbcs/logback.xml", "-XX:MaxRAMPercentage=70", "-XX:GCTimeRatio=24", "-XX:+UseZGC", "-jar", "/var/lib/rbcs/rbcs.jar"] +ENTRYPOINT ["java", "-jar", "/var/lib/rbcs/rbcs.jar"] FROM base-release AS release-full ADD --chown=rbcs:rbcs rbcs-cli-envelope-*.jar rbcs.jar @@ -38,8 +37,8 @@ RUN --mount=type=bind,source=.,target=/build/distributions tar -xf /build/distri RUN --mount=type=bind,source=.,target=/build/distributions tar -xf /build/distributions/rbcs-server-otel*.tar WORKDIR /var/lib/rbcs ADD logback.xml /etc/rbcs/logback.xml -ENV RBCS_CONFIGURATION_DIR="/etc/rbcs" -ENTRYPOINT ["java", "-Dlogback.configurationFile=/etc/rbcs/logback.xml", "-XX:MaxRAMPercentage=70", "-XX:GCTimeRatio=24", "-XX:+UseZGC", "-jar", "/var/lib/rbcs/rbcs.jar"] +ENV OTEL_SDK_DISABLED="true" +ENTRYPOINT ["java", "-jar", "/var/lib/rbcs/rbcs.jar"] FROM busybox:musl AS base-native RUN mkdir -p /var/lib/rbcs /var/tmp/rbcs /etc/rbcs @@ -66,5 +65,5 @@ USER rbcs WORKDIR /var/lib/rbcs ADD logback.xml /etc/rbcs/logback.xml ENV RBCS_CONFIGURATION_DIR="/etc/rbcs" -ENV JAVA_OPTS=-XX:-UseJVMCICompiler\ -Dlogback.configurationFile=/etc/rbcs/logback.xml\ -XX:MaxRAMPercentage=70\ -XX:GCTimeRatio=24\ -XX:+UseZGC +ENV JDK_JAVA_OPTIONS=-XX:-UseJVMCICompiler\ -Dlogback.configurationFile=/etc/rbcs/logback.xml\ -XX:MaxRAMPercentage=70\ -XX:GCTimeRatio=24\ -XX:+UseZGC ENTRYPOINT ["/usr/local/bin/rbcs-cli"] diff --git a/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java b/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java index 86cc4b7..c5261e9 100644 --- a/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java +++ b/rbcs-api/src/main/java/net/woggioni/rbcs/api/Configuration.java @@ -21,7 +21,6 @@ public class Configuration { String serverPath; boolean proxyProtocolEnabled; List trustedProxyIPs; - boolean enableTelemetry; int incomingConnectionsBacklogSize; @NonNull EventExecutor eventExecutor; @@ -151,7 +150,6 @@ public class Configuration { } public static Configuration of( - boolean enableTelemetry, String host, int port, boolean proxyProtocolEnabled, @@ -173,7 +171,6 @@ public class Configuration { serverPath != null && !serverPath.isEmpty() && !serverPath.equals("/") ? serverPath : null, proxyProtocolEnabled, trustedProxyIPs, - enableTelemetry, incomingConnectionsBacklogSize, eventExecutor, rateLimiter, diff --git a/rbcs-cli/src/configureNativeImage/kotlin/net/woggioni/rbcs/cli/graal/GraalNativeImageConfiguration.kt b/rbcs-cli/src/configureNativeImage/kotlin/net/woggioni/rbcs/cli/graal/GraalNativeImageConfiguration.kt index e99afa8..a1099f6 100644 --- a/rbcs-cli/src/configureNativeImage/kotlin/net/woggioni/rbcs/cli/graal/GraalNativeImageConfiguration.kt +++ b/rbcs-cli/src/configureNativeImage/kotlin/net/woggioni/rbcs/cli/graal/GraalNativeImageConfiguration.kt @@ -123,7 +123,6 @@ object GraalNativeImageConfiguration { null, false, emptyList(), - false, 100, Configuration.EventExecutor(true), Configuration.RateLimiter( diff --git a/rbcs-server-otel/src/main/kotlin/net/woggioni/rbcs/server/otel/OtelController.kt b/rbcs-server-otel/src/main/kotlin/net/woggioni/rbcs/server/otel/OtelController.kt index a1eccfc..44d97bd 100644 --- a/rbcs-server-otel/src/main/kotlin/net/woggioni/rbcs/server/otel/OtelController.kt +++ b/rbcs-server-otel/src/main/kotlin/net/woggioni/rbcs/server/otel/OtelController.kt @@ -14,18 +14,6 @@ class OtelController : TelemetryController { private val log = createLogger() - private val appenderAvailable: Boolean by lazy { - runCatching { - Class.forName("io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender") - }.fold( - onSuccess = { true }, - onFailure = { - log.info { "OpenTelemetry logback appender not on classpath" } - false - }, - ) - } - override fun initialize() { log.info { "Initializing OpenTelemetry SDK with auto-configuration" } @@ -35,14 +23,12 @@ class OtelController : TelemetryController { .openTelemetrySdk RuntimeTelemetry.create(sdk) - if (appenderAvailable) { - runCatching { - OpenTelemetryAppender.install(sdk) - log.info { "OpenTelemetry logback appender installed" } - }.onFailure { ex -> - val msg = ex.localizedMessage ?: ex.javaClass.name - log.info { "Failed to install OpenTelemetry logback appender: $msg" } - } + runCatching { + OpenTelemetryAppender.install(sdk) + log.info { "OpenTelemetry logback appender installed" } + }.onFailure { ex -> + val msg = ex.localizedMessage ?: ex.javaClass.name + log.info { "Failed to install OpenTelemetry logback appender: $msg" } } log.info { "OpenTelemetry SDK initialized successfully" } } diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/RemoteBuildCacheServer.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/RemoteBuildCacheServer.kt index b31eb2a..a714e55 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/RemoteBuildCacheServer.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/RemoteBuildCacheServer.kt @@ -415,12 +415,10 @@ class RemoteBuildCacheServer(private val cfg: Configuration) { maxChunkSize = cfg.connection.chunkSize } pipeline.addLast(HttpServerCodec(httpDecoderConfig)) - if(cfg.isEnableTelemetry) { - loadService(TelemetryController::class.java) - .firstOrNull() - ?.createHandler() - ?.let { pipeline.addLast(it) } - } + loadService(TelemetryController::class.java) + .firstOrNull() + ?.createHandler() + ?.let { pipeline.addLast(it) } pipeline.addLast(ReadTriggerDuplexHandler.NAME, ReadTriggerDuplexHandler()) pipeline.addLast(MaxRequestSizeHandler.NAME, MaxRequestSizeHandler(cfg.connection.maxRequestSize)) pipeline.addLast(HttpChunkContentCompressor(1024)) diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt index 355fc6e..f1ac5c6 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Parser.kt @@ -46,8 +46,6 @@ object Parser { var groups = emptyMap() var tls: Tls? = null val serverPath = root.renderAttribute("path") - var enableTelemetry = root.renderAttribute("enable-telemetry") - ?.let(String::toBoolean) ?: false var incomingConnectionsBacklogSize = 1024 var authentication: Authentication? = null for (child in root.asIterable()) { @@ -235,7 +233,6 @@ object Parser { } } return Configuration.of( - enableTelemetry, host, port, proxyProtocolEnabled, diff --git a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Serializer.kt b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Serializer.kt index f7506fb..67e78d3 100644 --- a/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Serializer.kt +++ b/rbcs-server/src/main/kotlin/net/woggioni/rbcs/server/configuration/Serializer.kt @@ -29,7 +29,6 @@ object Serializer { ?.let { serverPath -> attr("path", serverPath) } - attr("enable-telemetry", conf.isEnableTelemetry.toString()) node("bind") { attr("host", conf.host) attr("port", conf.port.toString()) diff --git a/rbcs-server/src/main/resources/net/woggioni/rbcs/server/rbcs-default.xml b/rbcs-server/src/main/resources/net/woggioni/rbcs/server/rbcs-default.xml index 55f3710..6d45ea1 100644 --- a/rbcs-server/src/main/resources/net/woggioni/rbcs/server/rbcs-default.xml +++ b/rbcs-server/src/main/resources/net/woggioni/rbcs/server/rbcs-default.xml @@ -2,8 +2,7 @@ + xs:schemaLocation="urn:net.woggioni.rbcs.server jpms://net.woggioni.rbcs.server/net/woggioni/rbcs/server/schema/rbcs-server.xsd"> \ No newline at end of file diff --git a/rbcs-server/src/main/resources/net/woggioni/rbcs/server/schema/rbcs-server.xsd b/rbcs-server/src/main/resources/net/woggioni/rbcs/server/schema/rbcs-server.xsd index b4c5399..65aa616 100644 --- a/rbcs-server/src/main/resources/net/woggioni/rbcs/server/schema/rbcs-server.xsd +++ b/rbcs-server/src/main/resources/net/woggioni/rbcs/server/schema/rbcs-server.xsd @@ -59,14 +59,6 @@ - - - - Enable OpenTelemetry distributed tracing for the server. - Even when enabled, telemetry only activates if OpenTelemetry classes are present on the classpath. - - - diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt index acb5474..31d024c 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractBasicAuthServerTest.kt @@ -32,7 +32,6 @@ abstract class AbstractBasicAuthServerTest : AbstractServerTest() { override fun setUp() { this.cacheDir = testDir.resolve("cache") cfg = Configuration.of( - false, "127.0.0.1", getFreePort(), false, diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt index 9d376a0..3c7696e 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/AbstractTlsServerTest.kt @@ -143,7 +143,6 @@ abstract class AbstractTlsServerTest : AbstractServerTest() { serverPath, false, emptyList(), - false, 100, Configuration.EventExecutor(false), Configuration.RateLimiter(true, 0x100000, 50), diff --git a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt index 9b72364..c98a1f3 100644 --- a/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt +++ b/rbcs-server/src/test/kotlin/net/woggioni/rbcs/server/test/NoAuthServerTest.kt @@ -37,7 +37,6 @@ class NoAuthServerTest : AbstractServerTest() { serverPath, false, emptyList(), - false, 100, Configuration.EventExecutor(false), Configuration.RateLimiter(true, 0x100000, 50), diff --git a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-default.xml b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-default.xml index c36fa12..f83052e 100644 --- a/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-default.xml +++ b/rbcs-server/src/test/resources/net/woggioni/rbcs/server/test/valid/rbcs-default.xml @@ -2,7 +2,7 @@ + path="/my/custom/path">