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
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 / /
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"