From: Fiete Ostkamp Date: Tue, 3 Mar 2026 14:23:19 +0000 (+0100) Subject: Add opentelemetry instrumentation X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=6936ade9de0e78a03f0843cb6a47d2cd789e792d;p=ccsdk%2Fcds.git Add opentelemetry instrumentation - 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 --- diff --git a/docs/api-reference/bp-processor.rst b/docs/api-reference/bp-processor.rst index cd9d671b4..590aa06a6 100644 --- a/docs/api-reference/bp-processor.rst +++ b/docs/api-reference/bp-processor.rst @@ -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 `_ or +`Postman `_. diff --git a/ms/blueprintsprocessor/application/src/main/docker/Dockerfile b/ms/blueprintsprocessor/application/src/main/docker/Dockerfile index 2bbcda976..381105234 100755 --- a/ms/blueprintsprocessor/application/src/main/docker/Dockerfile +++ b/ms/blueprintsprocessor/application/src/main/docker/Dockerfile @@ -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 diff --git a/ms/blueprintsprocessor/application/src/main/docker/startService.sh b/ms/blueprintsprocessor/application/src/main/docker/startService.sh index ff6471b97..d947d57f7 100755 --- a/ms/blueprintsprocessor/application/src/main/docker/startService.sh +++ b/ms/blueprintsprocessor/application/src/main/docker/startService.sh @@ -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} \ diff --git a/ms/command-executor/src/main/docker/Dockerfile b/ms/command-executor/src/main/docker/Dockerfile index 7704a20a5..8405fe8d5 100644 --- a/ms/command-executor/src/main/docker/Dockerfile +++ b/ms/command-executor/src/main/docker/Dockerfile @@ -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 diff --git a/ms/command-executor/src/main/docker/start.sh b/ms/command-executor/src/main/docker/start.sh index d49adf7a5..46bf7899e 100755 --- a/ms/command-executor/src/main/docker/start.sh +++ b/ms/command-executor/src/main/docker/start.sh @@ -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} diff --git a/ms/py-executor/docker/Dockerfile b/ms/py-executor/docker/Dockerfile index 74e6f5f0b..a2c43b83d 100644 --- a/ms/py-executor/docker/Dockerfile +++ b/ms/py-executor/docker/Dockerfile @@ -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 diff --git a/ms/py-executor/docker/start.sh b/ms/py-executor/docker/start.sh index 2fe1267b5..9b0cd1ebd 100755 --- a/ms/py-executor/docker/start.sh +++ b/ms/py-executor/docker/start.sh @@ -64,4 +64,4 @@ fi cd /opt/app/onap/python/ -python server.py +opentelemetry-instrument python server.py diff --git a/ms/sdclistener/distribution/src/main/docker/Dockerfile b/ms/sdclistener/distribution/src/main/docker/Dockerfile index 65bc2ed21..2b49db78d 100755 --- a/ms/sdclistener/distribution/src/main/docker/Dockerfile +++ b/ms/sdclistener/distribution/src/main/docker/Dockerfile @@ -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 diff --git a/ms/sdclistener/distribution/src/main/docker/startService.sh b/ms/sdclistener/distribution/src/main/docker/startService.sh index 7ad6171b8..d174ce5cd 100755 --- a/ms/sdclistener/distribution/src/main/docker/startService.sh +++ b/ms/sdclistener/distribution/src/main/docker/startService.sh @@ -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}/ \