import json
import time import requests openfalcon = 'http://ip:port/api/v1'
user = 'user'
password = 'password' def get_sig(user=user, password=password):
url = '%s/user/login' % openfalcon
response = requests.post(url, data=dict(name=user, password=password), timeout=2)
return response.json() def get_graph_history(hostname, category, start_time, end_time):
url = '%s/graph/history' % openfalcon
sig = get_sig()
headers = {
'Apitoken': json.dumps({'name': sig['name'], 'sig': sig['sig']}),
'Content-type': 'application/json',
'X-Forwarded-For': '127.0.0.1',
} counters = [
"cpu.idle",
"cpu.iowait",
"cpu.user",
"cpu.system",
"cpu.iowait",
"cpu.irq",
"cpu.softirq",
"mem.memfree.percent",
"mem.swapfree.percent",
"df.bytes.free.percent/fstype=ext4,mount=/",
"df.bytes.free.percent/fstype=ext4,mount=/data",
"net.if.in.bytes/iface=eth0",
"net.if.out.bytes/iface=eth0",
"net.if.in.packets/iface=eth0",
"net.if.out.packets/iface=eth0",
"net.if.in.dropped/iface=eth0",
"net.if.out.dropped/iface=eth0",
"net.if.in.errors/iface=eth0",
"net.if.out.errors/iface=eth0",
"ss.estab",
"load.1min",
"load.5min",
"load.15min",
"disk.io.read_bytes/device=vda",
"disk.io.read_bytes/device=vdb",
"disk.io.write_bytes/device=vda",
"disk.io.write_bytes/device=vdb",
"disk.io.msec_total/device=vda",
"disk.io.msec_total/device=vdb",
"disk.io.avgrq_sz/device=vdb",
"disk.io.avgqu-sz/device=vdb",
"disk.io.await/device=vdb",
"disk.io.svctm/device=vdb",
"disk.io.util/device=vdb",
] if 'cpu' == category:
counters = counters[0:7]
elif 'memory' == category:
counters = counters[7:9]
elif 'disk' == category:
counters = counters[9:11]
elif 'net' == category:
counters = counters[11:20]
elif 'io' == category:
counters = counters[20:23]
else:
counters = counters[23:] data = {
"step": 60,
"start_time": start_time,
"hostnames": [hostname],
"end_time": end_time,
"counters": counters,
"consol_fun": "AVERAGE"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
return response.json() if __name__ == '__main__':
end_time = int(time.time())
start_time = end_time - 300
print get_graph_history('host-001', 'io', start_time, end_time)

从 falcon api 中获取数据的更多相关文章

  1. requests从api中获取数据并存放到mysql中

    python的requests库是一个非常强大的库,requests的安装方法十分简单,用: pip install requests 即可安装requests,安装成功后: import reque ...

  2. 从api接口获取数据-okhttp

    首先先介绍下api接口: API:应用程序接口(API:Application Program Interface) 通常用于数据连接,调用函数提供功能等等... 从api接口获取数据有四种方式:Ht ...

  3. Thymeleaf+SpringMVC,如何从模板中获取数据

    Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...

  4. hive从查询中获取数据插入到表或动态分区

    Hive的insert语句能够从查询语句中获取数据,并同时将数据Load到目标表中.现在假定有一个已有数据的表staged_employees(雇员信息全量表),所属国家cnty和所属州st是该表的两 ...

  5. 哪种方式更适合在React中获取数据?

    作者:Dmitri Pavlutin 译者:小维FE 原文:dmitripavlutin.com 国外文章,笔者采用意译的方式,以保证文章的可读性. 当执行像数据获取这样的I/O操作时,你必须发起获取 ...

  6. Django Form 实时从数据库中获取数据

    修改 models.py 添加 class UserType(models.Model): caption = models.CharField(max_length=32) 执行命令,生成数据库 p ...

  7. SpringMVC从Request域中获取数据

    SpringMVC从Request域中获取数据的三种方式 SpringMVC环境自行搭建, 约定存在如下目录和文件:/WEB-INF/pages/success.jsp 方式一:传入Model对象 前 ...

  8. SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...

  9. Vue3 组合式 API 中获取 DOM 节点的问题

    模板引用 Vue 提供了许多指令让我们可以直接操作组件的模板.但是在某些情况下,我们仍然需要访问底层 DOM 元素.在模板中添加一个特殊的属性ref就可以得到该元素. 访问模板引用 <scrip ...

随机推荐

  1. 动态加载页面 通过src

    <img src="a.jpg"> 通过js  改变 src 路径 如action  路径, 注意 action 配置问题.

  2. hadoop 学习(三)之hdfs shell命令

    1.HDFS shell 1.0查看帮助  hadoop fs -help <cmd> 1.1上传  hadoop fs -put <linux上文件> <hdfs上的路 ...

  3. 我们在地址栏中输入一个网址,比如百度(www.baidu.com)后浏览器做了哪些事

    在浏览器输入网址,Enter之后发生的事情: 1. 浏览器接收域名 2. 发送域名给DNS,中文名字是域名系统服务器,一般位于ISP(互联网服务提供商,比如我们熟知的联通.移动.电信等) 中.浏览器会 ...

  4. delphi XE7 数组操作中缺少的find(POS)功能

    delphi xe7 中对数组操作做了很多扩充,比如加入了类似字符串处理的功能. 例如,数组相加 var A: array of integer; B: TBytes = [1,2,3,4]; //I ...

  5. 2018.06.28 BZOJ1014 [JSOI2008]火星人prefix(非旋treap+hash)

    [JSOI2008]火星人prefix Time Limit: 10 Sec Memory Limit: 162 MB Submit: 8951 Solved: 2860 Description 火星 ...

  6. IntelliJ IDEA 2017版 SpringBoot的关闭自动配置和自定义Banner

    一.关闭自动配置 在jar包下找下边的名字    设置关闭自动配置jar    多个的时候配置       二.自定义Banner   (1)网站搜索一个图案.网址:http://patorjk.co ...

  7. ansible-api 调试

    使用api的时候有时候会遇到一些难以想象到的错误,可以通过以下几种方式来定位. 1.使用 自定义 callback class ResultCallback(CallbackBase): def v2 ...

  8. mysql图文安装教程(win7 32位 亲测)

    一.下载mysql:http://www.mysql.com/downloads/ 弹出: 你需要有一个 Oracle Web 帐户,没有的话,注册一个: 勾选许可: 输入搜索条件: 下载MySQL ...

  9. (动态规划 01背包 打印路径) CD --UVA --624

    链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87813#problem/G 每个CD的时间不超过 20没有哪个CD的时间是超过N ...

  10. MFC OnOk(),OnCancel(),OnClose(),OnDestroy()的区别总结

    MFC OnOk(),OnCancel(),OnClose(),OnDestroy()的区别总结(转) 第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和O ...