我正在开发一个用于系统监控的仪表板。我之前一直在使用ceilometer的python API。但我注意到,每次运行程序时,它都会从一开始就以相同的数据重复发送数据。在Ceilometer中有一种方法,当我查询我的数据时,它向我发送系统的当前值。我的代码在
之下auth=v2.Password(auth_url="url", username="username", password="pass", tenant_id='009867')
sess = session.Session(auth=auth,verify=False)
token = auth.get_token(sess)
cclient = client.get_client(2, ceilometer_url="http://orbit1.ds.cs.umu.se:8777/", token=token,verify=False)
data = cclient.samples.list(meter_name ='cpu_util')
thing = {}
msg = {}
cols = []
for row in data:
col = {}
col = {"x": row.timestamp, "y": row.counter_volume}
cols.append(col)
msg['columns'] = cols
thing['message'] = msg
print json.dumps(thing, indent=4)
答案 0 :(得分:1)
您可以通过在查询中添加limit
参数来获取云高仪数据库中的最新条目,如:
data = cclient.samples.list(meter_name ='cpu_util', limit=1)
答案 1 :(得分:0)
您可以使用过滤查询在一段时间内获取样本列表。保留最后一个样本,以便每次从该时间戳开始提取样本。
query = [dict(field='timestamp', op='gt', value=start_timestamp), dict(field='timestamp', op='lt', value=end_timestamp)]
print cclient.statistics.list(meter_name='cpu_util', q = query)