OpenTelemetry Agent - Containerized Java SpringBoot Installation
Installation Wizard
To help with the installation process, vFunction offers an Installation Wizard. This Wizard provides additional information about the Prerequisites as well as steps for deploying the OpenTelemetry Agent to your environment.
Please contact support@vfunction.com or your vFunction Contact(s) for the password to start using this Wizard.
Installation Steps
- Modify the Application’s Deployment Manifest
- In this example below, only new information relevant to the OpenTelemetry Agent is included in this Deployment Manifest
- In this example, an Init Container would be added to the Manifest that already exists for the “my-app” Application
- During the start of this Init Container, the OpenTelemetry Java Agent JAR is downloaded and placed on the Volume
/otel-home
shared by the Init Container and the Application Container - The OpenTelemetry Agent is hooked into the Application via the
JAVA_TOOL_OPTIONS
- Find-and-replace $PROTOCOL with http or https based on the VF Server configuration
- Find-and-replace
$VF_SERVER_ADDRESS
with the URL for login to your organization’s vFunction Server - Find-and-replace
$VF_APP_ID
with the Application UUID created with the Installation Instructions provided after creating the Distributed Application in the vFunction Server UI
apiVersion: apps/v1
kind: Deployment
...
template:
spec:
initContainers:
- name: otel-installer
command:
- sh
- -c
- |
cd /otel-home \
&& wget -q https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar \
image: alpine:latest
imagePullPolicy: IfNotPresent
resources: {}
volumeMounts:
- mountPath: /otel-home
name: otel-home
containers:
- name: my-app
env:
- name: JAVA_TOOL_OPTIONS
value: "-javaagent:/otel-home/opentelemetry-javaagent.jar -Dotel.exporter.otlp.protocol=http/protobuf -Dotel.exporter.otlp.endpoint=$PROTOCOL://$VF_SERVER_ADDRESS/api/unauth/otlp -Dotel.traces.exporter=otlp -Dotel.exporter.otlp.traces.headers=X-VF-APP=$VF_APP_ID -Dotel.metrics.exporter=none -Dotel.logs.exporter=none"
volumeMounts:
- mountPath: /otel-home
name: otel-home
readOnly: true
volumes:
- emtpyDir:
sizeLimit: 500Mi
name: otel-home
- Build-and-Deploy your Application with the OpenTelemetry Agent hooked into the Application