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 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
