Add opentelemetry instrumentation 35/143435/2 master
authorFiete Ostkamp <fiete.ostkamp@telekom.de>
Tue, 3 Mar 2026 14:23:19 +0000 (15:23 +0100)
committerFiete Ostkamp <fiete.ostkamp@telekom.de>
Tue, 3 Mar 2026 14:38:03 +0000 (15:38 +0100)
- use otel java agent for java/kotlin services
- use python instrumentation for py-executor and command-executor
- configuration of this will be done by the chart

Issue-ID: CCSDK-4150
Change-Id: I14f9e2cd8fc6eba079bd049c7b874e858956cf4d
Signed-off-by: Fiete Ostkamp <fiete.ostkamp@telekom.de>
docs/api-reference/bp-processor.rst
ms/blueprintsprocessor/application/src/main/docker/Dockerfile
ms/blueprintsprocessor/application/src/main/docker/startService.sh
ms/command-executor/src/main/docker/Dockerfile
ms/command-executor/src/main/docker/start.sh
ms/py-executor/docker/Dockerfile
ms/py-executor/docker/start.sh
ms/sdclistener/distribution/src/main/docker/Dockerfile
ms/sdclistener/distribution/src/main/docker/startService.sh

index cd9d671..590aa06 100644 (file)
@@ -153,9 +153,10 @@ HTTP Status 202 OK
 API Reference
 --------------
 
-
-
-.. swaggerv2doc:: media/cds-bp-processor-api-swagger.json
+The full API reference is available in the swagger file provided in the `Download`_ section above.
+You can explore the API interactively by importing the swagger file into tools such as
+`Swagger UI <https://swagger.io/tools/swagger-ui/>`_ or
+`Postman <https://www.postman.com/>`_.
 
 
 
index 2bbcda9..3811052 100755 (executable)
@@ -9,12 +9,16 @@ COPY *.sh /opt/app/onap/blueprints-processor/
 # add application
 COPY @project.build.finalName@-@assembly.id@.tar.gz /source.tar.gz
 
+ARG OTEL_AGENT_VERSION=2.25.0
+
 RUN tar -xzf /source.tar.gz -C /tmp \
  && cp -rf /tmp/@project.build.finalName@/opt / \
  && rm -rf /source.tar.gz \
  && rm -rf /tmp/@project.build.finalName@ \
  && mkdir -p /opt/app/onap/blueprints/deploy \
  && touch /velocity.log \
+ && wget -q -O /opt/app/onap/opentelemetry-javaagent.jar \
+    "https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OTEL_AGENT_VERSION}/opentelemetry-javaagent.jar" \
  && chown -R onap:onap /opt /velocity.log \
  && chmod -R 755 /opt /velocity.log
 
index ff6471b..d947d57 100755 (executable)
@@ -10,9 +10,10 @@ export APP_HOME=/opt/app/onap
 #[[ - $APP_CONFIG_HOME/${PRIVATE_CA} ]] && keytool -import -noprompt -trustcacerts -keystore $JAVA_HOME/lib/security/cacerts -storepass ${TRUSTSTORE_PASSWD} -alias ${PRIVATE_CA} -file $APP_CONFIG_HOME/${PRIVATE_CA}
 
 #Instead of above, using cert-initializer truststore to replace the default java cacerts
-[[ -f $AAF_CREDSPATH/truststoreONAPall.jks ]] && cp $AAF_CREDSPATH/truststoreONAPall.jks $JAVA_HOME/lib/security/cacerts 
+[[ -f $AAF_CREDSPATH/truststoreONAPall.jks ]] && cp $AAF_CREDSPATH/truststoreONAPall.jks $JAVA_HOME/lib/security/cacerts
 
-exec java -classpath "/etc:${APP_HOME}/lib/*:/lib/*:/src:/schema:/generated-sources:${APP_CONFIG_HOME}:${APP_HOME}" \
+exec java -javaagent:/opt/app/onap/opentelemetry-javaagent.jar \
+-classpath "/etc:${APP_HOME}/lib/*:/lib/*:/src:/schema:/generated-sources:${APP_CONFIG_HOME}:${APP_HOME}" \
 -DappName=${APP_NAME} -DappVersion=${BUNDLEVERSION} \
 -DrouteOffer=${ROUTEOFFER} \
 -DVERSION_ROUTEOFFER_ENVCONTEXT=${BUNDLEVERSION}/${STICKYSELECTORKEY}/${ENVCONTEXT} \
index 7704a20..8405fe8 100644 (file)
@@ -18,7 +18,8 @@ RUN tar -xzf /source.tar.gz -C /tmp \
     && chmod -R 755 /opt \
     && apt-get update && apt-get install -y procps iputils-ping curl telnet && rm -rf /var/lib/apt/lists/* \
     && python -m pip install --no-cache-dir --upgrade pip setuptools \
-    && pip install --no-cache-dir requests==2.26.0 grpcio==1.20.0 grpcio-tools==1.20.0 virtualenv==16.7.9 prometheus-client==0.11.0 protobuf==3.20.1
+    && pip install --no-cache-dir requests==2.26.0 grpcio==1.20.0 grpcio-tools==1.20.0 virtualenv==16.7.9 prometheus-client==0.11.0 protobuf==3.20.1 \
+    && pip install --no-cache-dir opentelemetry-distro==0.40b0 opentelemetry-exporter-otlp-proto-http==1.19.0
 
 USER onap
 ENTRYPOINT /opt/app/onap/command-executor/start.sh
index d49adf7..46bf789 100755 (executable)
@@ -52,4 +52,4 @@ then
 fi
 
 cd /opt/app/onap/python/
-python server.py ${APP_PORT} ${BASIC_AUTH}
+opentelemetry-instrument python server.py ${APP_PORT} ${BASIC_AUTH}
index 74e6f5f..a2c43b8 100644 (file)
@@ -20,5 +20,7 @@ RUN tar -xzf /source.tar.gz -C /tmp \
 RUN python -m pip install --no-cache-dir --upgrade pip setuptools
 RUN pip install --no-cache-dir -r /opt/app/onap/python/requirements/docker.txt
 
+RUN pip install --no-cache-dir opentelemetry-distro==0.40b0 opentelemetry-exporter-otlp-proto-http==1.19.0
+
 USER onap
 ENTRYPOINT /opt/app/onap/py-executor/start.sh
index 2fe1267..9b0cd1e 100755 (executable)
@@ -64,4 +64,4 @@ fi
 
 
 cd /opt/app/onap/python/
-python server.py
+opentelemetry-instrument python server.py
index 65bc2ed..2b49db7 100755 (executable)
@@ -10,11 +10,15 @@ COPY *.sh /opt/app/onap/sdc-listener/
 # add application
 COPY @project.build.finalName@-@assembly.id@.tar.gz /source.tar.gz
 
+ARG OTEL_AGENT_VERSION=2.25.0
+
 RUN tar -xzf /source.tar.gz -C /tmp \
  && cp -rf /tmp/@project.build.finalName@/opt / \
  && rm -rf /source.tar.gz \
  && rm -rf /tmp/@project.build.finalName@ \
  && mkdir -p /opt/app/onap/cds-sdc-listener \
+ && wget -q -O /opt/app/onap/opentelemetry-javaagent.jar \
+    "https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v${OTEL_AGENT_VERSION}/opentelemetry-javaagent.jar" \
  && chown -R onap:onap /opt \
  && chmod -R 755 /opt
 
index 7ad6171..d174ce5 100755 (executable)
@@ -5,7 +5,8 @@ export APP_HOME=/opt/app/onap
 export APP_CONFIG_HOME=${APP_HOME}/config
 echo "APP Config HOME : ${APP_CONFIG_HOME}"
 
-java -classpath "/etc:${APP_HOME}/lib/*:/lib/*:/src:/schema:/generated-sources:${APP_CONFIG_HOME}:${APP_HOME}" \
+java -javaagent:/opt/app/onap/opentelemetry-javaagent.jar \
+-classpath "/etc:${APP_HOME}/lib/*:/lib/*:/src:/schema:/generated-sources:${APP_CONFIG_HOME}:${APP_HOME}" \
 -Dlogging.config=${APP_CONFIG_HOME}/logback.xml \
 -Djava.security.egd=file:/dev/./urandom \
 -Dspring.config.location=${APP_CONFIG_HOME}/ \