houseme e6b019c29d Merge branch 'main' of github.com:rustfs/s3-rustfs into feature/observability-metrics
# Conflicts:
#	.github/workflows/build.yml
#	.github/workflows/ci.yml
#	Cargo.lock
#	Cargo.toml
#	appauth/src/token.rs
#	crates/config/src/config.rs
#	crates/event-notifier/examples/simple.rs
#	crates/event-notifier/src/global.rs
#	crates/event-notifier/src/lib.rs
#	crates/event-notifier/src/notifier.rs
#	crates/event-notifier/src/store.rs
#	crates/filemeta/src/filemeta.rs
#	crates/notify/examples/webhook.rs
#	crates/utils/Cargo.toml
#	ecstore/Cargo.toml
#	ecstore/src/cmd/bucket_replication.rs
#	ecstore/src/config/com.rs
#	ecstore/src/disk/error.rs
#	ecstore/src/disk/mod.rs
#	ecstore/src/set_disk.rs
#	ecstore/src/store_api.rs
#	ecstore/src/store_list_objects.rs
#	iam/Cargo.toml
#	iam/src/manager.rs
#	policy/Cargo.toml
#	rustfs/src/admin/rpc.rs
#	rustfs/src/main.rs
#	rustfs/src/storage/mod.rs
2025-06-19 13:16:48 +08:00
2025-06-09 15:31:11 +08:00
wip
2025-06-16 08:28:46 +08:00
2025-06-17 15:06:40 +08:00
wip
2025-06-17 22:37:38 +08:00
wip
2025-06-16 08:28:46 +08:00
wip
2025-06-16 08:28:46 +08:00

RustFS

English Documentation |中文文档

Prerequisites

Package Version Download Link
Rust 1.8.5+ rust-lang.org/tools/install
protoc 31.1+ protoc-31.1-linux-x86_64.zip
flatc 24.0+ Linux.flatc.binary.g++-13.zip

Building RustFS

Generate Protobuf Code

cargo run --bin gproto

Using Docker for Prerequisites

- uses: arduino/setup-protoc@v3
  with:
    version: "30.2"

- uses: Nugine/setup-flatc@v1
  with:
    version: "25.2.10"

Adding Console Web UI

  1. Download the latest console UI:
    wget https://dl.rustfs.com/artifacts/console/rustfs-console-latest.zip
    
  2. Create the static directory:
    mkdir -p ./rustfs/static
    
  3. Extract and compile RustFS:
    unzip rustfs-console-latest.zip -d ./rustfs/static
    cargo build
    

Running RustFS

Configuration

Set the required environment variables:

# Basic config
export RUSTFS_VOLUMES="./target/volume/test"
export RUSTFS_ADDRESS="0.0.0.0:9000"
export RUSTFS_CONSOLE_ENABLE=true
export RUSTFS_CONSOLE_ADDRESS="0.0.0.0:9001"

# Observability config
export RUSTFS_OBS_ENDPOINT="http://localhost:4317"

# Event message configuration
#export RUSTFS_EVENT_CONFIG="./deploy/config/event.toml"

Start the service

./rustfs /data/rustfs

Observability Stack Otel and OpenObserve

OpenTelemetry Collector 和 Jaeger、Grafana、Prometheus、Loki

  1. Navigate to the observability directory:

    cd .docker/observability
    
  2. Start the observability stack:

    docker compose -f docker-compose.yml  up -d
    

Access Monitoring Dashboards

  • Grafana: http://localhost:3000 (credentials: admin/admin)
  • Jaeger: http://localhost:16686
  • Prometheus: http://localhost:9090

Configure observability

OpenTelemetry Collector address(endpoint):  http://localhost:4317 

OpenObserve and OpenTelemetry Collector

  1. Navigate to the OpenObserve and OpenTelemetry directory:
    cd .docker/openobserve-otel
    
  2. Start the OpenObserve and OpenTelemetry Collector services:
     docker compose -f docker-compose.yml up -d
    
  3. Access the OpenObserve UI: OpenObserve UI: http://localhost:5080
    • Default credentials:
      • Username: root@rustfs.com
      • Password: rustfs123
    • Exposed ports:
      • 5080: HTTP API and UI
      • 5081: OTLP gRPC
Description
🚀 High-performance distributed object storage for MinIO alternative. RustFS 是一个使用 Rust(全球最受欢迎的编程语言之一)构建的高性能分布式对象存储软件。与 MinIO 一样
Readme Apache-2.0 54 MiB
Languages
Rust 97.9%
Shell 1.7%
Makefile 0.1%
Python 0.1%