openstack 之 ceilometer: Sample
来源:互联网 发布:淘宝旺铺出售 编辑:程序博客网 时间:2024/05/20 11:26
Sample 采集架构
ceilometer将物理机、虚拟机等资源的使用情况汇总,最终以sample的形式存储到数据库,其采集、存储架构如下:
目前有如下三个agent获取Openstack资源监控数据
- ceilometer-agent-central:中心采集方式,获取swift、neutron等服务的监控数据
- ceilometer-agent-compute:运行在计算节点,获取虚拟机监控数据
- ceilometer-agent-ipmi:使用snmp监控ironic物理机
pipeline.yaml
ceilometer 的pipeline.yaml中定义了监控每个监控项采集的频率、处理的方法、抛出的方式,如官方提供的stable/juno pipeline.yaml配置如下:
---sources: - name: meter_source interval: 600 meters: - "*" sinks: - meter_sink - name: cpu_source interval: 600 meters: - "cpu" sinks: - cpu_sink - name: disk_source interval: 600 meters: - "disk.read.bytes" - "disk.read.requests" - "disk.write.bytes" - "disk.write.requests" - "disk.device.read.bytes" - "disk.device.read.requests" - "disk.device.write.bytes" - "disk.device.write.requests" sinks: - disk_sink - name: network_source interval: 600 meters: - "network.incoming.bytes" - "network.incoming.packets" - "network.outgoing.bytes" - "network.outgoing.packets" sinks: - network_sinksinks: - name: meter_sink transformers: publishers: - notifier:// - name: cpu_sink transformers: - name: "rate_of_change" parameters: target: name: "cpu_util" unit: "%" type: "gauge" scale: "100.0 / (10**9 * (resource_metadata.cpu_number or 1))" publishers: - notifier:// - name: disk_sink transformers: - name: "rate_of_change" parameters: source: map_from: name: "(disk\\.device|disk)\\.(read|write)\\.(bytes|requests)" unit: "(B|request)" target: map_to: name: "\\1.\\2.\\3.rate" unit: "\\1/s" type: "gauge" publishers: - notifier:// - name: network_sink transformers: - name: "rate_of_change" parameters: source: map_from: name: "network\\.(incoming|outgoing)\\.(bytes|packets)" unit: "(B|packet)" target: map_to: name: "network.\\1.\\2.rate" unit: "\\1/s" type: "gauge" publishers: - notifier://
- 定义了所有的监控项(meter_source),采集的频率是600秒,对采集的数据,不做加工处理,使用notifier发送到消息队列。
- 定义了cpu使用率(cpu_source),采集频率为600秒,对采集的cpu数据,调用 rate_of_change 方法转换成 cpu_util。
- 定义了磁盘IO(disk_source),采集频率是600秒,对采集的disk.read.bytes等数据,调用 rate_of_change 方法转换成
(disk\\.device|disk)\\.(read|write)\\.(bytes|requests).rate
格式。 - 定义了网络流量(network_source),采集频率600秒,对采集的network.incoming.bytes等数据,调用rate_of_change方法转换成
network\\.(incoming|outgoing)\\.(bytes|packets).rate
格式。
Transformer & Publisher
数据转换器,事实上,Transfomer的定义是为了方便讲采集的数据做下汇总,目前定义的Transformer有如下几个:
- TransformerAccumulator:累计meter(sample)项
- ScalingTransformer:拓展meter(sample)项
- RateOfChangeTransformer:计算一段时间meter的变化率
- AggregatorTransformer:汇集具有某一相同属性的meter(sample)再处理
- ArithmeticTransformer:对一个或多个meter(sample)的某项值做算术运算
对于Publisher,即是sampler的抛出者
,抛出方式如下:
- meter_publisher/meter/rpc:RPCPublisher
- notifier:SampleNotifierPublisher
- udp:UDPPublisher
- file:FilePublisher
- direct:DirectPublisher
- kafka:KafkaBrokerPublisher
Storage
存储Sample,数据格式为:
class Sample(object): def __init__(self, name, type, unit, volume, user_id, project_id, resource_id, timestamp, resource_metadata, source=None): self.name = name self.type = type self.unit = unit self.volume = volume self.user_id = user_id self.project_id = project_id self.resource_id = resource_id self.timestamp = timestamp self.resource_metadata = resource_metadata self.source = source or cfg.CONF.sample_source self.id = str(uuid.uuid1())
目前ceilometer支持并实现了如下几种存储格式
- log:日志文件方式
- mongodb:mongo数据,默认使用方式
- mysql:mysql数据库
- postgresql:postgresql数据库
- sqlite:sqlite数据库,测试时使用
- db2:db2 数据库
事实上,在实际开发时,并未使用如上数据库实现,为了方便历史数据查询,可以实现,如influxdb数据库,另外,也可以使用另外一个相关的openstack项目https://github.com/openstack/gnocchi
0 0
- openstack 之 ceilometer: Sample
- openstack 之 ceilometer: Notification
- openstack 之 ceilometer: Alarm
- Openstack 之 ceilometer: Alarm
- OpenStack Ceilometer
- openstack ceilometer
- Openstack之ceilometer简介及概念分析
- 浓墨重彩之OpenStack-12-ceilometer监控服务
- 探索 OpenStack 之:计量模块 Ceilometer 介绍及优化
- OpenStack Ceilometer 简介
- OpenStack Ceilometer简介
- openstack-ceilometer解析
- openstack ceilometer 分析
- OpenStack Ceilometer 简介
- OpenStack Ceilometer 简介
- Openstack-Ceilometer-Alarm运行机制
- OpenStack Mitaka Ceilometer-Aodh
- openstack heat + ceilometer + LBaaS
- 多进程并发编程
- poj 3669 Meteor Shower(BFS)
- 马列主义告诉我们:物质基础决定上层建筑 - 移动互联网时代之后的时代演进推断
- 《Java编程思想》读后感
- matlab突然无法打开.m文件 ??? Error using ==> feature Too many input arguments.
- openstack 之 ceilometer: Sample
- 1160 不能被整除的数【容斥原理】
- Kurento应用开发指南(以Kurento 6.0为模板) 之六:kurento架构
- 图片整理(字符串排序)
- 快速排序的基本思想及Java实现
- hdu 1115 Lifting the Stone
- 对于python中的self,cls,decorator的理解
- CSS——样式表;选择器;优先级
- UVa 1220:Party at Hali-Bula(DP)