Which source should I use?
Prefer auto-detect. Leavesource empty and Edge activates exactly one source per collection cycle, in precedence order Hubble → Istio → Caretta, picking the richest one present and never counting the same call twice. Pin a source only to override the default, for example to force hubble when your cluster also runs Istio.
- Hubble (Cilium): preferred. Kernel-level eBPF gives per-call detail: HTTP method, path, and status; latency percentiles; DNS queries and NXDOMAIN; gRPC and Kafka; forwarded vs dropped flows. Use it if you run Cilium.
- Istio: choose only if your workloads are already meshed. Edge reads request and error rates from Prometheus. Sidecar-injected services only (un-meshed workloads are invisible), and no latency percentiles.
- Caretta: a lightweight fallback when you run neither Cilium nor Istio. Connection counts across TCP and UDP, without a service mesh, but no HTTP paths, status codes, or latency.
If your cluster also exports Hubble metrics to Prometheus, Edge uses them to keep the service dependency map stable. Prometheus counters accumulate over time, so low-traffic or infrequent calls stay on the map even when a single collection window misses them. The per-call detail — latency, HTTP paths, verdicts — still comes from Hubble directly. This happens automatically with no extra configuration.
What each source surfaces
With Hubble, an investigation points at the exact failing call: the method and path behind a 5xx, an NXDOMAIN lookup, or a dropped flow, not just an elevated error rate. Istio reports request and error rates for meshed services; Caretta reports connection counts. Latency shows as
n/a for Istio and Caretta, since neither source measures it.During an investigation
What you see on a dependency edge depends on which source is active:- Hubble: the richest signal. Open any edge in the service graph to see the top HTTP paths with per-path error rates, the exact status codes returned, latency percentiles, DNS lookups that failed with NXDOMAIN, and any flows that were dropped by network policy (with the policy name). You can pinpoint which call is failing, not just which service is elevated.
- Istio: request and error rates per dependency, limited to sidecar-injected workloads. Tells you which pair is misbehaving and how bad the error rate is; does not surface individual calls, paths, or latency.
- Caretta: connection-level presence. Confirms that two services are communicating; does not show what they are saying. Useful as a last resort to rule out complete connectivity loss between services.
Enable
Add thenetobs block to your Edge values and run a helm upgrade:
Settings
If Istio or Caretta publish metrics to Prometheus, Edge discovers Prometheus in-cluster automatically. Set
prometheusUrl only if you need to point Edge at a specific Prometheus service.
Verify
Check the Edge logs for the active traffic source:Requirements
- Hubble: Cilium with Hubble enabled;
hubble-relayreachable from the Edge pod. GKE Dataplane V2 (anetd) and AKS managed Cilium are supported — Edge discovers the required TLS certificates from the cluster automatically. - Istio: Istio metrics scraped by Prometheus; only sidecar-injected workloads are observed.
- Caretta: Caretta running with its metrics scraped by Prometheus.

