Why M3?
M3, a metrics platform, and M3DB, a distributed time series database, were developed at Uber out of necessity. After using what was available as open source and finding we were unable to use them at our scale due to issues with their relability, cost and operationally intensive nature we built our own metrics platform piece by piece. We used our experience to help us build a native distributed time series database, a highly dynamic and performant aggregation service, query engine and other supporting infrastructure.
Cluster Management
Out of the box support for handling multiple clusters, built on top of etcd
Replicated
Built-in replication with configurable durability and read consistency for your needs
Customizable Consistency
Reads and writes can be set to quorum or lower or higher depending on durability preferences
Prometheus Integration
M3DB can act as the long term storage for Prometheus using remote read/write endpoints
Highly Compressed
Efficient compression algorithm inspired by Gorilla TSZ, configurable as lossless or lossy
Arbitrary Time Precision
Configurable precision from seconds to nanoseconds, with the ability to switch precision with any write
Out of order writes
Handles out of order writes seamlessly, only limited by the size of the configured database block size
Fully open source
All features are fully available and open source. Any contributions are welcome!