Skip to content
/ beamium Public
forked from ovh/beamium

Promotheus to Warp10 metrics forwarder

License

Notifications You must be signed in to change notification settings

olinkl/beamium

 
 

Repository files navigation

Beamium - Prometheus to Warp10 metrics forwarder

version Build Status

Beamium collect metrics from Prometheus endpoints and forward them to Warp10 data platform.

Beamium is written in Rust to ensure efficiency, a very low footprint and deterministic performances.

Beamium key points:

  • Simple: Beamium fetch Prometheus metrics and so benefits from an awesome community.
  • Reliable: Beamium handle network failure. Never lose data. We guarantee void proof graph ;)
  • Versatile: Beamium can also fetch metrics from a directory.
  • Powerfull: Beamium is able to filter metrics and to send them to multiple Warp10 platforms.

Status

Beamium is currently under development.

Building

Beamium is pretty easy to build.

  • Clone the repository
  • Setup a minimal working config (see bellow)
  • Build and run cargo run

Configuration

Beamium come with a sample config file. Simply copy the sample to config.yaml, replace WARP10_ENDPOINT and WARP10_TOKEN, launch Beamiun and you are ready to go!

Definitions

Config is composed of four parts:

Sources

Beamium can have none to many Prometheus endpoints. A source is defined as follow:

sources: # Sources definitions (Optional)
  source1:                             # Source name                  (Required)
    url: http://127.0.0.1:9100/metrics # Prometheus endpoint          (Required)
    period: 10000                      # Polling interval             (Required)
    format: prometheus                 # Polling format               (Optional, default: prometheus, value: [prometheus, sensision])
    metrics:                           # Filter fetched metrics       (Optional)
      - node.*                         # Regex used to select metrics (Required)

Sinks

Beamium can have none to many Warp10 endpoints. A sink is defined as follow:

sinks: # Sinks definitions (Optional)
  source1:                             # Sink name                                (Required)
    url: https://warp.io/api/v0/update # Warp10 endpoint                          (Required)
    token: mywarp10token               # Warp10 write token                       (Required)
    token-header: X-Custom-Token       # Warp10 token header name                 (Optional, default: X-Warp10-Token)
    selector: metrics.*                # Regex used to filter metrics             (Optional, default: None)
    ttl: 3600                          # Discard file older than ttl (seconds)    (Optional, default: 3600)
    size: 1073741824                   # Discard old file if sink size is greater (Optional, default: 1073741824)

Labels

Beamium can add static labels to collected metrics. A label is defined as follow:

labels: # Labels definitions (Optional)
  label_name: label_value # Label definition             (Required)

Parameters

Beamium can be customized through parameters. See available parameters bellow:

parameters: # Parameters definitions (Optional)
  source-dir: sources # Beamer data source directory                    (Optional, default: sources)
  sink-dir: sinks       # Beamer data sink directory                    (Optional, default: sinks)
  scan-period: 1000     # Delay(ms) between source/sink scan            (Optional, default: 1000)
  batch-count: 250      # Maximum number of files to process in a batch (Optional, default: 250)
  batch-size: 200000    # Maximum batch size                            (Optional, default: 250)
  log-file: beamium.log # Log file                                      (Optional, default: beamium.log)
  log-level: 4          # Log level                                     (Optional, default: info)
  timeout: 500          # Http timeout (seconds)                        (Optional, default: 500)

Contributing

Instructions on how to contribute to Beamium are available on the Contributing page.

Get in touch

About

Promotheus to Warp10 metrics forwarder

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 100.0%