Add otel agent 11/143311/1
authorFiete Ostkamp <fiete.ostkamp@telekom.de>
Fri, 13 Feb 2026 14:45:16 +0000 (15:45 +0100)
committerFiete Ostkamp <fiete.ostkamp@telekom.de>
Fri, 13 Feb 2026 14:48:06 +0000 (15:48 +0100)
- 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 <fiete.ostkamp@telekom.de>
packages/docker/src/main/docker/docker-files/Dockerfile.so-app
packages/docker/src/main/docker/docker-files/Dockerfile.so-cnfm-app
packages/docker/src/main/docker/docker-files/scripts/start-app.sh

index dc86ff8..2aa6f8f 100644 (file)
@@ -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
index eb85e3b..ed25056 100644 (file)
@@ -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
index 618d55f..cec20b5 100755 (executable)
@@ -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