RousselTMLEARNING

TP · Observability with eBPF: from discovery to expertise

Lab: RED metrics and traces without code using Beyla

What you will learn in this TP
  • Deploy Beyla alongside an application
  • Read the RED metrics
  • Visualise the traces

Introduction #

What you will learn in this section
  • Deploy Beyla alongside an application
  • Read the RED metrics
  • Visualise the traces

Context. A third-party application exposes no metrics and cannot be modified. Yet you want its throughput, errors and latency.

Prerequisites: Docker Compose on a Linux host  ·  Estimated time: 45 min

Metrics and traces without a single line of code.

Hands-on #

Guided steps, with their solutions.

  1. 1. Write the Compose file

    Why? Beyla shares the application's PID namespace (pid: service:app) so it can see it without being privileged across the whole host.

    Create a Compose file with a web application (nginx), Beyla, Prometheus, Tempo and Grafana.
  2. 2. Generate traffic

    Why? Without requests, Beyla has nothing to measure.

    Start the stack and send requests, some of which return a 404 error.
  3. 3. Read the RED metrics

    Why? The metrics follow the OpenTelemetry semantic conventions: they are identical whatever the application's language.

    Query Prometheus: total throughput, 4xx error rate, p95 latency.
  4. 4. View the traces

    Why? Each request becomes a span: useful for tracking down a specific slow request.

    Add Tempo to Grafana (http://tempo:3200) and search for boutique-front traces in error.

Difficulty level : ●●●○○ (3/5)

My progress

  • ⏱ Estimated time : ≈ 45 min

Sign in to track your progress and take notes. Sign in

💬 Questions about this lesson

No questions yet: be the first to ask for help or share your configuration.

Ask a question about this lesson →

Recommended Articles

Zero-code instrumentation with Grafana Beyla (OpenTelemetry eBPF Instrumentation)

Get RED metrics and HTTP/gRPC traces from any application without changing it: Grafana Beyla and ...

Beyla and Alloy: zero-code RED metrics and traces with beyla.ebpf

Enable Beyla eBPF instrumentation in Alloy: service discovery, RED metrics to Mimir, traces to Te...

eBPF explained: programs in the Linux kernel to observe without instrumenting

What eBPF is, how a program is verified and then run in the kernel, hook points (kprobes, uprobes...

Tempo: generating metrics from traces (service graph, span metrics, exemplars)

Enable Tempo's metrics-generator: service graphs, RED span metrics, remote write to Prometheus or...

eBPF best practices for observability

Checklist for adopting eBPF in observability: choosing tools, gradual rollout, agent security, co...

Correlating traces, logs, metrics and profiles in Grafana

Link Tempo to logs (Loki), metrics (Prometheus) and profiles (Pyroscope): tracesToLogs, tracesToM...

Prometheus: visualizing your metrics (UI, Grafana and dashboards)

Visualize Prometheus data: the web interface, PromQL graphs, connecting to Grafana, RED and USE d...

Sending traces to Tempo: OpenTelemetry instrumentation and Alloy

Produce and route traces to Tempo: Python/Java/Node auto-instrumentation, the manual SDK, OTEL en...

Capstone project: the four signals of the OpenTelemetry Demo in the Grafana stack

A capstone project spanning the observability courses: deploy the OpenTelemetry Demo, send metric...

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!