Skip to main content

From zero to first trace

This is the sacred path. One command, no code changes, a live service map.

1. Install

# Flagship install — the chart is published to GHCR as an OCI artifact,
# eBPF auto-discovers your services. No repo to add.
helm install avuruobs oci://ghcr.io/avuruvision/charts/avuruobs \
--version <X.Y.Z> -n avuruobs --create-namespace

# Point apps at the gateway (OTLP):
# http://avuruobs-gateway:4318 (HTTP)
# http://avuruobs-gateway:4317 (gRPC)

# Open the UI:
kubectl -n avuruobs port-forward svc/avuruobs-ui 8080:80

The Helm chart installs the sensor DaemonSet, the gateway collector, the hub control plane, the ui, and ClickHouse.

2. Open the UI

kubectl -n avuruobs port-forward svc/avuruobs-hub 8080:80

Open http://localhost:8080. Within a minute or two the Service Map populates itself — the sensor traces every HTTP/gRPC service with zero-code eBPF instrumentation, so there is nothing to instrument. (Un-instrumented edges are enriched via OBI's network feature.)

3. (Optional) Send OTLP

Already have OpenTelemetry SDKs? Point them at the gateway and your spans land next to the eBPF-discovered ones:

export OTEL_EXPORTER_OTLP_ENDPOINT=http://avuruobs-gateway:4318
# gRPC instead? use http://avuruobs-gateway:4317

:::tip That's it No agents to roll out, no app redeploys. If your kernel has BTF (Linux ≥ 5.8), you get the full picture; older kernels degrade gracefully. :::

Verify

kubectl -n avuruobs get pods
# avuruobs-sensor-xxxxx Running
# avuruobs-gateway-xxxxx Running
# avuruobs-hub-xxxxx Running
# avuruobs-ui-xxxxx Running
# avuruobs-clickhouse-0 Running

If every pod is Running and the Service Map shows nodes, you're done.

Next

  • Your first trace — follow a request end-to-end through the demo app.
  • Core concepts — what a signal, context and propagation actually mean here.