{"adoption": {"forks": 216, "observed_at": "2026-08-28T04:05:58.277274+00:00", "stars": 1952}, "canonical_url": "https://ross.abutalabs.com/products/smokeping", "card": {"archived": false, "artifact_type": "application", "description": "The Active Monitoring System", "domain": ["networking", "monitoring", "self-hosted"], "enriched": true, "function": ["monitoring", "alerting", "data-visualization", "cli"], "health_score": 89, "homepage": "http://www.smokeping.org", "language": "Perl", "license": "GPL-2.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["oetiker/SmokePing"], "name": "oetiker/SmokePing", "platform": ["bsd", "cli", "self-hosted"], "pushed_at": "2026-08-10T17:57:47+00:00", "repo": "oetiker/SmokePing", "stars": 1952, "tags": ["rrdtool", "latency-measurement", "packet-loss", "network-monitoring", "perl", "ping", "cgi", "graphing", "probes", "master-slave", "devops", "linux", "macos", "web-server"], "topics": [], "urls": [], "use_cases": ["monitor network latency over time with long-term graphs", "track packet loss and latency variation between hosts", "get alerted when network latency patterns degrade", "measure round trip times to targets from multiple locations", "visualize jitter and network connection quality history", "ping many hosts on a schedule and graph the results", "keep a historical record of network performance for capacity planning"], "what_it_is": "SmokePing is a Perl-based network latency monitoring system that measures, stores, and graphically displays latency, latency distribution, and packet loss using RRDtool as its long-term data store. It runs as a daemon that periodically probes network targets and presents interactive smoke-style graphs through a CGI web frontend, with configurable pattern-based alerting and a master/slave mode for measuring from multiple locations.", "when_to_avoid": ["You need a full-stack monitoring platform covering services, hosts, and uptime beyond network latency (consider Zabbix, Icinga, or Prometheus)", "You require a Windows-native or non-Unix deployment", "You want a modern web stack and real-time dashboards rather than a Perl/CGI-based frontend", "You need sub-second, event-driven metrics collection instead of periodic interval probing"], "when_to_choose": ["You need long-term latency, latency-distribution, and packet-loss history with detailed smoke graphs", "You want pattern-based alerting that triggers on configurable latency behaviors rather than simple thresholds", "You need distributed measurements from multiple vantage points via the master/slave deployment model", "You are on a Unix system and want an extensible, self-hosted latency probe with pluggable probe modules (ping, web requests, custom protocols)"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/smokeping", "repo": "oetiker/SmokePing", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "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:05:58.277274+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:58.277274+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:06:47.288594+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "965139129e5fa21e2943514c24015042ed5e7c29dea79adb5a5dc2ad59e6579a", "fetched_at": "2026-08-28T04:05:58.277274+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oetiker/SmokePing"}, {"content_hash": "183beb2fdf0a2b69ec8eea144e61f7a1f8eb84e807743807d8194360200e1d13", "fetched_at": "2026-08-29T10:46:28.406392+00:00", "kind": "homepage", "missing": false, "url": "http://www.smokeping.org"}, {"content_hash": "0c25b3181da32c35362f0d561bec576be134bec6429d57b14e76de86ef3a135a", "fetched_at": "2026-08-29T10:46:28.415450+00:00", "kind": "site_page", "missing": false, "url": "https://oss.oetiker.ch/smokeping/doc/index.en.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5446, "days_push": 23, "days_rel": 560, "gap_med": null, "n_releases_24m": 1}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}