Install the Collector for Kubernetes using Helm
Describes how to install the Splunk Distribution of OpenTelemetry Collector for Kubernetes.
You can install the Splunk Distribution of the OpenTelemetry Collector for Kubernetes using a Helm chart to define, install, and upgrade Kubernetes applications.
Use the Helm chart to do the following:
-
Create a Kubernetes DaemonSet along with other Kubernetes objects in a Kubernetes cluster.
-
Receive, process, and export metric, trace, and log data for Splunk Enterprise, Splunk Cloud Platform, and Splunk Observability Cloud.
To learn more about the Collector for Kubernetes Helm chart, see:
Supported Kubernetes distributions
The Helm chart works with default configurations of the main Kubernetes distributions. Use actively supported versions:
- Minikube. This distribution was made for local developers and is not meant to be used in production.
Minikube was created to spin up various past versions of Kubernetes.
Minikube versions don’t necessarily align with Kubernetes versions. For example, the Minikube v1.27.1 releases notes state the default Kubernetes version was bumped to v1.25.2.
While the chart should work for other Kubernetes distributions, the default values.yaml configuration file could require additional updates.
Prerequisites
You need the following resources to use the chart:
-
Helm 3 . Helm 2 is not supported. For more information on the version skew supported between Helm and Kubernetes see Helm Version Support Policy .
-
Administrator access to your Kubernetes cluster.
Prerequisites: Destination
The Collector for Kubernetes requires a destination: Splunk Enterprise or Splunk Cloud Platform (splunkPlatform
) or Splunk Observability Cloud (splunkObservability
).
Depending on your destination, you need:
-
To send data to
splunkPlatform
:-
Splunk Enterprise 8.0 or higher.
-
A minimum of one Splunk platform index ready to collect the log data. This index is used for ingesting logs.
-
An HTTP Event Collector (HEC) token and endpoint. See Set up and use HTTP Event Collector in Splunk Web and Scale HTTP Event Collector .
-
splunkPlatform.endpoint
. URL to a Splunk instance, for example:"http://localhost:8088/services/collector"
. -
splunkPlatform.token
. Splunk HTTP Event Collector token.
-
-
To send data to
splunkObservability
:-
splunkObservability.accessToken
. Your Splunk Observability Cloud org access token with ingest authorization scope. See Create and manage organization access tokens using Splunk Observability Cloud. -
splunkObservability.realm
. Splunk realm to send telemetry data to. The default isus0
. See realms .
-
main
as the default Splunk platform index. You can use annotations to send data to different indexes. See Send logs to different indexes for more information.Deploy the Helm chart
Run the following commands to deploy the Helm chart:
-
Add the Helm repo:
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
-
Determine your destination.
For Splunk Observability Cloud:
helm install my-splunk-otel-collector --set="splunkObservability.realm=us0,splunkObservability.accessToken=xxxxxx,clusterName=my-cluster" splunk-otel-collector-chart/splunk-otel-collector
For Splunk Enterprise or Splunk Cloud Platform:
helm install my-splunk-otel-collector --set="splunkPlatform.endpoint=https://127.0.0.1:8088/services/collector,splunkPlatform.token=xxxxxx,splunkPlatform.metricsIndex=k8s-metrics,splunkPlatform.index=main,clusterName=my-cluster" splunk-otel-collector-chart/splunk-otel-collector
For both Splunk Observability Cloud and Splunk Enterprise or Splunk Cloud Platform:
helm install my-splunk-otel-collector --set="splunkPlatform.endpoint=https://127.0.0.1:8088/services/collector,splunkPlatform.token=xxxxxx,splunkPlatform.metricsIndex=k8s-metrics,splunkPlatform.index=main,splunkObservability.realm=us0,splunkObservability.accessToken=xxxxxx,clusterName=my-cluster" splunk-otel-collector-chart/splunk-otel-collector
-
Specify a namespace to deploy the chart to with the
-n
argument:helm -n otel install my-splunk-otel-collector -f values.yaml splunk-otel-collector-chart/splunk-otel-collector
Configure other parameters
You can configure the following:
For example:
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
helm install my-splunk-otel-collector --set="splunkRealm=us0,splunkAccessToken=xxxxxx,clusterName=my-cluster" --set=distribution={value},cloudProvider={value} splunk-otel-collector-chart/splunk-otel-collector
-
Read more about Configure the Collector for Kubernetes with Helm and also the advanced Kubernetes config.
-
See examples of Helm chart configuration for additional chart installation examples or upgrade commands to change the default behavior.
-
Set
isWindows
totrue
to apply the Kubernetes cluster with Windows worker nodes. -
For logs, see Collect logs and events with the Collector for Kubernetes.
Set Helm using a YAML file
You can also set Helm values as arguments using a YAML file. For example, after creating a YAML file named my_values.yaml, run the following command to deploy the Helm chart:
helm install my-splunk-otel-collector --values my_values.yaml splunk-otel-collector-chart/splunk-otel-collector
Set Prometheus metrics
Set the Collector to automatically scrape any pod emitting Prometheus by adding this property to the Helm chart’s values YAML:
autodetect:
prometheus: true
Add this configuration in the resources file for any pods in the deployment:
metadata:
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: /metrics
prometheus.io/port: "8080"
Verify the deployment
If the chart is deployed successfully, the output displays a message informing that the Splunk Distribution of the OpenTelemetry Collector for Kubernetes is being deployed in your Kubernetes cluster, the last deployment date, and the status.
Use the Kubernetes Operator in OpenTelemetry
Using the Splunk Helm chart, you can install the Splunk Collector along with an upstream OpenTelemetry Kubernetes Operator for zero-code instrumentation. For more information, see Automatic discovery for Kubernetes.
This instance of the Kubernetes Operator is part of the upstream OpenTelemetry Operator project. See the OpenTelemetry Operator documentation in GitHub for more information.
Next steps
After installing the package you can: