bees-prometheus-exporter 0.1.1

Prometheus exporter for the bees deduplication daemon
bees-prometheus-exporter-0.1.1 is not a library.
Visit the last successful build: bees-prometheus-exporter-2.0.0

Bees Prometheus Exporter

A Prometheus metrics exporter for the Bees deduplication daemon, written in Rust.

Installation

From Source

Clone the repository and build:

git clone https://github.com/Jannik2099/bees-prometheus-exporter
cd bees-prometheus-exporter
cargo build --release

The binary will be located at target/release/bees-prometheus-exporter.

Using Cargo

Install directly from the repository:

cargo install --git https://github.com/Jannik2099/bees-prometheus-exporter

Usage

Basic usage with default settings:

bees-prometheus-exporter

The exporter will start on port 8080 and read Bees statistics from /run/bees/.

Command Line Options

bees-prometheus-exporter [OPTIONS]
  • -s, --bees-work-dir PATH: Path to Bees work directory (default: /run/bees)
  • -p, --port PORT: Port to bind the HTTP server to (default: 8080)
  • -a, --address ADDRESS: Address to bind the HTTP server to (default: ::0)
  • -l, --log-level LEVEL: Logging level - error, warn, info, debug, trace (default: info)

Examples

Bind to localhost only:

bees-prometheus-exporter --address 127.0.0.1

Enable debug logging:

bees-prometheus-exporter --log-level debug

Metrics

The exporter reads Bees status files (<fs-uuid>.status) from bees' stats directory, by default /run/bees.

The available metrics are described in https://github.com/Zygo/bees/blob/master/docs/event-counters.md

Additionally, the exporter reads the per-extent-size progress summary.

Metric Format

All metrics follow the pattern bees_{metric_name}_total and include a uuid label identifying the filesystem.

The per-extent-size progress summary is formatted as bees_progress_summary_{column_name}, with the columns datasz_bytes, point, gen_min and gen_max. The extent size is provided as a label.
When point is idle, bees_progress_summary_point_idle reports 1, else 0

Configuration

Note that, by default, /run/bees is root-owned. The exporter requires read access to the directory.

Prometheus Configuration

Add the exporter to your Prometheus configuration:

scrape_configs:
  - job_name: "bees"
    static_configs:
      - targets: ["localhost:8080"]
    scrape_interval: 30s # bees updates the stats file once per second

Monitoring Examples

Grafana Dashboard Queries

Deduplication ratio:

rate(bees_bytes_deduped_total[5m]) / rate(bees_bytes_scanned_total[5m])

Deduplication rate in MiB/s:

rate(bees_bytes_deduped_total[5m]) / 1024 / 1024

Files processed per second:

rate(bees_files_scanned_total[5m])

Requirements

  • Rust 1.85+ (for building from source)
  • Bees deduplication daemon running and producing status files