Mohawk is a metric data storage engine that uses a plugin architecture for data storage and a simple REST API as the primary interface.
Mohawk can use different storage plugins for different use cases. Different storage plugins may vary in speed, persistence and scale ability. Mohawk use a subset of Hawkular's REST API, inheriting Hawkular's ecosystem of clients and plugins.
A storage plugin should implement the Storage interface. Each storage plugin is built for specific use case, with features that best suite this use case.
Implementation of a feature should not interfere with the storage plugin functionality, for example, a plugin built for speed may choose not to implement a feature that may slow it down.
Plugins that implement a subset of the interface, must fail silently for unimplemented requests.
For a starting template of a storage plugin, look at the storage example directory.
- Example - a storage template.
- Sqlite - a file storage based storage.
- Memory - a memory storage based storage.
- Mongo - a cluster based storage.
Plugin | Speed | Retention Limit | Scaleability | Storage |
---|---|---|---|---|
Example | No storage | |||
Memory | Very Fast | 7 days | Memory | |
Sqlite | Fast | Local File | ||
Mongo | Fast | Cluster | Mongo DB |
Plugin | Multi Tenancy | Read | Write | Update | Delete |
---|---|---|---|---|---|
Example | ✔️ | ||||
Memory | ✔️ | ✔️ | ✔️ | ✔️ | |
Sqlite | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Mongo | ✔️ | ✔️ | ✔️ | ✔️ |
Plugin | Filter by Tag RegEx | Last Values |
---|---|---|
Example | ||
Memory | ✔️ | ✔️ |
Sqlite | ✔️ | |
Mongo | ✔️ |
Plugin | Min | Max | First | Last | Avg | Median | Std | Sum | Count |
---|---|---|---|---|---|---|---|---|---|
Example | ✔️ | ✔️ | |||||||
Memory | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||
Sqlite | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ||||
Mongo | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |