OpenStack监控组件---Ceilometer alarm属性代码分析
Ceilometer是OpenStack中的一个子项目,它像一个漏斗一样,能把OpenStack内部发生 的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。
Ceilometer监控通过在计算节点部署Compute服务,轮询其计算节点上的instance,获取各自的CPU、网络、磁盘等监控信息,发送到RabbitMQ,Collector服务负责接收信息进行持久化存储。Ceilometer项目创建时最初的目的是实现一个能为计费系统采集数据的框架。在G版的开发中,社区已经更新了他们的目标,新目标是希望Ceilometer成为OpenStack里数据采集(监控数据、计费数据)的唯一基础设施,采集到的数据提供给监控、计费、面板等项目使用。
Alarm模块的目录结构:
ceilometerclient的目录结构:
Alarm的属性:
参数 |
类型 |
解释 |
name |
str |
name是project唯一的 |
description |
str |
描述 |
enabled |
bool |
alarm的一个开关,可以停止/启动该alarm,默认是True |
ok_actions |
list |
当alarm状态变为ok状态时,采取的动作,默认是[] |
alarm_actions |
list |
当alarm状态变为alarm状态时,采取的动作,默认是[] |
insufficient_data_actions |
list |
当alarm状态变为insufficient data状态时,采取的动作,默认是[] |
repeat_actions |
bool |
当alarm被触发时,是否重复执行对应的动作,默认是False |
type |
str |
alarm类型,目前有threshold和combination两种,必填 |
threshold_rule |
AlarmThresholdRule |
当alarm类型为threshold时,制定的threshold规则 |
combination_rule |
AlarmCombinationRule |
当alarm类型为combination时,制定的combination规则 |
time_constraints |
list(AlarmTimeConstraint) |
约束该alarm在哪些时间段执行,默认是[] |
state |
str |
alarm的状态,默认是insufficient data |
user_id |
str |
user id,默认是context user id |
project_id |
str |
project id, 默认是context project id |
timestamp |
datetime |
alarm的定义最后一次被更新的时间 |
state_timestamp |
datetime |
alarm的状态最后一次更改的时间 |
说明:
name: name是project唯一的,在创建alarm的时候会检查
enabled: 这个功能比较人性化,可以暂停该