没有项目描述

Grafane的Python项目详细描述


格拉凡尼

一个非常固执己见的infloxdb客户机,它使用official python client,并在grafana的查询生成器中受到很大启发。

设置

pip install grafane

为了查询infloxdb,此库希望设置以下环境变量:

  • INFLUXDB_HOST:默认为0.0.0
  • INFLUXDB_PORT:默认为8086
  • INFLUXDB_DB:默认为metrics
  • INFLUXDB_USER:默认为admin
  • INFLUXDB_USER_PASSWORD:默认为admin123

落差测量

c = Grafane(metric='test')
c.drop_measurement() # Drops test from influxdb

写入

使用:

points=[{'fields':{'value':1.2,'value2':1.3,},'tags':{'tag1':'value1','tag2':'value2'}},{'fields':{'value':1.86,'value2':2.3,},'tags':{'tag1':'value2','tag2':'value1'}},{'fields':{'value':1.4,'value2':1.1,},'tags':{'tag1':'value3','tag2':'value2'}},{'fields':{'value':1.8,'value2':1.95,},'tags':{'tag1':'value1','tag2':'value2'}},]

您可以执行多个单一查询:

fromgrafaneimportGrafanec=Grafane(metric='generic')# Metric defaults to genericforpinpoints:c.report(p['fields'],p['tags'])

或一个具有多个点的查询:

c.report_points(points)

如果不为点提供time,则默认为:

>>>datetime.utcnow().replace(tzinfo=pytz.utc)datetime.datetime(2019,2,8,19,32,38,788003,tzinfo=<UTC>)

阅读

选择

In[6]:c.select(fields='value')In[7]:c.execute_query()Out[7]:[{'time':'2019-02-10T20:37:13.786477056Z','value':1.2},{'time':'2019-02-10T20:37:13.786508032Z','value':1.86},{'time':'2019-02-10T20:37:13.786518016Z','value':1.4},{'time':'2019-02-10T20:37:13.786535936Z','value':1.8}]

选择多个字段

In[16]:c.select(fields=['value','value2'])In[17]:c.execute_query()Out[17]:[{'time':'2019-02-10T20:42:37.22864512Z','value':1.2,'value2':1.3},{'time':'2019-02-10T20:42:37.228871936Z','value':1.86,'value2':2.3},{'time':'2019-02-10T20:42:37.228883968Z','value':1.4,'value2':1.1},{'time':'2019-02-10T20:42:37.22889216Z','value':1.8,'value2':1.95}]

选择w/聚合

In[18]:c.select(fields='value',aggregation='sum')In[19]:c.execute_query()Out[19]:[{'time':'1970-01-01T00:00:00Z','sum':6.26}]

选择多个字段w/聚合

In[20]:c.select(fields=['value','value2'],aggregation=['sum','mean'])In[21]:c.execute_query()Out[21]:[{'time':'1970-01-01T00:00:00Z','sum':6.26,'mean':1.6625}]

按时间块分组聚合结果

In[22]:c.select(fields=['value','value2'],aggregation=['sum','mean'])In[23]:c.time_block('1m')In[24]:c.execute_query()Out[24]:[{'time':'2019-02-10T20:42:00Z','sum':6.26,'mean':1.6625},{'time':'2019-02-10T20:43:00Z','sum':None,'mean':None},{'time':'2019-02-10T20:44:00Z','sum':None,'mean':None},{'time':'2019-02-10T20:45:00Z','sum':None,'mean':None},{'time':'2019-02-10T20:46:00Z','sum':None,'mean':None},{'time':'2019-02-10T20:47:00Z','sum':None,'mean':None}]

分组时间块时,为了避免空行,您需要用none来填充结果

In[29]:c.select(fields=['value','value2'],aggregation=['sum','mean'])In[30]:c.time_block('1m')In[31]:c.fill_with('none')In[32]:c.execute_query()Out[32]:[{'time':'2019-02-10T20:42:00Z','sum':6.26,'mean':1.6625}]

按标记值将聚合结果分组

In[34]:c.select(fields=['value','value2'],aggregation=['sum','mean'])In[35]:c.group_by('tag1')In[36]:c.execute_query()Out[36]:[{'tags':{'tag1':'value1'},'time':'1970-01-01T00:00:00Z','sum':3,'mean':1.625},{'tags':{'tag1':'value2'},'time':'1970-01-01T00:00:00Z','sum':1.86,'mean':2.3},{'tags':{'tag1':'value3'},'time':'1970-01-01T00:00:00Z','sum':1.4,'mean':1.1}]

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

推荐PyPI第三方库


热门话题
java未从Facebook OAuth接收名字、姓氏和姓氏   我自己代码中的java ConcurrentModificationException   java在Android上获得单像素TIFF图像   java图形输出中的swing集成弹出窗口“通知”   将数据库表中的所有数据集插入jTable Java   java如何使用Hibernate获取不完整的集合?   打印无法从java连接到打印机   java使用分隔符拆分带引号的字符串   java Axis2禁用严格验证(wsdl2java中的Eosv)允许什么,如何使其更加严格?   java有人能帮我处理循环代码吗   java将JsonObject数组转换为整数   JavaXWiki扩展:检测事件空间创建   java如何设置图表的文本方向以使用poi旋转所有文本?   eche RecyclerView项的java Set自定义字体   java单元测试带有私有构造函数的spring组件,无需注入   用户界面如何在java中动态显示一组多个元素?   如何从java应用程序调用IDL(交互式数据语言)?   Java的内置库实现