{"adoption": {"forks": 414, "observed_at": "2026-08-28T04:07:22.375657+00:00", "stars": 2796}, "canonical_url": "https://ross.abutalabs.com/products/skydive", "card": {"archived": false, "artifact_type": "application", "description": "An open source real-time network topology and protocols analyzer", "domain": ["networking", "monitoring", "cloud-computing"], "enriched": true, "function": ["monitoring", "networking", "analytics", "alerting", "tracing"], "health_score": 46, "homepage": "https://skydive.network", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["skydive-project/skydive"], "name": "skydive-project/skydive", "platform": ["go", "self-hosted", "cli"], "pushed_at": "2025-09-19T17:15:39+00:00", "repo": "skydive-project/skydive", "stars": 2796, "tags": ["network-topology", "flow-analysis", "packet-capture", "sdn", "packet-sniffer", "ebpf", "elasticsearch", "gremlin", "openstack", "grafana", "containers", "devops", "linux", "docker", "kubernetes", "web-server"], "topics": ["networking", "network-topology", "flow", "monitoring", "traffic-analysis", "traffic-monitoring", "metrics", "packet-sniffer", "packet-analyzer", "pcap", "ebpf"], "urls": [], "use_cases": ["troubleshoot network connectivity in OpenStack or Kubernetes environments", "visualize real-time network topology across hosts and containers", "capture and analyze network flows between VMs and containers", "monitor interface metrics and detect abnormal traffic", "follow a flow along its path through the topology", "validate network deployments in CI pipelines", "query historical topology changes to debug past incidents"], "what_it_is": "Skydive is an open source real-time network topology and protocols analyzer that captures network topology and traffic flows across hosts, VMs, and containers. Agents forward topology and flow data to a central analyzer backed by Elasticsearch, queryable via a Gremlin-based language, REST/WebSocket APIs, a web UI, and a CLI.", "when_to_avoid": ["you only need simple packet capture on a single host (use tcpdump or Wireshark instead)", "you need lightweight host-level metrics monitoring without topology analysis (use Prometheus instead)", "you require a managed SaaS solution rather than self-hosted infrastructure", "your environment is not Linux-based, since Skydive relies on Linux networking features like netlink, netns, and eBPF"], "when_to_choose": ["you need distributed, real-time visibility into network topology and flows across cloud or container infrastructure", "you want a single static binary that is easy to deploy with a web UI, CLI, and REST API", "you use SDN or cloud platforms like OpenStack, Kubernetes, Docker, or OpenContrail and need topology enrichment", "you need historical topology and flow data stored in Elasticsearch with Grafana integration"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/skydive", "repo": "skydive-project/skydive", "role": "main", "score": 42}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "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:07:22.375657+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:22.375657+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:14:39.562666+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "91b164a33cf59c762df1de8d6a5b2c20f5457aa53aa6edcb7ad99f6df52bc9c2", "fetched_at": "2026-08-28T04:07:22.375657+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydive-project/skydive"}, {"content_hash": "737b42b57414a789baa17aa3667ee458cde572496c3c99b31d872e8539bd05c7", "fetched_at": "2026-08-29T09:54:51.157026+00:00", "kind": "homepage", "missing": false, "url": "https://skydive.network"}, {"content_hash": "f9f2779cec12f085f83136d8d6c5089a462a60ff8bfd3d319d4df2c5fc29f916", "fetched_at": "2026-08-29T09:54:51.166332+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation"}, {"content_hash": "1ff453e472d2c83af1c994c9f96f3b7719562a2c038e64b965582fb969732837", "fetched_at": "2026-08-29T09:54:51.168336+00:00", "kind": "site_page", "missing": false, "url": "https://skydive.network/documentation/getting-started"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 42, "longevity": 100, "rhythm": 8}, "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": 3970, "days_push": 348, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 42, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}