From 74b5edf5c4bb4bb93936a7d5173fc6db27546be2 Mon Sep 17 00:00:00 2001 From: Fiete Ostkamp Date: Mon, 9 Feb 2026 16:43:31 +0100 Subject: [PATCH] Add opentelemetry tracing - 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: SDNC-1859 Change-Id: Ie80d352bfc664bfbdd9d06b031fcb03af375b824 Signed-off-by: Fiete Ostkamp --- installation/sdnc/src/main/docker/Dockerfile | 8 +++++++- installation/sdnc/src/main/scripts/startODL.sh | 24 ++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/installation/sdnc/src/main/docker/Dockerfile b/installation/sdnc/src/main/docker/Dockerfile index 90b355cc..26b22ca1 100755 --- a/installation/sdnc/src/main/docker/Dockerfile +++ b/installation/sdnc/src/main/docker/Dockerfile @@ -75,6 +75,11 @@ RUN cp /opt/onap/sdnc/data/properties/svclogic-compiler.properties /opt/onap/sdn RUN apk add zip RUN find /opt/opendaylight/system/org/ops4j/pax/logging/pax-logging-log4j2 -name 'pax-logging-log4j2*.jar' -exec zip -q -d '{}' org/apache/logging/log4j/core/lookup/JndiLookup.class \; +# Download OpenTelemetry Java agent +ENV OTEL_AGENT_VERSION=2.24.0 +RUN mkdir -p /opt/opentelemetry && \ + wget -O /opt/opentelemetry/opentelemetry-javaagent.jar \ + https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OTEL_AGENT_VERSION}/opentelemetry-javaagent.jar # Changing ownership and permission of /opt RUN chown -R odl:odl /opt && chmod -R 755 /opt @@ -96,7 +101,8 @@ ENV LC_ALL=en_US.UTF-8 \ ODL_HOME=/opt/opendaylight/current \ SDNC_CONFIG_DIR=/opt/onap/sdnc/data/properties \ SDNC_KEYSTORE=${sdnc.keystore} \ - SDNC_KEYPASS=${sdnc.keypass} + SDNC_KEYPASS=${sdnc.keypass} \ + OTEL_JAVAAGENT_PATH=/opt/opentelemetry/opentelemetry-javaagent.jar # Copy Everything from stage0 COPY --from=stage0 / / diff --git a/installation/sdnc/src/main/scripts/startODL.sh b/installation/sdnc/src/main/scripts/startODL.sh index 2d9f7499..8c2a39af 100755 --- a/installation/sdnc/src/main/scripts/startODL.sh +++ b/installation/sdnc/src/main/scripts/startODL.sh @@ -294,6 +294,30 @@ if $JDEBUG ; then export EXTRA_JAVA_OPTS fi +# Enable OpenTelemetry Java agent if configured +if [ -n "$OTEL_JAVAAGENT_PATH" ] && [ -f "$OTEL_JAVAAGENT_PATH" ]; then + printf "Enabling OpenTelemetry Java agent\n" + EXTRA_JAVA_OPTS="${EXTRA_JAVA_OPTS} -javaagent:${OTEL_JAVAAGENT_PATH}" + + # Set default OTEL configuration if not already set + if [ -z "$OTEL_SERVICE_NAME" ]; then + export OTEL_SERVICE_NAME="sdnc" + fi + if [ -z "$OTEL_TRACES_EXPORTER" ]; then + export OTEL_TRACES_EXPORTER="otlp" + fi + if [ -z "$OTEL_METRICS_EXPORTER" ]; then + export OTEL_METRICS_EXPORTER="none" + fi + if [ -z "$OTEL_LOGS_EXPORTER" ]; then + export OTEL_LOGS_EXPORTER="none" + fi + + export EXTRA_JAVA_OPTS + printf " OTEL_JAVAAGENT_PATH=%s\n" "$OTEL_JAVAAGENT_PATH" + printf " OTEL_SERVICE_NAME=%s\n" "$OTEL_SERVICE_NAME" + printf " OTEL_EXPORTER_OTLP_ENDPOINT=%s\n" "$OTEL_EXPORTER_OTLP_ENDPOINT" +fi printf "Settings:\n" printf "%s\n" " SDNC_BIN=$SDNC_BIN" -- 2.16.6