Skip to main content
ZICQ

Skills ZICQ category:DevOps & Cloud beyla

Beyla

Auto-instrument an application's HTTP / gRPC / DB traffic with Grafana Beyla eBPF — no code changes, no SDK, no restart. Covers requirements (Linux 5.8+ with BTF, CAP_SYS_ADMIN, host PID), language matrix (Go / Java / Python / Ruby / Node / .NET / Rust / C++ / PHP), Docker + Helm + DaemonSet install, port- / process- / Kubernetes-metadata discovery, OTLP traces + Prometheus metrics export, routes decorator (cardinality control), trace sampling, and Grafana Cloud via Alloy. Use when adding observability to a service you can't recompile, instrumenting a closed-source binary, getting RED metrics + spans onto Tempo/Mimir without touching the app, or rolling Beyla as a cluster-wide DaemonSet — even when the user says "zero-code APM", "instrument legacy app", "trace this binary", "eBPF observabi

5163 installs

Official URL:skills.sh

What this skill does

Intro in this page language first. The official description stays in its original wording; we do not rewrite SKILL.md.

What it does

Auto-instrument an application's HTTP / gRPC / DB traffic with Grafana Beyla eBPF — no code changes, no SDK, no restart. Covers requirements (Linux 5.8+ with BTF, CAP_SYS_ADMIN, host PID), language matrix (Go / Java / Python / Ruby / Node / .NET / Rust / C++ / PHP), Docker + Helm + DaemonSet install, port- / process- / Kubernetes-metadata discovery, OTLP traces + Prometheus metrics export, routes decorator (cardinality control), trace sampling, and Grafana Cloud via Alloy

When to use it

adding observability to a service you can't recompile, instrumenting a closed-source binary, getting RED metrics + spans onto Tempo/Mimir without touching the app, or rolling Beyla as a cluster-wide DaemonSet — even when the user says "zero-code APM", "instrument legacy app", "tr

How agents load it

Per Agent Skills progressive disclosure: name and description load at startup (~100 tokens); the full SKILL.md body loads when the skill activates; scripts/, references/, and assets/ load only as needed. This file's sections: Grafana Beyla; Prerequisites; Common Workflows; 1. Instrument a single binary with Docker; 1. Run Beyla against the app's port (the app must already be running, listening on 8080); 2. Generate some traffic. It includes spec-recommended sections: step-by-step instructions.

File analysis

File analysis: besides SKILL.md, the body references references/kubernetes.md, references/config.md. Those resources load on demand.

Official description (original)

Auto-instrument an application's HTTP / gRPC / DB traffic with Grafana Beyla eBPF — no code changes, no SDK, no restart. Covers requirements (Linux 5.8+ with BTF, CAP_SYS_ADMIN, host PID), language matrix (Go / Java / Python / Ruby / Node / .NET / Rust / C++ / PHP), Docker + Helm + DaemonSet install, port- / process- / Kubernetes-metadata discovery, OTLP traces + Prometheus metrics export, routes decorator (cardinality control), trace sampling, and Grafana Cloud via Alloy. Use when adding observability to a service you can't recompile, instrumenting a closed-source binary, getting RED metrics + spans onto Tempo/Mimir without touching the app, or rolling Beyla as a cluster-wide DaemonSet — even when the user says "zero-code APM", "instrument legacy app", "trace this binary", "eBPF observability", or "no SDK" without naming Beyla.

Grafana BeylaPrerequisitesCommon Workflows1. Instrument a single binary with Docker1. Run Beyla against the app's port (the app must already be running, listening on 8080)2. Generate some traffic3. Verify Beyla emitted metrics — should list http_server_request_duration_seconds + counters4. Verify traces — in Grafana Explore on Tempo, search by service.name (default = process name)Or: query Tempo's search API for spans with service.name="<app>"2. Deploy as a cluster-wide DaemonSet1. Verify DaemonSet rollout2. Verify pods are Running, one per node

· License:Apache-2.0

Source category:skills.sh agent-skill

SKILL.md & Agent activation

Official spec ↗
name
beyla
description
Auto-instrument an application's HTTP / gRPC / DB traffic with Grafana Beyla eBPF — no code changes, no SDK, no restart. Covers requirements (Linux 5.8+ with BTF, CAP_SYS_ADMIN, host PID), language matrix (Go / Java / Python / Ruby / Node / .NET / Rust / C++ / PHP), Docker + Helm + DaemonSet install, port- / process- / Kubernetes-metadata discovery, OTLP traces + Prometheus metrics export, routes decorator (cardinality control), trace sampling, and Grafana Cloud via Alloy. Use when adding observability to a service you can't recompile, instrumenting a closed-source binary, getting RED metrics + spans onto Tempo/Mimir without touching the app, or rolling Beyla as a cluster-wide DaemonSet — even when the user says "zero-code APM", "instrument legacy app", "trace this binary", "eBPF observability", or "no SDK" without naming Beyla.
License
Apache-2.0
  1. DiscoverThe client exposes names and descriptions to the agent.
  2. ActivateYour request or the task context selects the skill and loads its instructions.
  3. Load resourcesReferenced scripts, documentation and assets are used when needed.
Files referenced by the instructions · 2
  • references/kubernetes.md
  • references/config.md

These paths are extracted from the text. Check the upstream package to verify the files exist.

Invocation syntax and available tools depend on your Agent client. Client integration guide ↗

Install this skill

Skills CLI ↗

Choose the target agent and installation scope, keep referenced package files, then verify the skill appears in the client's catalog.

This skill references supporting files. Retrieve the complete directory from the source; copying SKILL.md alone may leave missing dependencies.

Ask your Agent to install

Copy these instructions to a compatible agent and confirm the target directory matches your client.

Install the agent skill "beyla" into my project. The full SKILL.md and official description are at https://zicq.com/en/skills/skl-72cc23d151019f8b-Beyla.html
Save it as .cursor/skills/beyla/SKILL.md or .claude/skills/beyla/SKILL.md and keep the frontmatter name and description exactly as-is.
This skill also ships scripts/, references/, or assets/ — fetch the whole folder from https://github.com/grafana/skills instead of creating only a SKILL.md.

Full package on GitHub ↗

Install from the terminal · Skills CLI

Requires Node.js and npx. First inspect the repository's skill list to confirm the name.

npx skills add 'https://github.com/grafana/skills' --list

npx skills add 'https://github.com/grafana/skills' --skill 'beyla'

The CLI lets you choose the agent interactively. The default scope is the project; use -g for user scope. Confirm package availability with the discovery command, then use npx skills list to inspect installed skills.

Readable layout
--- name: beyla license: Apache-2.0 description: Auto-instrument an application's HTTP / gRPC / DB traffic with Grafana Beyla eBPF — no code changes, no SDK, no restart. Covers requirements (Linux 5.8+ with BTF, CAP_SYS_ADMIN, host PID), language matrix (Go / Java / Python / Ruby / Node / .NET / Rust / C++ / PHP), Docker + Helm + DaemonSet install, port- / process- / Kubernetes-metadata discovery, OTLP traces + Prometheus metrics export, routes decorator (cardinality control), trace sampling, and Grafana Cloud via Alloy. Use when adding observability to a service you can't recompile, instrumenting a closed-source binary, getting RED metrics + spans onto Tempo/Mimir without touching the app, or rolling Beyla as a cluster-wide DaemonSet — even when the user says "zero-code APM", "instrument legacy app", "trace this binary", "eBPF observability", or "no SDK" without naming Beyla. --- # Grafana Beyla > **Docs**: https://grafana.com/docs/beyla/latest/ Zero-code HTTP / gRPC / DB instrumentation via eBPF. Emits OTLP traces + Prometheus metrics. ## Prerequisites - Linux kernel **5.8+** with BTF enabled (`ls /sys/kernel/btf/vmlinux` must exist) - Root or `CAP_SYS_ADMIN` (or `privileged: true` in Kubernetes + `hostPID: true`) - x86_64 or ARM64 - An OTLP receiver (Tempo, Alloy, OTel Collector) reachable from Beyla ## Common Workflows ### 1. Instrument a single binary with Docker ```bash # 1. Run Beyla against the app's port (the app must already be running, listening on 8080) docker run --privileged --pid=host \ -v /sys/kernel/debug:/sys/kernel/debug:ro \ -e BEYLA_OPEN_PORT=8080 \ -e BEYLA_PROMETHEUS_PORT=8999 \ -e OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318 \ -p 8999:8999 \ grafana/beyla # 2. Generate some traffic curl http://localhost:8080/ ; curl http://localhost:8080/api/users/42 # 3. Verify Beyla emitted metrics — should list http_server_request_duration_seconds + counters curl -s http://localhost:8999/metrics | grep -E '^http_(server|client)_request_duration' # 4. Verify traces — in Grafana Explore on Tempo, search by service.name (default = process name) # Or: query Tempo's search API for spans with service.name="" ``` ### 2. Deploy as a cluster-wide DaemonSet Full DaemonSet + RBAC YAML lives in [`references/kubernetes.md`](references/kubernetes.md). After applying: ```bash # 1. Verify DaemonSet rollout kubectl -n monitoring rollout status ds/beyla # 2. Verify pods are Running, one per node kubectl -n monitoring get pods -l app=beyla -o wide # 3. Verify eBPF probes attached (no errors mentioning BTF or "permission denied") kubectl -n monitoring logs ds/beyla --tail=50 | grep -Ei 'error|fail|btf' || echo "clean" # 4. Verify telemetry is flowing — check the Tempo/Alloy receiver for spans from the cluster # Or scrape one pod directly: kubectl -n monitoring port-forward ds/beyla 8999:8999 & curl -s localhost:8999/metrics | head ``` ### 3. Send to Grafana Cloud via Alloy ```yaml # beyla-config.yml otel_traces_export: { endpoint: http://alloy:4318 } otel_metrics_export: { endpoint: http://alloy:4318 } ``` ```bash # Verify Alloy is forwarding — check Alloy UI (localhost:12345) for the # otelcol.receiver.otlp.beyla component showing received spans/metrics > 0. ``` Full Alloy + Beyla YAML: [`references/config.md`](references/config.md). ## Troubleshooting - `failed to load BPF object` → kernel < 5.8 or BTF missing; check `/sys/kernel/btf/vmlinux` - No spans in Tempo, but Prometheus metrics show → check `OTEL_EXPORTER_OTLP_ENDPOINT`, protocol (http vs grpc), and ports (4318 http / 4317 grpc) - HTTP route cardinality explosion → set `routes.unmatched: heuristic` and add patterns (see [`references/config.md`](references/config.md)) - Pod restarts with `CrashLoopBackOff` → likely missing `hostPID: true` or `privileged: true` / required capabilities ## Resources - [Beyla docs](https://grafana.com/docs/beyla/latest/) - [Beyla GitHub](https://github.com/grafana/beyla) - [`references/config.md`](references/config.md) — full config, env vars, samplers, routes decorator, generated metrics table, runtime matrix - [`references/kubernetes.md`](references/kubernetes.md) — DaemonSet + RBAC + discovery filters + Helm

Related skills

DevOps & Cloud

Docker Essentials

Essential Docker commands and workflows for container management, image operations, and debugging.

DevOps & Cloud

Find Skills

Discover and install skills from the open agent skills ecosystem. Use when: (1) user asks "how do I do X" where X might have an existing ski…

DevOps & Cloud

Microsoft Foundry

Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end. USE FOR: foundry, azd a…

DevOps & Cloud

Azure Deploy

Execute Azure deployments for ALREADY-PREPARED applications that have existing .azure/deployment-plan.md and infrastructure files. DO NOT us…