criteo / biggraphite

Simple Scalable Time Series Database
Apache License 2.0
130 stars 36 forks source link

Prometheus read/write support #255

Open iksaif opened 7 years ago

iksaif commented 7 years ago

See https://github.com/prometheus/prometheus/blob/HEAD/storage/remote/remote.proto for the protocol

iksaif commented 7 years ago

https://github.com/criteo/graphite-remote-adapter for the go part, which may have a biggraphite specific client.

First step: native Graphite implementation

Prefix all prometheus metrics by prometheus (or something configurable). Always call /find first to get the list of metric, then call render. We call render once per metric (or maybe batch). Only get data older than x amount of time (configurable)

We will probably want to heavilly cache the results.

Second step: BigGraphite implementation

On the write path:

For the read path:

First, use the Graphite read path and chose some special characters to do {label=value}. Later, have our own fast-path for prometheus.

iksaif commented 7 years ago

Work ongoing on https://github.com/criteo/graphite-remote-adapter