Skip to content

Latest commit

 

History

History

storage

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

mohawk/storage

Mohawk

Mohawk is a metric data storage engine that uses a plugin architecture for data storage and a simple REST API as the primary interface.

Storage Plugins

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.

Plugin Development

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.

Plugins Comparison

  • Example - a storage template.
  • Sqlite - a file storage based storage.
  • Memory - a memory storage based storage.
  • Mongo - a cluster based storage.

Features

Plugin Speed Retention Limit Scaleability Storage
Example No storage
Memory Very Fast 7 days Memory
Sqlite Fast Local File
Mongo Fast Cluster Mongo DB

REST Endpoint Implementation

Plugin Multi Tenancy Read Write Update Delete
Example ✔️
Memory ✔️ ✔️ ✔️ ✔️
Sqlite ✔️ ✔️ ✔️ ✔️ ✔️
Mongo ✔️ ✔️ ✔️ ✔️

Metrics List Implementation

Plugin Filter by Tag RegEx Last Values
Example
Memory ✔️ ✔️
Sqlite ✔️
Mongo ✔️

Aggregation and Statistics Implementation

Plugin Min Max First Last Avg Median Std Sum Count
Example ✔️ ✔️
Memory ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Sqlite ✔️ ✔️ ✔️ ✔️ ✔️
Mongo ✔️ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️