houseme a4fda6d21e Merge branch 'feature/observability'
* feature/observability: (27 commits)
  modify default value
  TryInto cover
  upgrade reqwest version from 0.12.12 to 0.12.15
  improve code for FileSink
  improve code for config and FileSink
  webhook add auth_token
  upgrade docker images
  feat(obs): enhance OpenTelemetry configuration and logging
  merge main
  feat: add metrics_handler
  add prometheus
  upgrade opentelemetry create from 0.28.0 to 0.29.0
  update .gitignore
  replace log to tracing
  improve code for observability
  improve code for main
  feat(observability): add obs_config option and document stdout export
  improve logger entry for Observability
  improve log struct
  improve code
  ...
2025-04-02 16:19:38 +08:00
2025-03-14 23:26:54 +08:00
2025-03-27 22:21:10 +08:00
2025-03-29 19:38:30 +08:00
2024-07-26 17:29:50 +08:00
2025-03-31 06:32:05 +00:00
2025-04-02 16:08:51 +08:00
2025-02-11 10:10:12 +08:00
2025-03-31 18:32:22 +08:00
2025-04-02 15:57:11 +08:00
2025-03-03 17:38:17 +08:00
2025-03-30 21:28:29 +08:00
2025-04-02 00:51:59 +08:00
2025-04-02 15:57:11 +08:00
2025-04-01 03:52:55 +00:00
2025-03-28 15:39:53 +08:00
2025-04-02 15:57:11 +08:00
2025-04-02 15:57:11 +08:00
2025-04-02 15:57:11 +08:00
2025-03-14 23:26:54 +08:00
2025-03-14 23:26:54 +08:00
2025-03-11 16:12:34 +08:00
2024-07-01 19:33:20 +08:00
2025-03-20 01:16:55 +08:00

How to compile RustFS

Must package Version
Rust 1.8.5
protoc 27.0
flatc 24.0+

Download Links:

https://github.com/google/flatbuffers/releases/download/v24.3.25/Linux.flatc.binary.g++-13.zip

https://github.com/protocolbuffers/protobuf/releases/download/v27.0/protoc-27.0-linux-x86_64.zip

Or use Docker:

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

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

How to add Console web

  1. wget http://dl.rustfs.com/console/console.latest.tar.gz

  2. mkdir in this repos folder ./rustfs/static

  3. Compile RustFS

Star RustFS

Add Env infomation:

export RUST_LOG="rustfs=debug,ecstore=debug,s3s=debug,iam=debug"
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"
export RUSTFS_OBS_CONFIG="config/obs.toml"

You need replace your real data folder:

./rustfs /data/rustfs

How to deploy the observability stack

The OpenTelemetry Collector offers a vendor-agnostic implementation on how to receive, process, and export telemetry data. It removes the need to run, operate, and maintain multiple agents/collectors in order to support open-source observability data formats (e.g. Jaeger, Prometheus, etc.) sending to one or more open-source or commercial back-ends.

  1. Enter the .docker/observability directory,
  2. Run the following command:
docker-compose -f docker-compose.yml up -d
  1. Access the Grafana dashboard by navigating to http://localhost:3000 in your browser. The default username and password are admin and admin, respectively.

  2. Access the Jaeger dashboard by navigating to http://localhost:16686 in your browser.

  3. Access the Prometheus dashboard by navigating to http://localhost:9090 in your browser.

Create a new Observability configuration file

1. Enter the config directory,

2. Copy obs.toml.example to obs.toml

3. Modify the obs.toml configuration file

3.1. Modify the endpoint value to the address of the OpenTelemetry Collector
3.2. Modify the service_name value to the name of the service
3.3. Modify the service_version value to the version of the service
3.4. Modify the deployment_environment value to the environment of the service
3.5. Modify the meter_interval value to export interval
3.6. Modify the sample_ratio value to the sample ratio
3.7. Modify the use_stdout value to export to stdout
Languages
Rust 98.1%
Shell 1.5%
Makefile 0.2%
Just 0.1%