ATN atn dbot metrics package
Project description
DBot-server metrics
The metrics client for dbot-server.
It supports collecting and transporting metrics for each dbot-server.
- Currently we have some inner output-plugins, and more, you can define your own ouput-plugins.
- Output-plugins can work at the same time, but we recommand only one.
- Also the input metric-plugin can be defined by yourself.
- Only you need to do is implementing the Plugin-Interface and configuring the file
collector.conf
.
Installation
pip install dbot_metrics
If you used default collector.conf file from system, you should copy it to /etc
Dependencies
Install leveldb if you want to use the recommand output-plugin leveldb-client
pip install leveldb
Install influxdb-python first if you want to use the inner output-plugin influxdb-client.
$ sudo apt-get install python-influxdb
Get more information, see https://github.com/influxdata/influxdb-python.
Install tinydb if you want to use the inner output-plugin tinydb-client.
pip install tinydb
Install unqlite if you want to use output-plugin unqlite-client
pip install unqlite
Documentation
See https://github.com/ATNIO/AI_market_plan/wiki/metric-heartbeat.
Interface
Metrics support query interface, it receive a json-type request parameter like this:
{ 'range': { 'from': 1532023625, 'to': 1532025313 },
'targets': [{'table':'student', 'type':'all', 'sentence':''},
{'table':'teacher', 'type':'sql', 'sentence': 'select * from teacher'},
{'table':'others', 'type':'columns', 'sentence': 'age|name|no'}]}
and the response format is like this:
[ {
'name': 'influxdb',
'content':[ {
'time':1532023688,
'tags':{'name':'John', 'No':10023},
'fields': {'age': 23, 'gender': 'male'}
},
{
'time':1532023798,
'tags':{'name':'Tom', 'No':10024},
'fields': {'age': 25, 'gender': 'male'}
}
]
}
]
Examples
from dbot_metrics import DBotMetricsCollector
# DBotApiMetric is a special metric in dbot_service_metric defined by yourself
from dbot_service_metric import DBotApiMetric
DBotMetricsCollector().Start("./collector.conf")
m = DBotApiMetric()
DBotMetricsCollector().RegisterMetrics(m)
m.EnableDetailRecord(False)
apiinfo = m.CallBegin("/api/dbot_server/api_call_test", "user")
# ... ... processing
m.CallEnd(apiinfo, 0)
DBotMetricsCollector().Stop()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.