ATN ATN DBOT度量包

dbot-metrics的Python项目详细描述


dbot服务器指标

dbot服务器的metrics客户端。

它支持收集和传输每个dbot服务器的度量。

  • 目前我们有一些内部输出插件,更多的,你可以定义你自己的输出插件。
  • 输出插件可以同时工作,但我们建议只有一个。
  • 输入度量插件也可以自己定义。
  • 只需要实现插件接口并配置文件collector.conf

安装

pip install dbot_metrics

如果使用系统中的默认collector.conf文件,则应将其复制到/etc

依赖关系

如果要使用建议的输出插件leveldb client,请安装leveldb

pip install leveldb

如果要使用内部输出插件infloxdb client,请先安装infloxdb python。

$ sudo apt-get install python-influxdb

获取更多信息,请参见https://github.com/influxdata/influxdb-python

如果要使用内部输出插件tinydb client,请安装tinydb。

pip install tinydb

如果要使用输出插件unqlite client,请安装unqlite

pip install unqlite

文档

https://github.com/ATNIO/AI_market_plan/wiki/metric-heartbeat

接口

metrics支持查询接口,它接收一个json类型的请求参数,如下所示:

{ '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'}]}

响应格式如下:

[ {
    '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'}
                }
              ]
   }
]

示例

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()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我的int值在SharedReferences中不被记住   java如何编辑Spring可分页对象?   java如何在gradle中单独调用任务   jvm以编程方式设置最大java堆大小   java如果满足多个条件,如何使用If语句计算数字?   如何在java中从json文件中获取特定值   如何在Sphinx4中为Java语音识别添加自定义语法?   java int[]copy=data;//当数据是数组时会发生什么?   java豪猪管理器。停下来。destroy()不起作用   安卓在API级别28中找不到画布变量   基于SOLID的java冗余   用于talend作业的java Liferay和portlet   从java到安卓的视频流   java获取在控件的类定义中添加自定义控件的场景大小   awt Java IndexOutOfBoundsException   java如何使用Spring JmsTemplate更改MQ头   java遍历数组并打印每个对象   java Google Map api v2标记在我旋转手机和地图“刷新”之前不会移动