* chore: update dependencies * build(deps): bump the dependencies group with 5 updates * build(deps): bump the dependencies group with 6 updates (#2908) Signed-off-by: houseme <housemecn@gmail.com> Co-authored-by: houseme <housemecn@gmail.com> * fix(ecstore): narrow Windows URL drive path rewrite * chore(deps): bump starshard to 1.2.0 * revert(ecstore): restore endpoint Windows path behavior * up * up * up * perf(notify): use cached snapshot mode for scans * fix * chore(deps): bump workspace dependency versions * chore(deps): refresh pinned dependency references * chore(ci): align profiling and decommission tooling updates - enable tokio_unstable cfg in performance profiling build flags\n- bump Rust base image from 1.93 to 1.95 in source and decommission Dockerfiles\n- remove obsolete compose version key from docker-compose-simple.yml\n- add standard Apache-2.0 license header to docker-compose.decommission.yml * chore(deps): bump the dependencies group across 1 directory with 7 updates (#2994) Bumps the dependencies group with 7 updates in the / directory: | Package | From | To | | --- | --- | --- | | [sysinfo](https://github.com/GuillaumeGomez/sysinfo) | `0.39.1` | `0.39.2` | | [dial9-tokio-telemetry](https://github.com/dial9-rs/dial9-tokio-telemetry) | `0.3.9` | `0.3.10` | | [opentelemetry](https://github.com/open-telemetry/opentelemetry-rust) | `0.31.0` | `0.32.0` | | [opentelemetry-otlp](https://github.com/open-telemetry/opentelemetry-rust) | `0.31.1` | `0.32.0` | | [opentelemetry_sdk](https://github.com/open-telemetry/opentelemetry-rust) | `0.31.0` | `0.32.0` | | [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-rust) | `0.31.0` | `0.32.0` | | [opentelemetry-stdout](https://github.com/open-telemetry/opentelemetry-rust) | `0.31.0` | `0.32.0` | Updates `sysinfo` from 0.39.1 to 0.39.2 - [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/main/CHANGELOG.md) - [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.39.1...v0.39.2) Updates `dial9-tokio-telemetry` from 0.3.9 to 0.3.10 - [Release notes](https://github.com/dial9-rs/dial9-tokio-telemetry/releases) - [Changelog](https://github.com/dial9-rs/dial9/blob/main/CHANGELOG.md) - [Commits](https://github.com/dial9-rs/dial9-tokio-telemetry/compare/dial9-tokio-telemetry-v0.3.9...dial9-tokio-telemetry-v0.3.10) Updates `opentelemetry` from 0.31.0 to 0.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md) - [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-prometheus-0.31.0...opentelemetry-0.32.0) Updates `opentelemetry-otlp` from 0.31.1 to 0.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md) - [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-otlp-0.31.1...opentelemetry-otlp-0.32.0) Updates `opentelemetry_sdk` from 0.31.0 to 0.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md) - [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry_sdk-0.32.0) Updates `opentelemetry-semantic-conventions` from 0.31.0 to 0.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md) - [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry-semantic-conventions-0.32.0) Updates `opentelemetry-stdout` from 0.31.0 to 0.32.0 - [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md) - [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry-stdout-0.32.0) --- updated-dependencies: - dependency-name: sysinfo dependency-version: 0.39.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: dial9-tokio-telemetry dependency-version: 0.3.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: dependencies - dependency-name: opentelemetry dependency-version: 0.32.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: opentelemetry-otlp dependency-version: 0.32.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: opentelemetry_sdk dependency-version: 0.32.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: opentelemetry-semantic-conventions dependency-version: 0.32.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies - dependency-name: opentelemetry-stdout dependency-version: 0.32.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: dependencies ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: houseme <housemecn@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: houseme <housemecn@gmail.com> * chore(deps): bump workspace dependency versions * chore(deps): refresh lockfile windows crate graph * chore(bench): align snapshot mode labels with coverage * chore(bench): clarify tested snapshot modes * fix(review): address PR2890 Copilot comments --------- Signed-off-by: houseme <housemecn@gmail.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Specialized Docker Compose Configurations
This directory contains specialized Docker Compose configurations for specific testing scenarios.
⚠️ Important Note
For Observability:
We strongly recommend using the new, fully integrated observability stack located in ../observability/. It provides a production-ready setup with Prometheus, Grafana, Tempo, Loki, and OpenTelemetry Collector, all with persistent storage and optimized configurations.
The docker-compose.observability.yaml in this directory is kept for legacy reference or specific minimal testing needs but is not the primary recommended setup.
📁 Configuration Files
Cluster Testing
docker-compose.cluster.yaml- Purpose: Simulates a 4-node RustFS distributed cluster.
- Use Case: Testing distributed storage logic, consensus, and failover.
- Nodes: 4 RustFS instances.
- Storage: Uses local HTTP endpoints.
Legacy / Minimal Observability
docker-compose.observability.yaml- Purpose: A minimal observability setup.
- Status: Deprecated. Please use
../observability/docker-compose.ymlinstead.
🚀 Usage Examples
Cluster Testing
To start a 4-node cluster for distributed testing:
# From project root
docker compose -f .docker/compose/docker-compose.cluster.yaml up -d
Script-Based 4-Node Validation (Recommended)
Use the local validation script when you need local-source image build, failover checks, and benchmark workflow in one command:
# Default mode: WAIT_PROBE_MODE=service
# This avoids false negatives where /health/ready remains 503 locally
# while the service path is already available.
./scripts/run_four_node_cluster_failover_bench.sh
Strict mode is available when you explicitly want /health/ready == 200 as the gate:
WAIT_PROBE_MODE=ready ./scripts/run_four_node_cluster_failover_bench.sh
(Deprecated) Minimal Observability
# From project root
docker compose -f .docker/compose/docker-compose.observability.yaml up -d