Upgrade k8s-infra OpenTelemetry collection agent to v0.16.0

SigNoz Cloud - This page applies to SigNoz Cloud editions.
Self-Host - This page applies to self-hosted SigNoz editions.

This guide walks you through upgrading your k8s-infra Helm chart to version 0.16.0, which changes the default OTLP exporter from gRPC to HTTP.

What's New in v0.16.0

  • OTLP/HTTP is the default exporter. presets.otlphttpExporter.enabled now defaults to true and presets.otlpExporter.enabled to false. OTLP/HTTP works more reliably across load balancers, ingresses, and proxies than gRPC, and is now the recommended protocol for sending telemetry to SigNoz Cloud and self-hosted SigNoz.
  • Autogenerated endpoint port updated. When otelCollectorEndpoint is not set (typical when k8s-infra is installed as a sub-chart of signoz), the chart now resolves to the OTLP/HTTP port 4318 instead of 4317.

Breaking Change

If you set otelCollectorEndpoint to a gRPC endpoint (e.g., <host>:4317 or ingest.<region>.signoz.cloud:443 without https://), the chart will now send OTLP/HTTP to that endpoint and the export will fail. You must either update the endpoint to OTLP/HTTP, or explicitly opt back into gRPC.

Prerequisites

  • A SigNoz backend (SigNoz Cloud or self-hosted) to receive OpenTelemetry data
  • K8s-infra OpenTelemetry collection agent installed in your Kubernetes Cluster
  • A backup of your current k8s-infra Helm chart configuration file (usually values.yaml)

Upgrade Process

Pick the scenario that matches your current setup.

Scenario 1: Custom otelCollectorEndpoint (SigNoz Cloud or self-hosted)

If you set otelCollectorEndpoint explicitly, you must update it to the OTLP/HTTP endpoint.

Step 1: Update Helm Repository

helm repo update signoz

Step 2: Update Your Values File

For SigNoz Cloud:

values.yaml
- otelCollectorEndpoint: ingest.<region>.signoz.cloud:443
+ otelCollectorEndpoint: https://ingest.<region>.signoz.cloud:443

For self-hosted SigNoz:

values.yaml
- otelCollectorEndpoint: <IP-or-Endpoint-of-SigNoz-OtelCollector>:4317
+ otelCollectorEndpoint: http://<IP-or-Endpoint-of-SigNoz-OtelCollector>:4318

If you previously set the exporter presets explicitly, update them too:

values.yaml
  presets:
-   otlpExporter:
-     enabled: true
+   otlphttpExporter:
+     enabled: true

Step 3: Run the Upgrade

helm upgrade <RELEASE_NAME> signoz/k8s-infra \
  -n <NAMESPACE> \
  -f your-values.yaml

Step 4: Verify the Upgrade

kubectl get pods -n <NAMESPACE> -l app.kubernetes.io/name=k8s-infra
kubectl logs -n <NAMESPACE> -l app.kubernetes.io/component=otel-agent --tail=50

Confirm telemetry is flowing in SigNoz under the cluster name you configured.

Scenario 2: Keep using OTLP/gRPC

If you can't change the endpoint (firewall rules, existing infra), or you prefer gRPC, opt back into it explicitly. gRPC has no chart-version requirement and will continue to work.

presets:
  otlpExporter:
    enabled: true
  otlphttpExporter:
    enabled: false

Keep your existing otelCollectorEndpoint (<host>:4317) unchanged.

Scenario 3: Sub-chart of signoz with no custom endpoint

If you installed k8s-infra as a sub-chart of the signoz chart and did not set otelCollectorEndpoint, no configuration change is required — the autogenerated endpoint now points at port 4318, which the SigNoz collector already exposes.

Step 1: Update Helm Repository

helm repo update signoz

Step 2: Run the Upgrade

helm upgrade <RELEASE_NAME> signoz/signoz \
  -n <NAMESPACE> \
  -f your-values.yaml

Step 3: Verify the Upgrade

kubectl get pods -n <NAMESPACE> -l app.kubernetes.io/name=k8s-infra
kubectl logs -n <NAMESPACE> -l app.kubernetes.io/component=otel-agent --tail=50

All pods should be Running. The logs should be free of connection refused or unsupported protocol errors from the exporter.

Troubleshooting

Exporter logs show connection refused or unsupported protocol

The endpoint is still pointing at a gRPC port (typically :4317). Update otelCollectorEndpoint to the OTLP/HTTP form (https://ingest.<region>.signoz.cloud:443 for SigNoz Cloud, or http://<host>:4318 for self-hosted) and re-run helm upgrade.

error converting YAML to JSON: unknown field "presets.otlphttpExporter"

The chart version is older than v0.14.0, when the preset was introduced. Run helm repo update signoz and upgrade. If you can't upgrade, follow Scenario 2 to keep using gRPC instead — the otlpExporter preset works on all versions.

Collector pods CrashLoopBackOff after upgrade

Check the pod logs (kubectl logs ... --previous) for a config validation error. Common causes: leftover tls: block under an otlphttp exporter with conflicting fields, or both otlpExporter and otlphttpExporter enabled simultaneously. Pick one exporter and re-run the upgrade.

Next Steps

Last updated: May 11, 2026

Edit on GitHub

Was this page helpful?

Your response helps us improve this page.