openstack 之 ceilometer: Alarm

Overview

ceilometer 中 alarm是基于监控sample,进行评估,然后得出告警是触发还是清除的信息。结构如下:
这里写图片描述
告警的基础是监控数据!在获取告警监控的基础上,分析这些数据,并最终得出并设置告警的状态。
实现代码结构
ceilometer/alarm

├── evaluator
│   ├── combination.py
│   ├── gnocchi.py
│   ├── __init__.py
│   ├── threshold.py
│   └── utils.py
├── __init__.py
├── notifier
│   ├── __init__.py
│   ├── log.py
│   ├── rest.py
│   ├── test.py
│   └── trust.py
├── partition
│   ├── coordination.py
│   └── __init__.py
├── rpc.py
├── service.py
└── storage
    ├── base.py
    ├── impl_db2.py
    ├── impl_hbase.py
    ├── impl_log.py
    ├── impl_mongodb.py
    ├── impl_sqlalchemy.py
    ├── __init__.py
    ├── models.py
    └── pymongo_base.py

Alarm evaluator

目前,ceilometer提供了三种evaluator
- threshold:通过判断设定的指标的最大、最小或者平均值是否“超过“了设定的阈值来评估。
- combination:判断多个指标是否“超过“阈值来评估。
- gnocchi:openstack 的gnocchi项目提供的评估实现。
以threshold方式为例,分析告警评估过程
第一步:获取设置相应告警的对象的最大值、最小值、平均值,调用方法如下:
ceilometer/alarm/evaluator/threshold.py

    def _statistics(self, alarm, query):
        """Retrieve statistics over the current window."""
        LOG.debug(_('stats query %s') % query)
        try:
            return self._client.statistics.list(
                meter_name=alarm.rule['meter_name'], q=query,
                period=alarm.rule['period'])
        except Exception:
            LOG.exception(_('alarm stats retrieval failed'))
            return []

事实上这是一个API调用,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值