用于cube的python客户端:时间序列数据收集与分析
cube-client的Python项目详细描述
用于Cube: Time Series Data Collection & Analysis的python客户端。
概述
>>>fromcubeimportCube,ONE_HOUR>>>c=Cube()>>>>>>c.put('sample_data',{'myval':10})[{'data':{'myval':10},'type':'sample_data','time':'2012-10-01T13:04:04.453929'}]>>>c.event('sample_data')[{u'time':u'2012-10-01T13:04:04.453Z'}]>>>c.put('sample_data',{'myval':20})[{'data':{'myval':20},'type':'sample_data','time':'2012-10-01T13:04:39.725676'}]>>>c.event('sample_data')[{u'time':u'2012-10-01T13:04:04.453Z'},{u'time':u'2012-10-01T13:04:39.725Z'}]>>>c.event('sample_data(myval)')[{u'data':{u'myval':10},u'time':u'2012-10-01T13:04:04.453Z'},{u'data':{u'myval':20},u'time':u'2012-10-01T13:04:39.725Z'}]>>>c.metric('sum(sample_data)',step=ONE_HOUR,start='2012-10-01')[{u'value':0,u'time':u'2012-10-01T00:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T01:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T02:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T03:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T04:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T05:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T06:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T07:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T08:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T09:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T10:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T11:00:00.000Z'},{u'value':0,u'time':u'2012-10-01T12:00:00.000Z'},{u'value':2,u'time':u'2012-10-01T13:00:00.000Z'}]
要求
安装
$ pip install cube-client
用法
fromcubeimportCube,ONE_HOURfromdatetimeimportdatetimecube=Cube()# orcube=Cube('localhost')# Create an eventcube.put("myevent",{'temp':30})# orcube.put("myevent",{'temp':30},time=datetime.now().isoformat())# Low level queries# =================# Request events data# See Cube queries:# https://github.com/square/cube/wiki/Queries#wiki-metriccube.event('myevent(temp)')# Request metricscube.metric('sum(myevent(temp))',step='36e5',start='2013-9-01'))# orcube.metric('sum(myevent(temp))',step=ONE_HOUR,start=datetime(2013,9,1))# Request known event typescube.types()# High level queries# ==================fromcube.expressionsimportEventExpression,Sumtemp=EventExpression('myevent','temp')cube.metric(Sum(temp),step=ONE_HOUR,start='2013-10-1')
事件助手
fromcubeimportCube,Event,Sumcube=Cube()my_event=cube.get_event('myevent')# ormy_event=Event(cube,'myevent')my_event.put({'temp':10})my_event.put({'temp':20})my_event.event()# [{u'time': u'2012-10-01T13:04:04.453Z'}, {u'time': u'2012-10-01T13:04:39.725Z'}]my_event.event('myevent(temp)')temp=my_event.expression('temp').gt('temp',15)# => myevent(temp).gt(temp, 15)my_event.metric(Sum(temp))# => my_event.metric('sum(myevent(temp).gt(temp, 15))')
公制分辨率快捷方式
- 10秒对于1e4-10秒
- 1分钟对于6e4-1分钟
- 5分钟对于3e5-5分钟
- 1小时对于36e5-1小时
- 1日对于864e5-1日
fromcubeimportONE_HOUR,FIVE_MINUTE
时间单位
fromcubeimportONE_HOURfromcube.time_utilsimporttimeagoc.metric('sum(myevent(key))',step=ONE_HOUR,start=timeago('6h'))
更改日志
0.2.0
尚未发布
- 清除代码(PEP8)
- 与请求2.0兼容
- 添加了度量分辨率快捷方式
- 添加事件助手
- 合并了pypercube、time_utils、EventExpression和Filter的某些部分。
许可证(MIT)
版权所有(c)2013 Thomas Sileo和Steven Buss
特此免费授予获得本软件副本和相关文档文件(以下简称“软件”)的任何人使用本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再授权和/或出售本软件副本的权利,并在符合以下条件的情况下,允许向其提供软件的人员这样做:
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
<软件>提供“原样”,无任何担保,明示或默示,包括但不限于适销性、适合特定用途和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,由软件或软件的使用或其他交易引起的、由软件引起的或与之相关的。