{"adoption": {"forks": 303, "observed_at": "2026-08-28T04:05:14.838684+00:00", "stars": 1637}, "canonical_url": "https://ross.abutalabs.com/products/tensuns", "card": {"archived": false, "artifact_type": "application", "description": "🦄后羿 - TenSunS(原ConsulManager)：基于Consul的运维平台：更优雅的Consul管理UI&多云与自建ECS/MySQL/Redis同步Prometheus/JumpServer&ECS/MySQL/Redis云监控指标采集&Blackbox站点监控维护&漏洞通知/资源到期余额告警&各类资源Grafana看板展示", "domain": ["monitoring", "cloud-computing", "self-hosted", "databases", "security"], "enriched": true, "function": ["monitoring", "alerting", "web-framework", "ui-components", "deployment", "configuration-management", "developer-tools"], "health_score": 67, "homepage": "https://StarsL.cn", "language": "Vue", "license": "WTFPL", "license_family": "permissive", "maturity": "active", "member_repos": ["starsliao/TenSunS", "starsliao/Prometheus"], "name": "TenSunS", "platform": ["self-hosted", "python", "cross-platform"], "pushed_at": "2025-11-24T06:33:41+00:00", "repo": "starsliao/TenSunS", "stars": 1637, "tags": ["consul", "prometheus", "blackbox-exporter", "grafana-dashboards", "multi-cloud", "jumpserver", "service-discovery", "vulnerability-alerts", "flask", "vue", "devops", "automation", "web-server", "docker", "kubernetes"], "topics": ["consul", "blackbox-exporter", "prometheus", "node-exporter"], "urls": [{"kind": "homepage", "url": "https://StarsL.cn"}], "use_cases": ["manage consul services with a better web ui", "auto-discover cloud ECS instances as prometheus monitoring targets", "sync multi-cloud mysql and redis metrics into prometheus", "manage blackbox exporter site monitoring targets from a web page", "get alerts for cloud account balance and resource expiration dates", "receive notifications for new high-severity vulnerabilities", "sync cloud ECS inventory to jumpserver", "generate grafana dashboards for node, mysql, and redis exporters"], "what_it_is": "TenSunS (formerly ConsulManager) is a Flask+Vue web-based ops platform built on Consul that provides an improved Consul management UI. It automates Prometheus service discovery for multi-cloud (Alibaba, Tencent, Huawei, AWS) and self-hosted ECS/MySQL/Redis resources, visualizes Blackbox site monitoring, and adds vulnerability and expiry/balance alerting.", "when_to_avoid": ["you don't use consul, prometheus, or grafana in your stack", "you need a fully managed SaaS monitoring solution rather than self-hosted tooling", "your cloud provider is not Alibaba, Tencent, Huawei, or AWS", "you only need simple single-host monitoring without service discovery"], "when_to_choose": ["you run prometheus monitoring across multiple cloud providers and want automatic target discovery via consul", "you need a friendlier UI than the official consul web ui for managing services", "you want centralized web-based management of blackbox site monitoring", "you need cloud cost/expiry alerting and vulnerability notifications alongside monitoring"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/starsliao/TenSunS", "repo": "starsliao/TenSunS", "role": "main", "score": 49}, {"path": "/repos/starsliao/Prometheus", "repo": "starsliao/Prometheus", "role": "plugin", "score": 63}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "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:14.838684+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.838684+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:46:39.199745+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "99ec354b9350961cc5e5d6ae657f911a2aaa5e511e189b9d09163742018af251", "fetched_at": "2026-08-28T04:05:14.838684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/starsliao/TenSunS"}, {"content_hash": "643f128f565fa10bbb4bddd32196878bda6aa38b23f9349c1783bb8858b16c49", "fetched_at": "2026-08-29T11:20:03.308843+00:00", "kind": "homepage", "missing": false, "url": "https://StarsL.cn"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 53, "longevity": 100, "rhythm": 15}, "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": 1678, "days_push": 282, "days_rel": 358, "gap_med": 238, "n_releases_24m": 2}, "score": 49, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}