finds.dev← search

// the find

grafana-cold-storage/metrictank

★ 617 · Go · AGPL-3.0 · updated Aug 2023

metrics2.0 based, multi-tenant timeseries store for Graphite and friends.

Metrictank was Grafana Labs' homegrown multi-tenant timeseries backend for Graphite, running in their production since 2015. It used Gorilla-style chunk compression, Cassandra or Bigtable for long-term storage, and Kafka for clustering. Grafana officially abandoned it in August 2023 in favor of Mimir.

The chunk compression implementation (based on the Facebook Gorilla paper) was genuinely clever — float64 delta-of-delta encoding gets 10-40x compression ratios in practice. Per-series configurable rollup functions (min/max/sum/count/avg selectable at query time via consolidateBy) solved a real correctness problem that Whisper never did. The tooling ecosystem is unusually thorough for an internal project: index inspection, Kafka sniffers, whisper importers, load generators — all in the same repo. Speculative execution against replicas for latency reduction, not just HA, is a design choice that shows production thinking.

It is unmaintained and has been replaced by its own authors — this is not a 'low activity' situation, it is explicitly dead. The operational footprint is heavy: Cassandra or Bigtable, Kafka, Kubernetes for clustering, plus the Graphite-web process for unsupported functions. Clustering requires an external orchestrator to handle master promotion; Metrictank itself has no automated failover, so a restart means potential data loss of in-memory chunks. Only float64 at second resolution — no sub-second timestamps, which makes it a poor fit for anything touching modern distributed tracing or high-frequency metrics.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →