gnocchi操作
gnocchi原理部分可参考文章:
官方文档:gnocchi
中文翻译:gnocchi 架构
-
归档策略
gnocchi数据库中默认定义了三种归档策略high、low、medium,所谓的归档策略是指对于ceilometer发送过来的samples根据对应的策略来生成measures。
gnocchi archive-policy list
可以看到聚合策略,test是自定义策略,以high为例,表示1秒钟粒度,1小时聚合3600个点,也就是这3600的有效期为一小时,一小时后就不再保存。一分钟粒度,7天聚合10080个点,10080保存周期为7天。一小时粒度,一年聚合8760个点,保存期限为一年。根据不同粒度做聚合,保存的聚合点数据的时效性也不一样。聚合时根据定义的聚合策略来得出该点的值,默认的聚合策略有以下几种:mean(平均值),min(最小值),max(最大值),sum(累计值),std,count,95pt。所以对于每一种聚合策略都会产生,1秒钟粒度,1小时聚合3600个点。
-
resource_type
所谓的资源类型是资源所属类别,在ceilometer中对于数据进行分类,分类定义gnocchi_resources.yaml中。gnocchi数据库初始化操作gnocchi-upgrade会根据配置文件来决定是否建立resource_type,默认情况下不会建立,也可以在初始化时建立,如果想自动建立则只需配置gnocchi.conf:
[DEFAULT] create_legacy_resource_types = True
如果在初始化时不建立resource_type,就必须手动建立resource_type,否则ceilometer发送数据调用gnocchi创建数据时会因找不到相应的resource_type而报错。resource_type中有各种属性值,属性值要有ceilometer中gnocchi_resources.yaml定义的保持一致,举例来说:
- resource_type: instance_network_interface metrics: - 'network.outgoing.packets.rate' - 'network.incoming.packets.rate' - 'network.outgoing.packets' - 'network.incoming.packets' - 'network.outgoing.bytes.rate' - 'network.incoming.bytes.rate' - 'network.outgoing.bytes' - 'network.incoming.bytes' attributes: name: resource_metadata.vnic_name instance_id: resource_metadata.instance_id
手动定义instance_network_interface时必须将属性带上:
gnocchi instance_network_interface create -a name:string:false:max_length=255 -a instance_id:string:false:max_length=255 image
查询resource_type,使用命令:
gnocchi resource_type list
-
resource
resource即是资源数据,包括系统中的虚拟机、磁盘、网络、镜像等等,每个resource下面有多个metric指标,而没有metric指标关联着多个measures 通过gnocchi resource list可以查看列表 gnocchi resource show 查看具体某一个resource
-
metric
metric的概念与ceilometer中的meter类似,表明一个度量,每个metic都是有唯一的id,归属于某个resource,体现metric具体的值则为measure,即ceilometer中的sample数据。 同样可以使用gnocchi metric list与gnocchi metric show来查看列表与详情! 可以看到metric所属的resource、归档策略、聚合算法等
-
measures
measures即是最终的数据值,每一个metric对应于多个measures,这些measures则是根据归档策略以及聚合策略生成的。不同于上述几个数据值,measures数据值保存在storage中,官方推荐的是ceph。
gnocchi measures show 0053794e-7232-42dc-b77e-3370809ef4d1
show后面跟的是metric_id,查询某个metic下的measures 该系统使用的low聚合策略,可以看到不同粒度下的聚合值,需要注意的是默认的聚合算法有多种(mean(平均值),min(最小值),max(最大值),sum(累计值),std,count,95pt等)默认显示是mean算法下的聚合值。可以通过参数–aggregation指定相应的聚合算法,来查看相应的measures。