没有项目描述

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使用EntityManager有没有更有效的习惯用法?   Android上的java Google应用程序引擎(GAE)响应代码和cookie   如何在Java中创建单元测试?   java从DB获取特定列的最新行   java替换所有悬空元字符   java使用Hibernate删除SQL表中的数据   swing显示JComponent对象Java   java在确认内容类型后如何将URL保存到文件?   javascript如何从段落中选择大量单词?(硒)   java在Linux上使用BundleEnableTiveCode不起作用   java使用日志似然性来比较不同的mallet主题模型?   java无法在Tomcat7上运行Spring Boot 2.0:“由于缺少ServletWebServerFactory bean,无法启动ServletWebServerApplicationContext。”   java有办法显式引用非静态内部类实例吗?   java如何使用Spring的NamedParameterJdbcTemplate在MySQL数据库中创建和删除表?