From 0c991dffb29b122320e4fe18a45cfa8efa18a23d Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 12:42:37 +0200 Subject: [PATCH 01/10] Configure OpenTelemetry agent and custom spans --- Dockerfile | 7 +++++++ Railway.dockerfile | 4 +++- build.gradle.kts | 2 ++ gradle/libs.versions.toml | 1 + .../com/github/stickerifier/stickerify/bot/Stickerify.java | 5 +++++ .../github/stickerifier/stickerify/media/MediaHelper.java | 4 ++++ .../stickerifier/stickerify/process/ProcessHelper.java | 2 ++ 7 files changed, 24 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 18d142a4..b8d600cc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,10 @@ FROM eclipse-temurin:26-alpine AS builder WORKDIR /app +# bump: OpenTelemetry /v([\d.]+)/ github:open-telemetry/opentelemetry-java-instrumentation|/^v[\d.]+$/|sort +ADD https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.31.1/opentelemetry-javaagent.jar \ + /app/opentelemetry-agent.jar + # bump: FFmpeg /static-ffmpeg:([\d.]+)/ docker:mwader/static-ffmpeg|/\d+\./|* COPY --from=mwader/static-ffmpeg:9.0.2 /ff* /usr/bin/ @@ -11,7 +15,10 @@ RUN --mount=type=cache,target=/root/.gradle ./gradlew check installDist --no-dae FROM alpine:3.24.2 COPY --from=builder /usr/bin/ff* /usr/bin/ +COPY --from=builder /app/opentelemetry-agent.jar /app/opentelemetry-agent.jar COPY --from=builder /app/build/install/Stickerify/ . +ENV OTEL_SDK_DISABLED=true +ENV JAVA_TOOL_OPTIONS=-javaagent:/app/opentelemetry-agent.jar ENV CONCURRENT_PROCESSES=5 CMD ["./bin/Stickerify"] diff --git a/Railway.dockerfile b/Railway.dockerfile index 06017f82..6cfbbbfb 100644 --- a/Railway.dockerfile +++ b/Railway.dockerfile @@ -1,8 +1,10 @@ ARG DOCKER_TAG=latest +ARG OTEL_SDK_DISABLED=false FROM rob93c/stickerify:$DOCKER_TAG ARG STICKERIFY_TOKEN ARG LOG_LEVEL ARG CONCURRENT_PROCESSES ENV STICKERIFY_TOKEN=$STICKERIFY_TOKEN \ LOG_LEVEL=$LOG_LEVEL \ - CONCURRENT_PROCESSES=$CONCURRENT_PROCESSES + CONCURRENT_PROCESSES=$CONCURRENT_PROCESSES \ + OTEL_SDK_DISABLED=$OTEL_SDK_DISABLED diff --git a/build.gradle.kts b/build.gradle.kts index 25f53c62..2d37370a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -20,6 +20,7 @@ dependencies { implementation(libs.jspecify) implementation(libs.logback.classic) implementation(libs.logstash.logback.encoder) + implementation(libs.opentelemetry.instrumentation.annotations) implementation(libs.telegram.bot.api) implementation(libs.tika) @@ -54,6 +55,7 @@ val jlink = tasks.register("jlink") { modules = listOf( "java.instrument", // for junit "java.naming", // for logback + "java.management", // for OpenTelemetry "java.sql", // for tika "jdk.unsupported" // for gson ) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1afdb7ab..e8d4b1ab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,6 +11,7 @@ junit-platform = { module = "org.junit.platform:junit-platform-launcher", versio logback-classic = "ch.qos.logback:logback-classic:1.6.4" logstash-logback-encoder = "net.logstash.logback:logstash-logback-encoder:9.0" mockwebserver = "com.squareup.okhttp3:mockwebserver3-junit5:5.5.0" +opentelemetry-instrumentation-annotations = "io.opentelemetry.instrumentation:opentelemetry-instrumentation-annotations:2.31.1" telegram-bot-api = "com.github.pengrad:java-telegram-bot-api:10.1.0" tika = "org.apache.tika:tika-core:4.0.0" diff --git a/src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java b/src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java index 3e7cb99a..2908b48c 100644 --- a/src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java +++ b/src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java @@ -34,6 +34,7 @@ import com.pengrad.telegrambot.request.richmessages.SendRichMessage; import com.pengrad.telegrambot.request.richmessages.SendRichMessageDraft; import com.pengrad.telegrambot.response.BaseResponse; +import io.opentelemetry.instrumentation.annotations.WithSpan; import org.jspecify.annotations.Nullable; import org.slf4j.event.Level; @@ -106,6 +107,7 @@ public void close() { bot.shutdown(); } + @WithSpan("bot.answer") private void answer(TelegramRequest request) { LOGGER.at(Level.INFO).log("Received request"); @@ -118,6 +120,7 @@ private void answer(TelegramRequest request) { } } + @WithSpan("bot.answer.file") private void answerFile(TelegramRequest request, TelegramFile file) { if (file == TelegramFile.NOT_SUPPORTED) { answerText(ERROR, request); @@ -163,6 +166,7 @@ private void answerFile(TelegramRequest request, String fileId) { } } + @WithSpan("bot.download_file") private File retrieveFile(String fileId) throws TelegramApiException, FileOperationException { var file = execute(new GetFile(fileId)).file(); @@ -206,6 +210,7 @@ private boolean processTelegramFailure(TelegramApiException e, boolean logUnmatc return replyToUser; } + @WithSpan("bot.answer.text") private void answerText(TelegramRequest request) { var message = request.message(); if (message.text() == null) { diff --git a/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java b/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java index fed451fb..602fa561 100644 --- a/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java +++ b/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java @@ -25,6 +25,7 @@ import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; import com.google.gson.annotations.SerializedName; +import io.opentelemetry.instrumentation.annotations.WithSpan; import org.apache.tika.Tika; import org.jspecify.annotations.Nullable; import org.slf4j.event.Level; @@ -66,6 +67,7 @@ public final class MediaHelper { * @throws Exception either if the file is not supported, if the conversion failed, * or if the current thread is interrupted while converting a video file */ + @WithSpan("media.convert") public static @Nullable File convert(File inputFile) throws Exception { var mimeType = detectMimeType(inputFile); @@ -384,6 +386,7 @@ && isSizeCompliant(imageInfo.width(), imageInfo.height()) * @throws MediaException if an error occurred processing passed-in image * @throws InterruptedException if the current thread is interrupted while converting the file */ + @WithSpan("media.convert.image") private static File convertToWebp(File file) throws MediaException, InterruptedException { var webpImage = createTempFile("webp"); var command = List.of( @@ -465,6 +468,7 @@ private static void deleteFile(File file) throws FileOperationException { * @throws MediaException if file conversion is not successful * @throws InterruptedException if the current thread is interrupted while converting the video file */ + @WithSpan("media.convert.video") private static File convertToWebm(File file) throws MediaException, InterruptedException { var webmVideo = createTempFile("webm"); var logPrefix = webmVideo.getAbsolutePath() + "-passlog"; diff --git a/src/main/java/com/github/stickerifier/stickerify/process/ProcessHelper.java b/src/main/java/com/github/stickerifier/stickerify/process/ProcessHelper.java index c69ed402..d11c5430 100644 --- a/src/main/java/com/github/stickerifier/stickerify/process/ProcessHelper.java +++ b/src/main/java/com/github/stickerifier/stickerify/process/ProcessHelper.java @@ -4,6 +4,7 @@ import com.github.stickerifier.stickerify.exception.ProcessException; import com.github.stickerifier.stickerify.logger.StructuredLogger; +import io.opentelemetry.instrumentation.annotations.WithSpan; import org.slf4j.event.Level; import java.io.IOException; @@ -34,6 +35,7 @@ public final class ProcessHelper { * * @throws InterruptedException if the current thread is interrupted while waiting for the command to finish */ + @WithSpan("process.execute") public static String executeCommand(final List command) throws ProcessException, InterruptedException { SEMAPHORE.acquire(); From 6e4c5eb3c33ccd1787b0b35a71175dca1f042e6e Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 13:02:36 +0200 Subject: [PATCH 02/10] Fix OpenTelemetry flag in Railway.dockerfile --- Railway.dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Railway.dockerfile b/Railway.dockerfile index 6cfbbbfb..3cf830c0 100644 --- a/Railway.dockerfile +++ b/Railway.dockerfile @@ -1,5 +1,4 @@ ARG DOCKER_TAG=latest -ARG OTEL_SDK_DISABLED=false FROM rob93c/stickerify:$DOCKER_TAG ARG STICKERIFY_TOKEN ARG LOG_LEVEL @@ -7,4 +6,4 @@ ARG CONCURRENT_PROCESSES ENV STICKERIFY_TOKEN=$STICKERIFY_TOKEN \ LOG_LEVEL=$LOG_LEVEL \ CONCURRENT_PROCESSES=$CONCURRENT_PROCESSES \ - OTEL_SDK_DISABLED=$OTEL_SDK_DISABLED + OTEL_SDK_DISABLED=false From adac1e624f61d7319919167661c2623e4aef74d7 Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 17:06:55 +0200 Subject: [PATCH 03/10] Move OpenTelemetry retrieval to final docker image --- Dockerfile | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index b8d600cc..95975f5f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,10 +2,6 @@ FROM eclipse-temurin:26-alpine AS builder WORKDIR /app -# bump: OpenTelemetry /v([\d.]+)/ github:open-telemetry/opentelemetry-java-instrumentation|/^v[\d.]+$/|sort -ADD https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.31.1/opentelemetry-javaagent.jar \ - /app/opentelemetry-agent.jar - # bump: FFmpeg /static-ffmpeg:([\d.]+)/ docker:mwader/static-ffmpeg|/\d+\./|* COPY --from=mwader/static-ffmpeg:9.0.2 /ff* /usr/bin/ @@ -14,8 +10,11 @@ RUN --mount=type=cache,target=/root/.gradle ./gradlew check installDist --no-dae FROM alpine:3.24.2 +# bump: OpenTelemetry /v([\d.]+)/ github:open-telemetry/opentelemetry-java-instrumentation|/^v[\d.]+$/|sort +ADD https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.31.1/opentelemetry-javaagent.jar \ + /app/opentelemetry-agent.jar + COPY --from=builder /usr/bin/ff* /usr/bin/ -COPY --from=builder /app/opentelemetry-agent.jar /app/opentelemetry-agent.jar COPY --from=builder /app/build/install/Stickerify/ . ENV OTEL_SDK_DISABLED=true From 0e19fdbc8ea85c2aa25bee6e365de58b8f96fa8e Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 17:07:36 +0200 Subject: [PATCH 04/10] Configure span attributes --- .../github/stickerifier/stickerify/media/MediaHelper.java | 5 +++-- .../stickerifier/stickerify/process/ProcessHelper.java | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java b/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java index 602fa561..3b08431c 100644 --- a/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java +++ b/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java @@ -25,6 +25,7 @@ import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; import com.google.gson.annotations.SerializedName; +import io.opentelemetry.instrumentation.annotations.SpanAttribute; import io.opentelemetry.instrumentation.annotations.WithSpan; import org.apache.tika.Tika; import org.jspecify.annotations.Nullable; @@ -67,7 +68,6 @@ public final class MediaHelper { * @throws Exception either if the file is not supported, if the conversion failed, * or if the current thread is interrupted while converting a video file */ - @WithSpan("media.convert") public static @Nullable File convert(File inputFile) throws Exception { var mimeType = detectMimeType(inputFile); @@ -98,7 +98,8 @@ private static String detectMimeType(File file) throws MediaException { * @throws InterruptedException if the current thread is interrupted while converting a video file * @see MediaHelper#convert(File) */ - private static @Nullable File performConversion(File inputFile, String mimeType) throws MediaException, InterruptedException { + @WithSpan("media.convert") + private static @Nullable File performConversion(File inputFile, @SpanAttribute("mime_type") String mimeType) throws MediaException, InterruptedException { LOGGER.at(Level.DEBUG).log("MIME type successfully detected"); try { diff --git a/src/main/java/com/github/stickerifier/stickerify/process/ProcessHelper.java b/src/main/java/com/github/stickerifier/stickerify/process/ProcessHelper.java index d11c5430..5d1b3c75 100644 --- a/src/main/java/com/github/stickerifier/stickerify/process/ProcessHelper.java +++ b/src/main/java/com/github/stickerifier/stickerify/process/ProcessHelper.java @@ -4,6 +4,7 @@ import com.github.stickerifier.stickerify.exception.ProcessException; import com.github.stickerifier.stickerify.logger.StructuredLogger; +import io.opentelemetry.instrumentation.annotations.SpanAttribute; import io.opentelemetry.instrumentation.annotations.WithSpan; import org.slf4j.event.Level; @@ -36,7 +37,7 @@ public final class ProcessHelper { * @throws InterruptedException if the current thread is interrupted while waiting for the command to finish */ @WithSpan("process.execute") - public static String executeCommand(final List command) throws ProcessException, InterruptedException { + public static String executeCommand(@SpanAttribute("command") final List command) throws ProcessException, InterruptedException { SEMAPHORE.acquire(); try (var process = new ProcessBuilder(command).start()) { From 64f6d40091728cddf6d206ebbc527fd20d5d5062 Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 17:53:33 +0200 Subject: [PATCH 05/10] Fix bump configuration --- Dockerfile | 4 ++-- Railway.dockerfile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 95975f5f..6a934e10 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,14 +10,14 @@ RUN --mount=type=cache,target=/root/.gradle ./gradlew check installDist --no-dae FROM alpine:3.24.2 -# bump: OpenTelemetry /v([\d.]+)/ github:open-telemetry/opentelemetry-java-instrumentation|/^v[\d.]+$/|sort +# bump: OpenTelemetry /opentelemetry-java-instrumentation\/releases\/download\/v([\d.]+)/ git:https://github.com/open-telemetry/opentelemetry-java-instrumentation.git|/\d+\./|* ADD https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.31.1/opentelemetry-javaagent.jar \ /app/opentelemetry-agent.jar COPY --from=builder /usr/bin/ff* /usr/bin/ COPY --from=builder /app/build/install/Stickerify/ . -ENV OTEL_SDK_DISABLED=true +ENV OTEL_SDK_ENABLED=false ENV JAVA_TOOL_OPTIONS=-javaagent:/app/opentelemetry-agent.jar ENV CONCURRENT_PROCESSES=5 CMD ["./bin/Stickerify"] diff --git a/Railway.dockerfile b/Railway.dockerfile index 3cf830c0..648474dc 100644 --- a/Railway.dockerfile +++ b/Railway.dockerfile @@ -6,4 +6,4 @@ ARG CONCURRENT_PROCESSES ENV STICKERIFY_TOKEN=$STICKERIFY_TOKEN \ LOG_LEVEL=$LOG_LEVEL \ CONCURRENT_PROCESSES=$CONCURRENT_PROCESSES \ - OTEL_SDK_DISABLED=false + OTEL_SDK_ENABLED=true From 9f32ebf0648afd677515e09fbff0a94a8c34b58b Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 18:45:17 +0200 Subject: [PATCH 06/10] Configure additional spans to check on compliance validation methods and update existing spans --- .../com/github/stickerifier/stickerify/bot/Stickerify.java | 4 ++-- .../github/stickerifier/stickerify/media/MediaHelper.java | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java b/src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java index 2908b48c..ed0ce675 100644 --- a/src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java +++ b/src/main/java/com/github/stickerifier/stickerify/bot/Stickerify.java @@ -120,7 +120,7 @@ private void answer(TelegramRequest request) { } } - @WithSpan("bot.answer.file") + @WithSpan("bot.answer_file") private void answerFile(TelegramRequest request, TelegramFile file) { if (file == TelegramFile.NOT_SUPPORTED) { answerText(ERROR, request); @@ -210,7 +210,7 @@ private boolean processTelegramFailure(TelegramApiException e, boolean logUnmatc return replyToUser; } - @WithSpan("bot.answer.text") + @WithSpan("bot.answer_text") private void answerText(TelegramRequest request) { var message = request.message(); if (message.text() == null) { diff --git a/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java b/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java index 3b08431c..e5172161 100644 --- a/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java +++ b/src/main/java/com/github/stickerifier/stickerify/media/MediaHelper.java @@ -182,6 +182,7 @@ private static boolean isAnimatedWebp(File file, String mimeType) { * @throws MediaException if an error occurred retrieving video information * @throws InterruptedException if the current thread is interrupted while retrieving file info */ + @WithSpan("media.check_video_compliance") private static boolean isVideoCompliant(File file) throws MediaException, InterruptedException { var mediaInfo = retrieveMultimediaInfo(file); @@ -281,6 +282,7 @@ record FormatInfo(@SerializedName("format_name") String format, @Nullable Float * @return {@code true} if the file is compliant * @throws FileOperationException if an error occurred retrieving the size of the file */ + @WithSpan("media.check_animation_compliance") private static boolean isAnimatedStickerCompliant(File file, String mimeType) throws FileOperationException { if ("application/gzip".equals(mimeType)) { var uncompressedContent = ""; @@ -361,6 +363,7 @@ private static boolean isSupportedImage(String mimeType) { * @throws MediaException if an error occurred retrieving image information * @throws InterruptedException if the current thread is interrupted while retrieving file info */ + @WithSpan("media.check_image_compliance") private static boolean isImageCompliant(File image, String mimeType) throws MediaException, InterruptedException { var mediaInfo = retrieveMultimediaInfo(image); @@ -387,7 +390,7 @@ && isSizeCompliant(imageInfo.width(), imageInfo.height()) * @throws MediaException if an error occurred processing passed-in image * @throws InterruptedException if the current thread is interrupted while converting the file */ - @WithSpan("media.convert.image") + @WithSpan("media.convert_image") private static File convertToWebp(File file) throws MediaException, InterruptedException { var webpImage = createTempFile("webp"); var command = List.of( @@ -469,7 +472,7 @@ private static void deleteFile(File file) throws FileOperationException { * @throws MediaException if file conversion is not successful * @throws InterruptedException if the current thread is interrupted while converting the video file */ - @WithSpan("media.convert.video") + @WithSpan("media.convert_video") private static File convertToWebm(File file) throws MediaException, InterruptedException { var webmVideo = createTempFile("webm"); var logPrefix = webmVideo.getAbsolutePath() + "-passlog"; From 5511a184dc13a1cb9a46b2c0ff00d705963ecfd7 Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 20:09:58 +0200 Subject: [PATCH 07/10] Revert open telemetry feature flag name --- Dockerfile | 2 +- Railway.dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6a934e10..3d3e04b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,7 @@ ADD https://github.com/open-telemetry/opentelemetry-java-instrumentation/release COPY --from=builder /usr/bin/ff* /usr/bin/ COPY --from=builder /app/build/install/Stickerify/ . -ENV OTEL_SDK_ENABLED=false +ENV OTEL_SDK_DISABLED=true ENV JAVA_TOOL_OPTIONS=-javaagent:/app/opentelemetry-agent.jar ENV CONCURRENT_PROCESSES=5 CMD ["./bin/Stickerify"] diff --git a/Railway.dockerfile b/Railway.dockerfile index 648474dc..3cf830c0 100644 --- a/Railway.dockerfile +++ b/Railway.dockerfile @@ -6,4 +6,4 @@ ARG CONCURRENT_PROCESSES ENV STICKERIFY_TOKEN=$STICKERIFY_TOKEN \ LOG_LEVEL=$LOG_LEVEL \ CONCURRENT_PROCESSES=$CONCURRENT_PROCESSES \ - OTEL_SDK_ENABLED=true + OTEL_SDK_DISABLED=false From 2cfae02c02ffa600333fceaea2293415ab99d573 Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 20:23:19 +0200 Subject: [PATCH 08/10] Align case between dependency names --- build.gradle.kts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 2d37370a..aa283d14 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -53,11 +53,11 @@ val jlink = tasks.register("jlink") { options = listOf("--strip-debug", "--no-header-files", "--no-man-pages", "--ignore-modified-runtime") modules = listOf( - "java.instrument", // for junit - "java.naming", // for logback + "java.instrument", // for JUnit + "java.naming", // for Logback "java.management", // for OpenTelemetry - "java.sql", // for tika - "jdk.unsupported" // for gson + "java.sql", // for Tika + "jdk.unsupported" // for Gson ) includeModulePath = false javaCompiler = javaToolchains.compilerFor(java.toolchain) From 0733f0e90de0a9cbcfbb4d8712051827fa653877 Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 21:58:40 +0200 Subject: [PATCH 09/10] Disable OpenTelemetry's metrics and logs exporter --- Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dockerfile b/Dockerfile index 3d3e04b1..70693283 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,8 @@ COPY --from=builder /usr/bin/ff* /usr/bin/ COPY --from=builder /app/build/install/Stickerify/ . ENV OTEL_SDK_DISABLED=true +ENV OTEL_METRICS_EXPORTER=none +ENV OTEL_LOGS_EXPORTER=none ENV JAVA_TOOL_OPTIONS=-javaagent:/app/opentelemetry-agent.jar ENV CONCURRENT_PROCESSES=5 CMD ["./bin/Stickerify"] From 595c8ed8deef57dd85e41b3958fdcd98a91b29b0 Mon Sep 17 00:00:00 2001 From: Roberto Cella Date: Sat, 26 Sep 2026 22:20:27 +0200 Subject: [PATCH 10/10] Disable OpenTelemetry logs --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 70693283..c445c4aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,7 @@ COPY --from=builder /app/build/install/Stickerify/ . ENV OTEL_SDK_DISABLED=true ENV OTEL_METRICS_EXPORTER=none ENV OTEL_LOGS_EXPORTER=none +ENV OTEL_JAVAAGENT_LOGGING=none ENV JAVA_TOOL_OPTIONS=-javaagent:/app/opentelemetry-agent.jar ENV CONCURRENT_PROCESSES=5 CMD ["./bin/Stickerify"]