Skip to main content

Overview

The recommended setup is an OpenTelemetry Collector DaemonSet that reads pod logs and kubelet metrics from each node. If you already export logs to Cloud Logging, you can instead bridge those logs through Pub/Sub.

Prerequisites

  • A Bronto account and API key (how to create one)
  • A GKE cluster with kubectl and Helm access

Primary: OTel Collector DaemonSet

Deploy the Collector as a DaemonSet with the OpenTelemetry Helm chart. Its presets collect pod logs and add Kubernetes metadata:
values.yaml
Set <REGION> to eu or us. This reads pod logs from the node and bypasses Cloud Logging. For more Collector detail, see Connect OpenTelemetry Collector to Bronto.
For volume or request/limit utilization metrics, grant the Collector service account get access to nodes/proxy.
For receiver settings, authentication, and available measurements, see the Collector Contrib Kubelet Stats receiver.

Alternative: Cloud Logging via Pub/Sub

If you already route logs through Cloud Logging, create a Log Router sink to a Pub/Sub topic and read it with the googlecloudpubsub receiver:
/etc/otel/config.yaml
Don’t push Pub/Sub directly to Bronto — its message envelope isn’t parseable. The Collector unwraps it.

What you will see in Bronto

Open Search for pod logs and the Metric Explorer for kubelet metrics. Kubernetes resource attributes identify the pod, namespace, node, and container.

Troubleshooting

  • No logs (DaemonSet)? Confirm the DaemonSet runs on every node and the kubernetesAttributes preset’s RBAC is in place.
  • No metrics? Confirm the kubeletMetrics preset is enabled and the Collector can reach each node’s kubelet.
  • No logs (Pub/Sub)? Verify the sink is active and the Collector’s service account has roles/pubsub.subscriber.
  • For general issues, see OTel Collector troubleshooting.