Skip to main content
Beyond the markdown comparison (csbench report), a local, self-contained HTML report visualizes every metric and compares same-category cloud products side by side. It is built in two layers with a stable contract between them:
  • Engine (core/reporting/bundle.py): assembles a vendor-agnostic, JSON-serializable ReportBundle — per-(domain, task) panels, a capability matrix, cost, and chart specs (data, never rendered SVG). Always core.
  • Profiles (core/reporting/profiles/): declare which panels a category shows. agent-runtime ships (startup latency, cost list/discount/net, elasticity, fault recovery, state, observability); other domains use a generic table profile.
  • Renderer (core/reporting/renderers/): turns the bundle into output. The default HtmlRenderer is pure stdlib — a self-contained document with inline SVG charts, no JavaScript, no external resources.

Generate it

--format markdown (the default) is unchanged.

Cross-vendor comparison + execution hygiene

When two same-category platforms ran (e.g. aliyun-agentrun and an AWS agent runtime), each panel renders them side by side with a comparison chart. A panel compares only platforms of the same execution — simulated (mock) and live (real cloud) records are shown separately and never charted together; a domain that mixes them shows a red-flag banner. This reuses the fingerprint isolation of the execution marker, so mock numbers can never be mistaken for real ones.

Customize the rendering

The ReportBundle is the stable contract; three ways to change the output without touching the engine:
  • Theme (--css file.css) — inject CSS appended after the default theme (wins), for a logo/colors/layout tweak. Zero dependencies.
  • Renderer plugin — register a ReportRenderer via the clousight_bench.report_renderers entry point (name, output_suffix, render(bundle)), then --renderer yourname. Full control (PDF, a different HTML, etc.); bring your own dependencies.
  • Template (--template file.html) — render the bundle through a jinja2 template file (needs the [report] extra: pip install clousight-bench[report]). The template receives bundle (the dict form).
The engine, default HTML renderer, inline-SVG charts, --css, and --dump-bundle are all pure stdlib; only --template needs the extra.

Layout (v3, shadcn)

The default HTML report uses a shadcn-style design system (CSS token vars, cards, badges, brand-tinted shadows, tabular numerals) and is organized for scanning many dimensions at once:
  • Sticky branded header with the logo, bilingual name, generation timestamp, and the 中 / EN toggle.
  • Platform overview cards: a responsive grid — one card per platform with its provider logo, execution badge, and its headline metrics (cold start / net cost / elasticity knee).
  • Tabbed grouped comparison matrix: the agent-runtime profile surfaces all benchmark measurements as 8 capability groups spread over five tabs — 性能 Performance / 可靠性 Reliability / 可观测 Observability / 成本 Cost / 能力 Capability (each tab shows a per-panel count). Each group is a .card holding a grouped comparison table (metrics as rows × platforms as columns, each platform column carrying a brand-color top border) plus its interactive chart. The capability matrix renders under the Capability tab.
  • Summary cards per platform, and a dark mode via prefers-color-scheme.
  • Tab switching, chart hover tooltips, and legend series toggling run from one compact (~2KB) inline script — no third-party chart library.

Brand, language & charts

The report carries the Clousight / 云计算指北 brand: the official 3-layer stacked-arrows logo (vendored + base64-inlined), the brand blue scale (hsl(217 71% 51%)), and Inter / Noto Sans SC fonts by preference (system fallback, so the file stays self-contained and offline).
  • Cross-vendor cards: each platform shows its cloud provider logo (Alibaba / AWS / Huawei / Tencent / GCP / Azure …, vendored under resources/brand/providers/) with its execution badge; ≥2 same-execution platforms compare side by side.
  • Full 中 / EN toggle: the header button switches all UI text in place (panel titles, capability labels, badges, metric names, chrome) — default Chinese. Data (platform ids, numeric values) is never translated.
  • Premium interactive charts: self-authored inline SVG (gridlines, y-axis ticks, rounded brand-gradient bars, legend) with a compact inline script for tab switching, hover tooltips, and legend series toggling — no third-party chart library.
  • Dark mode follows the OS via prefers-color-scheme. --css still overrides.
Everything is inlined (logo, provider SVGs, CSS, JS); the report is a single offline file with no external resources.