openstack云高计能否执行实时实例监视

openstack云高计能否执行实时实例监视,openstack,keystone,ceilometer,Openstack,Keystone,Ceilometer,我正在开发一个用于系统监控的仪表板。我以前一直在使用ceilometer的python API。但是我注意到,每次我运行这个程序时,它都会从一开始就发送数据,同样的数据会重复很多次。在云高仪中是否有一种方法,当我查询数据时,它会向我发送系统的当前值。我的代码在下面 auth=v2.Password(auth_url="url", username="username", password="pass", tenant_id='009867') sess = session.Session(a

我正在开发一个用于系统监控的仪表板。我以前一直在使用ceilometer的python API。但是我注意到,每次我运行这个程序时,它都会从一开始就发送数据,同样的数据会重复很多次。在云高仪中是否有一种方法,当我查询数据时,它会向我发送系统的当前值。我的代码在下面

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)

您可以使用筛选查询在一段时间内获取样本列表。把你得到的最后一个样本放在某处,这样每次你从那个时间戳开始取样本时

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)

通过向查询中添加
limit
参数,可以获取云高计数据库中的最新条目,如下所示:

data = cclient.samples.list(meter_name ='cpu_util', limit=1)