Bring the public mirror up to date with the latest developments:
- L7 HTTP Path Visibility & Per-Path Edge Model (v2.7.0): real HTTP
paths in the Service Map / Integration Hub / exports instead of "/".
Touches event_transformer (path extraction), graph-writer per-path
MERGE key + indexes, graph-query per-path counting, and the frontend.
- Beyla route decoration to fix the `/*/*/*/*/*` star-explosion in
API-gateway namespaces (low-cardinality route labelling).
- RabbitMQ queue-declaration resilience: graph-writer and
timeseries-writer tolerate a pre-existing queue whose arguments differ
from the declaration (bind to the existing queue instead of crashing).
- Version bump to 2.8.0 + CHANGELOG.
Example hostnames/annotations use placeholder values (example.com).
The ToC had a single 'Kubernetes Deployment' entry pointing to an anchor
(#kubernetes-deployment) that does not exist in the document — the two real
headings are 'Kubernetes / K3s Quick Start (Recommended)' and 'Production
Kubernetes Deployment'. Split the entry into two correctly-anchored links so
clicking from the ToC actually navigates to the install steps.
All other ToC anchors and headings were cross-verified; no other broken
internal links were found.
README content
- Expand the eBPF data-collection section into L4 (Inspektor Gadget) and L7 (Beyla + flowfish-l7-collector) subsections
- Add three L7 deep-dive sections: Service Map, Distributed Tracing & Trace Explorer, APM Services & RED Metrics
- Add a "Why Flowfish?" highlights bullet list, a Production Readiness Checklist, and a Further Reading section
- Refresh System Architecture / Data Collection Flow ASCII diagrams to include the L7 path (Beyla -> flowfish-l7-collector -> l7-ingestion-service -> RabbitMQ flowfish.l7.*)
- Update API Reference, Data Architecture, Project Structure, and Backend Environment Variables to reflect the dual-agent (L4 + L7) setup
- Add troubleshooting entries for Beyla DaemonSet, L7 Service Map, and missing trace_id
- Simplify verbose detail throughout: collapse repeated phrasing, trim implementation-level file paths and code expressions, keep claims that are verified against the codebase
Discovery section reordering
- Place Service Map immediately after Dependency Map / Focus Mode so the maps are introduced back-to-back; move Network Explorer (tabular view) to the end of the section
Screenshots
- Refresh new-analysis-1.png with an L7-aware version (shows the L4 / L7 / Both Analysis Level selector and the updated sidebar with Service Map, Trace Explorer, and APM Services)
- Drop the redundant analysis-new-1.png: the new Entry Point screenshot already covers Basic Information in its current form, and the old shot is stuck in a pre-L7 state (L4-only tagline, pre-L7 sidebar)
- Reduce Inspektor Gadget memory limit from 12Gi to 6Gi with buffer optimization (16384->8192)
- Add InspektorGadgetHighMemory (>3Gi) and CriticalMemory (>5Gi) Prometheus alerts
- Add configurable event ingestion rate limiting via Settings UI (ingestion_rate_limit_per_second)
- Update /analysis-limits/defaults endpoint to read from DB with Pydantic fallback
- Orchestrator fetches rate limit via isolated HTTP call (avoids cross-thread async issues)
- Ingestion service uses session-based rate limit with >0 comparison (fixes or-operator semantic bug)
- Add gadget_version (field 22) and max_events_per_second (field 23) to protobuf StartCollectionRequest
- Sync backend/proto with proto/ (add GadgetError message to backend copy)
- Upgrade Inspektor Gadget from v0.48.0 to v0.50.1 across all references
- Dynamic OCI image tagging: cluster-specific gadget_version flows through gRPC to ingestion service
- Fix get_cluster_sync SQL to include gadget_version column
- Fix NULL gadget_version causing protobuf TypeError (row[10] or '' pattern)
- Add GET /clusters/{id}/gadget-upgrade-script endpoint with cluster-specific parameters
- Add GadgetUpgradeModal and semver-based upgrade badge to Cluster Management page
- Add upgrade available indicator to Dashboard OperationsTab
- Include supported_gadget_version in GET /clusters response
- Update cluster_validator minimum supported version from v0.18 to v0.46.0
- Add ingestion_rate_limit_per_second to migration seed data and auto_stop_monitor fallback
- Improve AnalysisWizard Rolling Window and Recurring mode descriptions
- Add GADGET_SUPPORTED_VERSION and GADGET_MIN_SUPPORTED_VERSION to backend config
- Fix hardcoded "1.0.0" version in backend root/info endpoints to use __full_version__
- Replace grep -oP with POSIX grep -oE in upgrade script (macOS compatibility)
- Add ConfigMap events-buffer-length optimization step to upgrade script
- Add GADGET_VERSION sed substitution to prepare-manifests.sh
- Bump Flowfish version from 2.4.0 to 2.5.0
- Update pipeline GADGET_VERSION variable and all documentation references
Made-with: Cursor
Restructure /dependencies/summary response to provide per-service
downstream/callers breakdowns instead of a single aggregated view.
Backend:
- Unified loop in format_dependency_summary handles single and multi-service
identically, fixing replica data loss bug for single-service queries
- Each matched_service now carries its own downstream/callers DependencySummaryGroup
- New top-level summary object with globally deduplicated aggregate counts
(split downstream_critical_count and callers_critical_count)
- hop_count added to _compact_service (only when > 1 to avoid depth=1 noise)
- _dedup_entries now preserves entry with lowest hop_count on collision
- multi_service flag now correctly checks collapsed workload count
Frontend:
- Updated TypeScript interfaces (DependencySummary, MatchedService with groups)
- IntegrationHub Preview: per-service Collapse for multi-service, summary stats
- DependencyCategoryGroup: conditional hop_count column for multi-depth queries
- Snippet builders updated to parse matched_services and summary structure
API & Docs:
- OpenAPI spec: new DependencySummary schema, depth parameter descriptions
- README, feature-list, DATA_ARCHITECTURE docs updated
- Fixed pre-existing doc bug (default traversal depth 3 -> 1)
Made-with: Cursor