Set up zero-code instrumentation
Set up zero-code instrumentation for applications, with additional settings for Secure Application.
Use this workflow to instrument Java, Node.js, and Python applications that run on Kubernetes. This workflow sets up the Splunk Distribution of OpenTelemetry Collector Helm chart and the OpenTelemetry Operator to inject instrumentation into an application that runs on Kubernetes and is mostly the same for both new applications and applications that are already Operator-instrumented for Splunk APM, with the only difference being the application annotation step.
Before you begin
Confirm that your application meets the instrumentation requirements:
- Java
-
-
If you want to monitor attacks, confirm that your applications run on Java versions 8 through 23. Java 24 and higher aren't universally supported.
- Node.js
- Use the standard Node.js instrumentation image version 4.7.0 or later.
- Python
- No Python-specific preparation is required. The Helm chart automatically configures Python auto-instrumentation during the setup steps below.
Setup
-
Add the Helm repository:
BASHhelm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart -
Ensure the Helm repository is up to date:
BASHhelm repo update -
Do non-language-specific Kubernetes Helm/Operator setup: Follow the instructions in Zero-code instrumentation for back-end applications in Kubernetes with these important modifications:
-
Add
splunkObservability.secureAppEnabled: trueto your values.yaml. For example:YAML# Your Splunk Observability Cloud realm and access token splunkObservability: realm: <splunk_realm> accessToken: <splunk_access_token> secureAppEnabled: true ... -
If you've activated zero-configuration instrumentation already for this application, or if the collector release already exists for any other reason, replace the
helm installcommand withhelm upgrade --installin the reference page's example.
-
-
Do language-specific setup:
- Java
-
To collect attack events from a Java application, add the
-Dargento.allow.security.events=trueflag to the JVM arguments for your application:-
If your application already sets
JAVA_TOOL_OPTIONS, append the flag to the existing value.YAMLenv: - name: JAVA_TOOL_OPTIONS value: "<existing-java-tool-options> -Dargento.allow.security.events=true" -
If your application doesn't already set
JAVA_TOOL_OPTIONS, set the value to-Dargento.allow.security.events=true.
-
- Node.js
- No setup required.
- Python
- No setup required.