Difference between revisions of "MagnetoDB/specs/monitoring-api"
(→Implementation) |
(→Work Items) |
||
Line 48: | Line 48: | ||
Other contributors: | Other contributors: | ||
<None> | <None> | ||
+ | |||
===== Work Items ===== | ===== Work Items ===== | ||
− | Define Monitoring API on wiki. | + | #Define Monitoring API on wiki. |
− | Write interface for API. | + | #Write interface for API. |
− | Implement calls from MagnetoDB to Jolokia agent. | + | #Implement calls from MagnetoDB to Jolokia agent. |
===== Dependencies ===== | ===== Dependencies ===== |
Revision as of 09:25, 11 September 2014
MagnetoDB monitoring api
Launchpad: monitoring-api
The API for exposing usage statistic for users, external monitoring or billing tools.
Problem Description
As a magnetodb user I need to know how much data I have in table As a magnetodb administrator I need to know now much space is used with user's table As a accountant department I need to know how big user's table is in order to create a bill
Proposed Change
- Introduce monitoring API available on the same port as data API by path /moninoting/*
- implement REST method for list of tables /moninoting/{tenant_id}/tables
- table usage details /moninoting/{tenant_id}/table/{table_name}
Response: {size: 1003432; item_count: 3000}
Alternatives
Implement as part of data API. However it gives access to data itself for monitoring tools.
Security Impact
- authorization is performed by user's token
- authorization can be performed by token with specific role
Notifications Impact
None
Other End User Impact
TBD
Performance Impact
Now we have POC for count items in table (https://review.openstack.org/#/c/118557/) but this implementation is very expensive (we scan all our data to get one counter). So we need change concept and use Cassandra JMX to get approximate number of items and also size of CF on disk.
Other Deployer Impact
None
Developer Impact
None
Implementation
Current concept: at Cassandra node we run JMX-HTTP bridge agent (Jolokia). Client goes to MagnetoDB with REST-like interface (.../moninoting/{tenant_id}/table/{table_name}), MagnetoDB goes to Jolokia agent via HTTP, get JMX-metrics from Cassanra and returns them to client. If you have any suggestions about implementation - welcome to our IRC-channel at Freenode #magnetodb.
Assignee(s)
Primary assignee:
<ominakov>
Other contributors:
<None>
Work Items
- Define Monitoring API on wiki.
- Write interface for API.
- Implement calls from MagnetoDB to Jolokia agent.
Dependencies
Documentation Impact
Monitoring API section should be added here http://magnetodb.readthedocs.org/en/latest/api_reference.html
References
None