Files
rustfs/crates/obs
houseme 42d3645d6f fix(targets): make target removal and reload transactional; prevent reappearing entries (#662)
* feat: improve code for notify

* upgrade starshard version

* upgrade version

* Fix ETag format to comply with HTTP standards by wrapping with quotes (#592)

* Initial plan

* Fix ETag format to comply with HTTP standards by wrapping with quotes

Co-authored-by: overtrue <1472352+overtrue@users.noreply.github.com>

* bufigx

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: overtrue <1472352+overtrue@users.noreply.github.com>
Co-authored-by: overtrue <anzhengchao@gmail.com>

* Improve lock (#596)

* improve lock

Signed-off-by: Mu junxiang <1948535941@qq.com>

* feat(tests): add wait_for_object_absence helper and improve lifecycle test reliability

Signed-off-by: Mu junxiang <1948535941@qq.com>

* chore: remove dirty docs

Signed-off-by: Mu junxiang <1948535941@qq.com>

---------

Signed-off-by: Mu junxiang <1948535941@qq.com>

* feat(append): implement object append operations with state tracking (#599)

* feat(append): implement object append operations with state tracking

Signed-off-by: junxiang Mu <1948535941@qq.com>

* chore: rebase

Signed-off-by: junxiang Mu <1948535941@qq.com>

---------

Signed-off-by: junxiang Mu <1948535941@qq.com>

* build(deps): upgrade s3s (#595)

Co-authored-by: loverustfs <155562731+loverustfs@users.noreply.github.com>

* fix: validate mqtt broker

* improve code for `import`

* fix

* improve

* remove logger from `rustfs-obs` crate

* remove code for config Observability

* fix

* improve code

* fix comment

* up

* up

* upgrade version

* fix

* fmt

* upgrade tokio version to 1.48.0

* upgrade `datafusion` and `reed-solomon-simd` version

* fix

* fmt

* improve code for notify webhook example

* improve code

* fix

* fix

* fmt

---------

Signed-off-by: Mu junxiang <1948535941@qq.com>
Signed-off-by: junxiang Mu <1948535941@qq.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: overtrue <1472352+overtrue@users.noreply.github.com>
Co-authored-by: overtrue <anzhengchao@gmail.com>
Co-authored-by: guojidan <63799833+guojidan@users.noreply.github.com>
Co-authored-by: Nugine <nugine@foxmail.com>
Co-authored-by: loverustfs <155562731+loverustfs@users.noreply.github.com>
2025-10-17 15:34:53 +08:00
..

RustFS

RustFS Obs - Observability & Monitoring

Comprehensive observability and monitoring system for RustFS distributed object storage

CI 📖 Documentation · 🐛 Bug Reports · 💬 Discussions


📖 Overview

RustFS Obs provides comprehensive observability and monitoring capabilities for the RustFS distributed object storage system. For the complete RustFS experience, please visit the main RustFS repository.

Features

  • Environment-Aware Logging: Automatically configures logging behavior based on deployment environment
    • Production: File-only logging (stdout disabled by default for security and log aggregation)
    • Development/Test: Full logging with stdout support for debugging
  • OpenTelemetry integration for distributed tracing
  • Prometheus metrics collection and exposition
  • Structured logging with configurable levels and rotation
  • Performance profiling and analytics
  • Real-time health checks and status monitoring
  • Custom dashboards and alerting integration
  • Enhanced error handling and resilience

🚀 Environment-Aware Logging

The obs module automatically adapts logging behavior based on your deployment environment:

Production Environment

# Set production environment - disables stdout logging by default
export RUSTFS_OBS_ENVIRONMENT=production

# All logs go to files only (no stdout) for security and log aggregation
# Enhanced error handling with clear failure diagnostics

Development/Test Environment

# Set development environment - enables stdout logging
export RUSTFS_OBS_ENVIRONMENT=development

# Logs appear both in files and stdout for easier debugging
# Full span tracking and verbose error messages

Configuration Override

You can always override the environment defaults:

use rustfs_obs::OtelConfig;

let config = OtelConfig {
    endpoint: "".to_string(),
    use_stdout: Some(true), // Explicit override - forces stdout even in production
    environment: Some("production".to_string()),
    ..Default::default()
};

Supported Environment Values

  • production - Secure file-only logging
  • development - Full debugging with stdout
  • test - Test environment with stdout support
  • staging - Staging environment with stdout support

📚 Documentation

For comprehensive documentation, examples, and usage guides, please visit the main RustFS repository.

📄 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.