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.