This is documentation for the next version of Grafana Beyla documentation. For the latest stable release, go to the latest version.
Deploy Beyla with the Beyla Helm chart for Grafana Cloud
Grafana Cloud Application Observability and Knowledge Graph use span metrics and service graph metrics. Other instrumentation usually derives these metrics from traces. Beyla generates them directly, so you can sample traces or turn traces off and still get complete request rate, error, and duration (RED) metrics.
With the Beyla Helm chart, Beyla sends these metrics and traces directly to the Grafana Cloud OTLP endpoint, with no collector in between.
Before you begin
Before you deploy Beyla, make sure you have the following:
- A Kubernetes cluster whose nodes meet the Beyla requirements and limitations
- Helm and
kubectl, configured for the cluster - Permission to create cluster-scoped resources and privileged Pods
- A Grafana Cloud stack, and the OTLP endpoint and credentials for it. To find them, follow the procedure in Send data to the Grafana Cloud OTLP endpoint.
With the default chart values, Beyla runs as a privileged DaemonSet in the host process ID (PID) and network namespaces of each node.
Deploy Beyla for Grafana Cloud
To deploy Beyla for Grafana Cloud, complete the following steps:
If the
beylanamespace doesn’t exist, create it withkubectl create namespace beyla.Save the following Secret as
grafana-secret.yml, and create it withkubectl apply -f grafana-secret.yml:apiVersion: v1 kind: Secret metadata: name: grafana-secret namespace: beyla type: Opaque stringData: otlp-headers: "Authorization=Basic <BASE64_CREDENTIALS>"Replace
<BASE64_CREDENTIALS>with your instance ID and token, joined by a colon and Base64-encoded. For example, runecho -n '<INSTANCE_ID>:<TOKEN>' | base64 | tr -d '\n'.Create a
helm-beyla.ymlfile:config: data: metrics: features: - application_span - application_service_graph - application_host prometheus_export: null env: OTEL_EXPORTER_OTLP_ENDPOINT: "<OTLP_ENDPOINT>" envValueFrom: OTEL_EXPORTER_OTLP_HEADERS: secretKeyRef: key: otlp-headers name: grafana-secretReplace
<OTLP_ENDPOINT>with the OTLP endpoint that you copied from your stack, for examplehttps://otlp-gateway-prod-eu-west-0.grafana.net/otlp. Beyla appends/v1/metricsand/v1/traces.Add the Grafana Helm repository and update your local chart index:
helm repo add grafana https://grafana.github.io/helm-charts helm repo updateInstall the chart:
helm upgrade --install beyla grafana/beyla --namespace beyla -f helm-beyla.ymlCheck that the Beyla Pods are running:
kubectl get pods --namespace beylaIf a Pod isn’t running, check its logs with
kubectl logs --namespace beyla <POD_NAME>, where<POD_NAME>is the Pod name from the previous command.
After your applications receive requests, their services appear in Application Observability in your Grafana Cloud stack.
With this configuration, Beyla does the following:
- Instruments applications in every namespace, except Kubernetes system namespaces and other namespaces that Beyla excludes by default
- Exports span metrics, service graph metrics, and traces to Grafana Cloud
- Exports the
application_hostmetric, which Grafana Cloud uses for host-based pricing - Adds Kubernetes metadata attributes, for example
k8s.namespace.nameandk8s.pod.name - Doesn’t export network-level metrics or Prometheus metrics
The features list replaces the default Beyla application feature, so Beyla exports span metrics instead of OpenTelemetry semantic-convention RED metrics.
Customize the deployment
To change the chart defaults, add chart values or Beyla options to your helm-beyla.yml file and run the helm upgrade --install command again.
Keep the metrics.features list and the OTLP settings in the file.
- To review each chart default and what it grants, refer to Review the chart defaults.
- To instrument only some namespaces or change other Beyla options, refer to Customize the Beyla configuration.
- To run Beyla with fewer privileges, refer to Reduce Beyla privileges.