Skip to content

Add traffic visualization feature - #7

Merged
nadaverell merged 4 commits into
mainfrom
feature/traffic-visualization
Jan 26, 2026
Merged

nadaverell merged 4 commits into
mainfrom
feature/traffic-visualization

Conversation

@nadaverell

Copy link
Copy Markdown
Contributor

Summary

  • Adds a new Traffic view that visualizes network flows between services in a Kubernetes cluster
  • Supports two traffic data sources: Cilium Hubble (via port-forwarding to hubble-relay) and Caretta (eBPF-based traffic monitoring)
  • Includes a setup wizard that detects available traffic sources or guides installation
  • Graph visualization using ELK layout shows traffic flow between services with connection counts

Features

  • Namespace filtering and hidden namespace support
  • Addon grouping/hiding (cert-manager, external-secrets, etc.)
  • External IP aggregation and "Internet" node collapsing
  • Hot path highlighting based on connection thresholds
  • Service detection for well-known ports

Introduces a new Traffic view that visualizes network flows between services
in a Kubernetes cluster. Supports two traffic data sources: Cilium Hubble
(via port-forwarding to hubble-relay) and Caretta (eBPF-based traffic
monitoring). Features include namespace filtering, addon grouping/hiding,
external IP aggregation, and a graph-based flow visualization using ELK
layout.

The Helm install wizard was enhanced to support direct repo URLs for
installing traffic monitoring tools from non-ArtifactHub sources.
- Add Warning field to FlowsResponse to surface query errors to users
  instead of silently returning empty flows
- Report detection errors with status "error" instead of treating them
  as "not detected", allowing users to see RBAC/connectivity issues
- Validate duration parameter and return 400 Bad Request for invalid
  format instead of silently using default
- Update frontend to filter for available sources and display warnings
After the error handling fix, sources with detection errors are added
to the detected slice with status "error". The recommendation logic
was checking len(detected) > 0 to skip recommendations, which meant
users got no guidance when detection failed with errors.

Now checks for actual "available" status before skipping recommendations.
@nadaverell
nadaverell merged commit b904a1b into main Jan 26, 2026
2 checks passed
@nadaverell
nadaverell deleted the feature/traffic-visualization branch January 26, 2026 23:41
nadaverell added a commit that referenced this pull request May 31, 2026
… sort

- #7: issues(namespace="prod") for a namespace the caller can't access now
  returns 403 forbidden (MCP + REST), not an empty list. 'unauthorized' must
  not read as 'nothing broken' — a real trust gap for an SRE agent. The
  no-explicit-namespace path still returns empty (the caller asked for nothing
  specific).
- #9: lessIssue tiebreak is now (namespace, name, id) — byte-identical to the
  shared UI comparator's single-cluster order (the UI's only extra key, cluster,
  is constant for one cluster). The parity claim in the comment is now true
  instead of aspirational.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant