Repository navigation
ci: report existing quality evidence and align API docs - #948
Conversation
|
Fixed the CI security findings in signed commit
Local verification: pinned Gitleaks 8.28 scanned 72 reachable commits/48.41 MB with zero findings after reproducing the original single finding. A control scan of the same prose as a new file still reports it, proving the historical exception is narrow. Pinned Zizmor 1.30.1 and actionlint 1.7.7 pass; 61 relevant regression/workflow tests pass. Security rationale is recorded in the changelog. The new Security / static run now passes on this commit, including Gitleaks, Gosec, Trivy, actionlint, Zizmor, hadolint and the Scorecard guardrails. The current PR merge ref has no open code-scanning alerts. Other CI jobs are still running; this does not claim the entire PR is green. |
⚪ Performance A/B: no change beyond noise8 shape×range — 8 ⚪ same · results vs Loki: 7 same, 0 new difference(s), 1 pre-existing Loki profiles compared (like for like):
Every shape is within noise of the base build (±30% and 100 ms). 8 unchanged shape×range (within noise)
Cold (first-run) timings — what a user opening a panel sees
Why these shapes
base |
✅ Visual smoke: passedBase
Gate: a base-vs-PR data difference passes when the PR is closer to Loki, and fails when the PR diverges from Loki or Loki cannot decide it (at a range Loki does not hold, a difference passes when the same page proved that query to answer like Loki at a shorter range; otherwise label the pull request Core set montages (9): base | PR | Lokidd-fields-1h dd-landing-1h dd-service-logs-1h explore-logs-plain-1h explore-metric-plain-1h explore-sum-by-over-binary-1h explore-topk-by-per-step-1h explore-unwrap-sum-1h lvl-explore-rate-errors-by-service-1h Published inline montages: |
PR Quality ReportCompared with the PR base commit; measurements below are scoped to their linked run. Focus signals:
Main-versus-PR whole-process CPU, peak RSS, physical SSD throughput/IOPS and per-layer evictions are not measured here. Synthetic allocations and fleet cache occupancy do not substitute for them. Coverage and tests
Test count includes passing Go test/subtest events, not independent scenarios. API contract coverage and regression changesExact Go case outcomes from the existing quality test run. Top-level tests and subtests are separate populations; package + full test name defines identity.
Showing 6/6 rows. Per-package covered/total instrumented statements; missing packages or snapshots have no coverage delta. Coverage changes also reflect changes in the statement denominator.
Showing 16/16 rows. Declared conformance inventory, not full runtime compatibility. Registry states describe the checked-in contract and proof links; these counts do not certify that every endpoint, version or workload ran successfully. Loki surface version: v3.7.7 → v3.7.7. Endpoint scopes differ: loki-read-api → loki-read-api; deprecated read aliases excluded: 0 → 5; endpoint count deltas and trends are unavailable until both snapshots use the same scope. Read API scope: write endpoints are excluded and deletion management is reported separately. POST query transports remain reads. Mixed rule endpoints retain their read methods after registry exclusions. Deprecated read aliases are excluded by owner scope decision; this changes the denominator without proving a compatibility gain.
Showing 4/4 rows.
Showing 6/6 rows.
Showing 12/12 rows.
Showing 7/7 rows.
Showing 7/7 rows. Selected smoke component checks against the candidate backend only. Both quality snapshot invocations share that backend image, so these checks provide no runtime comparison between revisions. Use the real workload A/B evidence for separately built revisions. This is a small contract sample, not the full declared inventory or version matrix.
Showing 18/18 rows. Synthetic handler microbenchmarksSynthetic handler elapsed time and allocations; not process CPU, RSS or physical disk I/O. Repeated-sample medians.
Labels follow the existing gate percentage, absolute and low-baseline guards, including pooled-path allowances. Required checks decide merge safety. This report summarizes selected evidence; rendering starts no tests or heavy workloads. |
|
Expanded the report using existing CI output only; read-only scoring corrected in 947f5c8. The headline now flags specific outcome/coverage/contract regressions; collapsed tables retain named cases, package coverage and broader API/Grafana execution scopes alongside the existing A/B, visual and resource/cache evidence. Small smoke scores no longer claim a base-product runtime comparison, because both collector invocations can share the candidate Docker image. Corrected current declared inventory at 947f5c8 (runtime proxy code unchanged by this scope/report update):
Write-only routes are excluded. Both push endpoints were already outside the previous 33-endpoint inventory. Five deprecated read aliases are explicitly unsupported and excluded; Validation of the new report code: 409 tests pass, pinned actionlint/Zizmor pass, signed commit verified, pinned Gitleaks scans 76 available local commits with no leaks. This includes retained failures, partial-run safeguards, 12,000 named outcomes, stale revisions, separate Playwright invocations and malformed artifact fixtures. Fresh remote CI is pending for 947f5c8. Exact unit outcome comparisons populate from the newly retained existing quality runs. Cross-workflow automatic refresh activates when the publisher reaches the default branch; it adds no measurement workload. |
3d99029 to
98de495
Compare
… in a list' Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
ec72065 to
196b9cc
Compare









The old quality comment reduced API quality to three small smoke scores and labelled synthetic handler timing/allocation counters as CPU and memory. It also showed a missing base snapshot as zero. Those signals hid specific regressions and the remaining contract gaps.
The report now leads with actionable changes from existing CI: named failing/skipped/removed/recovered tests, package coverage drops, declared contract-state changes, real workload A/B slowdowns and Loki answer differences, visual failures and missing or stale evidence. Collapsed sections contain the supporting tables, original run links and explicitly scoped resource/cache measurements.
API quality has two distinct views:
The small smoke components are candidate-only. Both quality collectors can share the candidate image, so their scores are not a revision runtime comparison. The existing A/B job builds separate base/PR binaries and queries Loki for that comparison.
The completion-triggered publisher updates the same comment using trusted default-branch code and bounded data. It starts no tests, benchmarks, profiling or compose stacks. Source head/base/merge/attempt checks exclude stale evidence and run again before publication. The new publisher activates after merge; exact outcome comparisons populate from the next existing quality collections.
Resource labels retain their measured scope: synthetic elapsed time and allocation traffic, fleet process CPU, sampled RSS, backend container statistics and logical cache occupancy. Candidate fleet evidence does not establish main/PR savings. Physical SSD I/O and unavailable resource/layer deltas remain unmeasured.
Validation: 411 CI-script tests passed, including executable collector/renderer/publication fixtures, 12,000 named cases, partial failed runs, package identity, stale provenance, multiple Playwright runs and malformed artifacts. Pinned actionlint and Zizmor passed; independent review concerns were fixed and rechecked. Runtime proxy code and measurement workloads are unchanged.
Retained proof on the preceding revision: Loki pinned CI reports 15 top-level tests + 64 subtests passing, not 79 independent API endpoints. Its runtime stack versions remain distinct from the declared registry surface.
Read endpoint scope: two push routes and five explicitly unsupported deprecated read aliases are excluded. The
/api/prom/rules*routes remain in scope for vmalert. Optional deletion management is separate; POST query transports remain reads. The current read inventory is 24/27 routed, 18/27 with differential tests and 11/27 declared proven. Two already-routed rule-group paths were misclassified by exact-template extraction; their subtree mapping is now recognized narrowly. These scope/extraction corrections do not establish new runtime compatibility or speedups. The native-share denominator was rebaselined for those additional routed endpoints, without changing native execution./loki/api/v1/index/shardsremains a counted compatibility gap, explicitly optional and planner-only. It ranks after normal and last-priority work and does not block the pinned Grafana/Drilldown or peer-cache paths. Regression tests for exclusion guards, subtree matching and optional priority run in the existing CI-wired test module. Full conformance regeneration/check passes.The README, API reference, Loki compatibility, Known Issues, roadmap, coverage map and related performance/matrix pages now agree on read scope and current implementation. Four curated API-status blocks and the README summary are regenerated and checked by the existing conformance gate. They distinguish routed endpoints, linked differential evidence and declared proof, list current missing routes, and keep optional deletion outside the read score. Canonical registry totals remain unchanged for existing CI consumers; the new
read_apisubsummary supplies public read totals. Historical latency/cache claims are marked or replaced with links to current evidence. Open PR support is not presented as shipped.Additional validation: production Docusaurus build passed after checking comment-marker rendering and links; both new documentation regressions failed before the generator fix and pass now. The new tests run in the existing scope module. No proxy behavior or new measurement workload is introduced.
Release audit after v2.54.0: the released changelog is unchanged byte-for-byte and pending notes remain under Unreleased. The implicit-string-concatenation finding is addressed with explicit construction; report output and the conformance check are unchanged. Current main still has the POST metadata cache collision, so Known Issues documents its GET workaround until #949 lands instead of presenting the pending fix as shipped.