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
kubectland 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
<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.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 thegooglecloudpubsub 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
kubernetesAttributespreset’s RBAC is in place. - No metrics? Confirm the
kubeletMetricspreset 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.

