#whisper #carbon #up #pure #package #ecosystem #docker

nightly bin+lib graphite

A fast, pure rust graphite implementation. Includes whisper, carbon, and graphite.

3 unstable releases

Uses old Rust 2015

0.2.3 Sep 28, 2015
0.2.2 Sep 26, 2015
0.0.1 Aug 6, 2015

#6 in #carbon

Download history 4/week @ 2024-02-26 5/week @ 2024-03-11 57/week @ 2024-04-01

62 downloads per month

MIT license

73KB
689 lines

The graphite ecosystem in one easy-to-install package.

Build status

Docker

By far the easiest experience for getting up and running

docker pull xrlx/graphite mkdir data docker run -v ./data:/data xrlx/graphite

Building

Note: you'll need a nightly rust build to build this

$ git clone git@github.com:tureus/graphite-rust.git $ cd graphite-rust $ cargo build --release $ RUST_LOG=debug ./target/debug/carbon

Tasks

  • Read headers
  • Read single point
  • Write to single archive
  • Write through all archives with downsampling
  • Create files
  • Read many points
  • [ND] Lock files (not necessary with memmap pattern?)
  • mmap files (PROFILING)
  • UDP daemon
  • TCP daemon
  • Custom schema support when creating new WSPs
  • Pickle daemon
  • HTTP frontend
  • Make logging useful for ops
  • Validate .wsp when opening (archives need to cleanly multiply, etc)

Documentation

http://tureus.github.io/graphite-rust

Reference

Documentation for the whisper file format is slim/nil. Clone the official repo and take a look at whisper.py

$ git clone git@github.com:graphite-project/whisper.git

Talking to Carbon

On OSX you need to specify IPv4:

echo -e "local.random.diceroll 4 date +%s" | nc -4u -w0 localhost 2003

On linux:

echo "local.random.diceroll 4 date +%s" | nc -u -w 1 localhost 2003

Memory stats:

yum install -y sysstat toolbox sar -B 1

Dependencies

~6.5MB
~111K SLoC