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-serializableReportBundle— 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-runtimeships (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 defaultHtmlRendereris 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
TheReportBundle 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
ReportRenderervia theclousight_bench.report_renderersentry 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 receivesbundle(the dict form).
--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
.cardholding 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.--cssstill overrides.