mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-05 19:55:37 +00:00
docs(knowledge-base): prune stale content and add agent-facing index (#7035)
This commit is contained in:
+4
-2
@@ -64,7 +64,8 @@ their issue closes.
|
||||
|
||||
| Entry | Status | Purpose | Wiring / docs |
|
||||
|---|---|---|---|
|
||||
| `run_hotpath_warp_ab.sh` | ci-gate | Linux warp A/B rig for the hotpath series | performance-ab.yml (scheduled); `docs/operations/hotpath-warp-ab-runbook.md` |
|
||||
| `run_hotpath_warp_ab.sh` | dev-tool | Linux warp A/B rig for the hotpath series (quick local A/B) | `docs/operations/hotpath-warp-ab-runbook.md` |
|
||||
| `run_hotpath_warp_abba.sh` | ci-gate | Formal ABBA warp runner (baseline/candidate interleaved, `--rounds >= 3`); the runner performance-ab.yml executes | performance-ab.yml (scheduled); `docs/operations/hotpath-warp-ab-runbook.md` |
|
||||
| `hotpath_warp_ab_gate.sh` | dev-tool | Relative-budget gate evaluated over the warp A/B results | used by `run_hotpath_warp_ab.sh`; hotpath runbook |
|
||||
| `run_internode_grpc_ab_bench.sh` | dev-tool | One-click A/B driver for the internode gRPC optimization stages | `docs/operations/internode-grpc-benchmark-runbook.md` |
|
||||
| `run_internode_transport_baseline.sh` | dev-tool | Internode transport baseline runner | internode runbook; `crates/io-metrics/README.md` |
|
||||
@@ -74,7 +75,8 @@ their issue closes.
|
||||
| `run_pinned_paired_abba_bench.sh` | dev-tool | Pinned RustFS/MinIO paired ABBA benchmark orchestrator for backlog#1432 | `test_pinned_paired_abba_bench.sh` |
|
||||
| `run_get_codec_streaming_smoke.sh` | dev-tool | Local GET benchmark harness for the codec streaming read path | `docs/testing/ecstore-validation-suite-design.md` |
|
||||
| `run_get_1mib_abba_stage_metrics.sh` | dev-tool | Exact-1MiB isolated-host GET ABBA/stage-metrics harness for backlog#1434 | `test_get_1mib_abba_stage_metrics.sh` |
|
||||
| `issue_2007_coalescer_prometheus_report.py` | dev-tool | Read-only Prometheus report for GET metadata coalescer delay cost validation | `test_issue_2007_coalescer_prometheus_report.sh`; `docs/testing/issue-2007-coalescer-delay.md` |
|
||||
| `issue_2007_coalescer_prometheus_report.py` | dev-tool | Read-only Prometheus report for GET metadata coalescer delay cost validation; usage in the module docstring | `test_issue_2007_coalescer_prometheus_report.sh` |
|
||||
| `prometheus_metrics_1649_smoke.py` | dev-tool | Read-only Prometheus instant-query smoke check for the backlog#1649 metric dimensions, required labels, and retired series; usage in the module docstring | `--self-test` |
|
||||
| `run_gt1g_get_http_matrix.sh` | dev-tool | >1 GiB GET HTTP matrix | `docs/testing/ecstore-validation-suite-design.md` |
|
||||
| `run_gt1g_multipart_put_matrix.sh` | dev-tool | >1 GiB multipart PUT matrix | `docs/testing/ecstore-validation-suite-design.md` |
|
||||
| `sample_remote_rustfs_rss.sh` | dev-tool | Remote RustFS PID CPU/RSS TSV sampler for hotpath profiling runs | `test_sample_remote_rustfs_rss.sh`; backlog#1647 |
|
||||
|
||||
@@ -82,7 +82,7 @@ require_source_contains "docs/architecture/global-state-crate-split-plan.md" "ru
|
||||
require_source_contains "docs/architecture/global-state-crate-split-plan.md" "global-state-inventory.md" "global state inventory plan link"
|
||||
require_source_contains "docs/architecture/global-state-inventory.md" "## Global State Classification" "global state inventory classification section"
|
||||
require_source_contains "docs/architecture/global-state-inventory.md" "## Runtime Migration Inventory" "global state inventory migration section"
|
||||
require_source_contains "docs/architecture/global-state-inventory.md" "GLOBAL_EXPIRY_STATE" "global state inventory first candidate"
|
||||
require_source_contains "docs/architecture/global-state-inventory.md" "expiry_state_handle" "global state inventory lifecycle expiry-state runtime handle"
|
||||
require_source_contains "docs/architecture/global-state-inventory.md" "## RustFS Owner-Local Static Inventory" "global state inventory RustFS owner-local static section"
|
||||
require_source_contains "docs/architecture/global-state-inventory.md" "KEYSTONE_AUTH" "global state inventory RustFS auth static inventory"
|
||||
require_source_contains "docs/architecture/global-state-inventory.md" "DEADLOCK_DETECTOR" "global state inventory RustFS storage static inventory"
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
#
|
||||
# Fail when an agent-instruction or architecture document references a
|
||||
# repository file path that no longer exists. Keeps CLAUDE.md / AGENTS.md /
|
||||
# ARCHITECTURE.md / docs/architecture honest after refactors move code.
|
||||
# ARCHITECTURE.md / docs/ honest after refactors move code.
|
||||
#
|
||||
# Checked files: all tracked AGENTS.md, CLAUDE.md, ARCHITECTURE.md, and
|
||||
# docs/architecture/*.md.
|
||||
# Checked files: all tracked AGENTS.md, CLAUDE.md, ARCHITECTURE.md, and every
|
||||
# Markdown file under docs/ (architecture, operations, testing, and the index).
|
||||
#
|
||||
# A reference is any token starting with crates/, rustfs/, scripts/, docs/,
|
||||
# .github/ or .config/ that ends in a known file extension. Tokens containing
|
||||
# helm/, deploy/, .github/ or .config/ (at a word boundary, so helm/rustfs/...
|
||||
# is not misread as rustfs/...) that ends in a known file extension. Tokens containing
|
||||
# globs or placeholders, extensionless tokens (HTTP routes, directory
|
||||
# references, org/repo shorthands), and lines containing URLs are skipped.
|
||||
|
||||
@@ -20,7 +21,7 @@ cd "$ROOT_DIR"
|
||||
FAILURES=0
|
||||
|
||||
doc_files() {
|
||||
git ls-files 'AGENTS.md' '*/AGENTS.md' 'CLAUDE.md' 'ARCHITECTURE.md' 'docs/architecture/*.md'
|
||||
git ls-files 'AGENTS.md' '*/AGENTS.md' 'CLAUDE.md' 'ARCHITECTURE.md' 'docs/*.md' 'docs/architecture/*.md' 'docs/operations/*.md' 'docs/testing/*.md'
|
||||
}
|
||||
|
||||
check_file() {
|
||||
@@ -30,8 +31,8 @@ check_file() {
|
||||
# external, not repo paths.
|
||||
# grep exits 1 on no matches; that must not kill the script under pipefail.
|
||||
{ grep -vE 'https?://' "$doc" || true; } \
|
||||
| { grep -oE '(crates|rustfs|scripts|docs|\.github|\.config)/[A-Za-z0-9_./-]+' || true; } \
|
||||
| sed -e 's/[.,;:)]*$//' -e 's:/$::' \
|
||||
| { grep -oE '(^|[^A-Za-z0-9_./-])(crates|rustfs|scripts|docs|helm|deploy|\.github|\.config)/[A-Za-z0-9_./-]+' || true; } \
|
||||
| sed -E -e 's/^[^A-Za-z0-9_.]//' -e 's/[.,;:)]*$//' -e 's:/$::' \
|
||||
| sort -u \
|
||||
| while IFS= read -r ref; do
|
||||
case "$ref" in
|
||||
|
||||
@@ -4,6 +4,23 @@
|
||||
The script queries Prometheus' instant-query API and prints a Markdown summary
|
||||
for one already-completed workload window. It never writes to RustFS,
|
||||
Prometheus, or scrape targets.
|
||||
|
||||
Benchmark both cells with the same build, object set, workload, and
|
||||
``RUSTFS_BATCH_READ_VERSION_SERVER_PARALLELISM``; switch only
|
||||
``RUSTFS_GET_METADATA_READ_VERSION_COALESCE_DELAY_MICROS`` (200 vs 50), then
|
||||
report each measured window::
|
||||
|
||||
scripts/issue_2007_coalescer_prometheus_report.py \
|
||||
--query-url http://prometheus.example:9090 --profile delay-200us \
|
||||
--window 180s --rustfs-selector 'server=~"node[5-8]"' \
|
||||
--node-selector 'instance=~"node[5-8].*"'
|
||||
scripts/issue_2007_coalescer_prometheus_report.py \
|
||||
--query-url http://prometheus.example:9090 --profile delay-50us \
|
||||
--window 180s --rustfs-selector 'server=~"node[5-8]"' \
|
||||
--node-selector 'instance=~"node[5-8].*"'
|
||||
|
||||
A section printed as ``UNAVAILABLE`` is missing evidence, not zero. Self-test:
|
||||
``scripts/test_issue_2007_coalescer_prometheus_report.sh``.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
@@ -5,6 +5,19 @@ The harness queries Prometheus' instant-query API. It never writes to RustFS,
|
||||
Prometheus, or the scrape targets. A check is ``metric|label=value,...``;
|
||||
``--require-labels`` accepts ``metric|label1,label2``. ``--retired`` checks
|
||||
that an exact label set is absent after the scheduler's retirement window.
|
||||
|
||||
Examples::
|
||||
|
||||
python3 scripts/prometheus_metrics_1649_smoke.py --self-test
|
||||
python3 scripts/prometheus_metrics_1649_smoke.py \
|
||||
--query-url http://prometheus.example:9090 --profile backlog-1649 \
|
||||
--server rustfs-node1 --server rustfs-node2
|
||||
python3 scripts/prometheus_metrics_1649_smoke.py \
|
||||
--query-url http://prometheus.example:9090 \
|
||||
--retired 'rustfs_scanner_bucket_drive_result_total|server=node1,bucket=removed,drive=d1,result=success'
|
||||
|
||||
Use ``--bearer`` or ``--basic user:pass`` for a protected Prometheus; never put
|
||||
credentials in committed commands, logs, or issue comments.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
|
||||
Reference in New Issue
Block a user