Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
- Created SignerEndpointsTests to validate the SignDsse and VerifyReferrers endpoints. - Implemented StubBearerAuthenticationDefaults and StubBearerAuthenticationHandler for token-based authentication. - Developed ConcelierExporterClient for managing Trivy DB settings and export operations. - Added TrivyDbSettingsPageComponent for UI interactions with Trivy DB settings, including form handling and export triggering. - Implemented styles and HTML structure for Trivy DB settings page. - Created NotifySmokeCheck tool for validating Redis event streams and Notify deliveries.
2.3 KiB
2.3 KiB
Scanner Analyzer Microbench Harness
The bench harness exercises the language analyzers against representative filesystem layouts so that regressions are caught before they ship.
Layout
StellaOps.Bench.ScannerAnalyzers/– .NET 10 console harness that executes the real language analyzers (and fallback metadata walks for ecosystems that are still underway).config.json– Declarative list of scenarios the harness executes. Each scenario points at a directory insamples/.baseline.csv– Reference numbers captured on the 4 vCPU warm rig described indocs/12_PERFORMANCE_WORKBOOK.md. CI publishes fresh CSVs so perf trends stay visible.
Current scenarios
node_monorepo_walk→ runs the Node analyzer acrosssamples/runtime/npm-monorepo.java_demo_archive→ runs the Java analyzer againstsamples/runtime/java-demo/libs/demo.jar.python_site_packages_walk→ temporary metadata walk oversamples/runtime/python-venvuntil the Python analyzer lands.
Running locally
dotnet run \
--project bench/Scanner.Analyzers/StellaOps.Bench.ScannerAnalyzers/StellaOps.Bench.ScannerAnalyzers.csproj \
-- \
--repo-root . \
--out bench/Scanner.Analyzers/baseline.csv
The harness prints a table to stdout and writes the CSV (if --out is specified) with the following headers:
scenario,iterations,sample_count,mean_ms,p95_ms,max_ms
Use --iterations to override the default (5 passes per scenario) and --threshold-ms to customize the failure budget. Budgets default to 5 000 ms (or per-scenario overrides in config.json), aligned with the SBOM compose objective.
Adding scenarios
- Drop the fixture tree under
samples/<area>/.... - Append a new scenario entry to
config.jsondescribing:id– snake_case scenario name (also used in CSV).label– human-friendly description shown in logs.root– path to the directory that will be scanned.- For analyzer-backed scenarios, set
analyzersto the list of language analyzer ids (for example,["node"]). - For temporary metadata walks (used until the analyzer ships), provide
parser(nodeorpython) and thematcherglob describing files to parse.
- Re-run the harness (
dotnet run … --out baseline.csv). - Commit both the fixture and updated baseline.