Upgrade the Collector for Kubernetes and other updates 🔗
The installer script uses one of the supported package managers to install the Collector.
When you update the Collector using the official packages, configuration files are never overridden. If you need to update the configuration after an update, edit them manually before backward compatibility is dropped.
General guidelines 🔗
Apply the following changes to the Collector configuration files for specific version upgrades.
From 0.96.1 to 0.97.0 🔗
memory_ballast
is no longer effective. You can now control garbage collection with a soft memory limit using the SPLUNK_MEMORY_TOTAL_MIB
env var, which is set to 90% of the total memory by default. For more information, see Environment variables.
Follow these steps to ensure your Collector instances work correctly:
If you haven’t customized
memory_ballast
, remove it from the configuration.If you have customized
memory_ballast
usingSPLUNK_BALLAST_SIZE_MIB
(orextensions::memory_ballast::size_mib config
), remove thememory_ballast
extension and use theGOMEMLIMIT
environment variable to set a custom soft memory limit:To increase frequency of garbage collection set
GOMEMLIMIT
to a higher value than the default 90% of total memory.To decrease frequency of garbage collection set
GOMEMLIMIT
to a lower value than the default 90% of total memory.For more information, see Go environment variables .
From 0.68.0 to 0.69.0 🔗
The gke
and gce
resource detectors in the resourcedetection
processor have been replaced with the gcp
resource detector. If you have gke
and gce
detectors configured in the resourcedetection
processor, update your configuration accordingly.
For more information, see Resource detection processor.
From 0.41.0 to 0.42.0 🔗
The Splunk Distribution of the OpenTelemetry Collector used to evaluate user configuration twice and this required escaping of each $
symbol with $$
to prevent unwanted environment variable expansion. The issue was fixed in the 0.42.0 version. Any occurrences of $$
in your configuration need to be replaced with $
.
From 0.35.0 to 0.36.0 🔗
Move the config parameter exporters -> otlp -> insecure
to exporters -> otlp -> tls -> insecure
.
The otlp
exporter configuration must look like this:
exporters:
otlp:
endpoint: "${SPLUNK_GATEWAY_URL}:4317"
tls:
insecure: true
From 0.34.0 to 0.35.0 🔗
Move the ballast_size_mib
parameter from the memory_limiter
processor to the memory_ballast
extension, and rename it to size_mib
.
extensions:
memory_ballast:
size_mib: ${SPLUNK_BALLAST_SIZE_MIB}
Upgrade the Collector for Kubernetes 🔗
To upgrade the Collector for Kubernetes run the following commands:
Use the flag
--reuse-values
to keep the config values you’d already set while installing or using the Collector:
helm upgrade splunk-otel-collector splunk-otel-collector-chart/splunk-otel-collector
--reuse-values
Use
--values config.yaml
to override your previous configuration while upgrading:
helm upgrade splunk-otel-collector --values config.yaml splunk-otel-collector-chart/splunk-otel-collector --reuse-values
Read more in the official Helm upgrade options documentation at https://helm.sh/docs/helm/helm_upgrade/#options .
Update the access token for the Collector for Kubernetes 🔗
Note
Make sure you don’t update your Helm chart or Collector version in the process of updating your access token. See Step 3 for details.
To update the access token for your Collector for Kubernetes instance follow these steps:
Confirm the Helm release name and chart version. To do so, run:
helm list -f <Release_Name>
Optionally, you can check your current access token:
helm get values <Release_Name>
Deploy your new access token with Helm upgrade. This command will only update your access token, but will mantain your current Helm chart and Collector versions.
helm upgrade --reuse-values --version <Current_Chart_Version> --set splunkObservability.accessToken=<New_Access_Token> <Release_Name> splunk-otel-collector-chart/splunk-otel-collectorIf you want to use the latest Helm version instead of your current one, remove
'--version <Current_Chart_Version>'
from the command.
Verify the value of the updated access token:
helm get values <Release_Name>
Restart the Collector’s daemonset and deployments:
If
agent.enabled=true
, restart the Collector’s agent daemonset:kubectl rollout restart daemonset <Release_Name>-agent
If
clusterReceiver.enabled=true
, restart the Collector’s cluster receiver deployment:kubectl rollout restart deployment <Release_Name>-k8s-cluster-receiver
If
gateway.enabled=true
, restart the Collector’s gateway deployment:kubectl rollout restart deployment <Release_Name>
Verify the status of your clusters’ pods:
kubectl get pod -n <Namespace> | grep <Release_Name>