From 075eb3aec613866cdd19a44c03875083ecc16ed6 Mon Sep 17 00:00:00 2001 From: Fiete Ostkamp Date: Fri, 13 Feb 2026 15:45:16 +0100 Subject: [PATCH] Add otel agent - enhance the Dockerfile to configure the opentelemetry java agent - the otel agent can be configured via environment variables [1][2] [1] [Environment Variable Specification](https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/) [2] [Exporter Environment Variables](https://opentelemetry.io/docs/specs/otel/protocol/exporter/#configuration-options) Issue-ID: SO-4236 Change-Id: I53bbfe10dc5f13ac4b466faad41f9f8c91646035 Signed-off-by: Fiete Ostkamp --- .../src/main/docker/docker-files/Dockerfile.so-app | 5 +++++ .../docker/docker-files/Dockerfile.so-cnfm-app | 5 +++++ .../main/docker/docker-files/scripts/start-app.sh | 24 ++++++++++++++++++++-- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.so-app b/packages/docker/src/main/docker/docker-files/Dockerfile.so-app index dc86ff8..2aa6f8f 100644 --- a/packages/docker/src/main/docker/docker-files/Dockerfile.so-app +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.so-app @@ -13,6 +13,11 @@ RUN mkdir -p /app/certificates RUN mkdir -p /app/logs RUN mkdir -p /app/ca-certificates +# This can basically always be the latest version +ARG OTEL_AGENT_VERSION=2.25.0 +RUN wget -O /app/opentelemetry-javaagent.jar \ + https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OTEL_AGENT_VERSION}/opentelemetry-javaagent.jar + COPY maven/app.jar /app COPY configs/logging/logback-spring.xml /app COPY scripts/start-app.sh /app diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.so-cnfm-app b/packages/docker/src/main/docker/docker-files/Dockerfile.so-cnfm-app index eb85e3b..ed25056 100644 --- a/packages/docker/src/main/docker/docker-files/Dockerfile.so-cnfm-app +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.so-cnfm-app @@ -17,6 +17,11 @@ RUN mkdir -p /app/ca-certificates RUN mkdir -p /app/csar RUN mkdir -p /app/kube-configs +# This can basically always be the latest version +ARG OTEL_AGENT_VERSION=2.25.0 +RUN wget -O /app/opentelemetry-javaagent.jar \ + https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OTEL_AGENT_VERSION}/opentelemetry-javaagent.jar + COPY maven/app.jar /app COPY configs/logging/logback-spring.xml /app COPY scripts/start-app.sh /app diff --git a/packages/docker/src/main/docker/docker-files/scripts/start-app.sh b/packages/docker/src/main/docker/docker-files/scripts/start-app.sh index 618d55f..cec20b5 100755 --- a/packages/docker/src/main/docker/docker-files/scripts/start-app.sh +++ b/packages/docker/src/main/docker/docker-files/scripts/start-app.sh @@ -60,7 +60,27 @@ if [ -z "${ACTIVE_PROFILE}" ]; then export ACTIVE_PROFILE="basic" fi -jvmargs="${JVM_ARGS} -Dspring.profiles.active=${ACTIVE_PROFILE} -Djava.security.egd=file:/dev/./urandom -Dlogs_dir=${LOG_PATH} -Dlogging.config=/app/logback-spring.xml $jksargs -Dspring.config.additional-location=$CONFIG_PATH ${SSL_DEBUG} ${DISABLE_SNI}" +# Configure OpenTelemetry Java Agent +otel_agent_args="" +if [ "${OTEL_ENABLED}" = "true" ] && [ -f "/app/opentelemetry-javaagent.jar" ]; then + otel_agent_args="-javaagent:/app/opentelemetry-javaagent.jar" + echo "OpenTelemetry agent enabled" + + # Set default OTEL service name if not provided + if [ -z "${OTEL_SERVICE_NAME}" ]; then + export OTEL_SERVICE_NAME="${APP:-so-cnf-adapter}" + fi + + # Set default OTEL resource attributes + if [ -z "${OTEL_RESOURCE_ATTRIBUTES}" ]; then + export OTEL_RESOURCE_ATTRIBUTES="service.name=${OTEL_SERVICE_NAME},service.namespace=onap" + fi + + echo "OpenTelemetry Service Name: ${OTEL_SERVICE_NAME}" + echo "OpenTelemetry Exporter Endpoint: ${OTEL_EXPORTER_OTLP_ENDPOINT:-not set}" +fi + +jvmargs="${otel_agent_args} ${JVM_ARGS} -Dspring.profiles.active=${ACTIVE_PROFILE} -Djava.security.egd=file:/dev/./urandom -Dlogs_dir=${LOG_PATH} -Dlogging.config=/app/logback-spring.xml $jksargs -Dspring.config.additional-location=$CONFIG_PATH ${SSL_DEBUG} ${DISABLE_SNI}" read_properties(){ @@ -92,4 +112,4 @@ if [ ! -z "${EXIT_DELAY}" -a "${EXIT_DELAY}" != 0 ]; then sleep $EXIT_DELAY fi -exit $rc \ No newline at end of file +exit $rc -- 2.16.6