{"adoption": {"forks": 61, "observed_at": "2026-08-28T04:03:34.094544+00:00", "stars": 1095}, "canonical_url": "https://ross.abutalabs.com/products/k8spacket", "card": {"archived": false, "artifact_type": "service", "description": "k8spacket - collects TCP traffic and TLS connection metadata in the Kubernetes cluster using eBPF and visualizes in Grafana", "domain": ["monitoring", "networking", "security"], "enriched": true, "function": ["monitoring", "tracing", "networking", "security", "data-visualization"], "health_score": 98, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["k8spacket/k8spacket"], "name": "k8spacket/k8spacket", "platform": ["self-hosted", "go"], "pushed_at": "2026-08-05T15:08:04+00:00", "repo": "k8spacket/k8spacket", "stars": 1095, "tags": ["ebpf", "tcp", "tls", "grafana", "prometheus", "packet-sniffing", "kubernetes-networking", "observability", "kubernetes", "containers", "devops", "linux", "docker"], "topics": ["grafana", "observability", "visualization", "packetsniffing", "tcp", "o11y", "metrics", "prometheus", "k8spacket", "cilium", "ebpf", "tls", "bpf2go", "ebpf-programs", "ebpf-tc"], "urls": [], "use_cases": ["visualize TCP traffic between workloads in a Kubernetes cluster", "see which external domains my cluster pods connect to", "monitor TLS versions and cipher suites used by cluster connections", "alert on expiring TLS certificates in the cluster", "trace how many bytes each pod sends and receives", "understand socket connection lifetimes in Kubernetes"], "what_it_is": "k8spacket is a Kubernetes tool that collects TCP traffic and TLS connection metadata using eBPF (tracepoints and traffic-control filters) and exposes it as Prometheus metrics. It ships Grafana dashboards to visualize inter-workload traffic, external traffic destinations, and TLS certificate expiration.", "when_to_avoid": ["your kernel is older than 5.4 or lacks BTF support", "you need deep packet payload inspection rather than connection metadata", "you don't run Kubernetes or Grafana/Prometheus"], "when_to_choose": ["you need eBPF-based network observability for Kubernetes without sidecars", "you want TLS handshake and certificate expiration visibility in Grafana", "you need to map cluster-internal and external traffic flows per workload"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/k8spacket", "repo": "k8spacket/k8spacket", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:34.094544+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:47:15.741207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f954e4629a8bc2734f19edcf6d542e598a08a323cd787fa3dc2055523f49a79a", "fetched_at": "2026-08-28T04:03:34.094544+00:00", "kind": "readme", "missing": false, "url": "https://github.com/k8spacket/k8spacket"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 84}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1522, "days_push": 28, "days_rel": 28, "gap_med": 55, "n_releases_24m": 14}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}