0

我真的需要你的帮助。目前,我正在研究 Heat 自动缩放。我已经学习了一些关于 Heat 中自动缩放的文档。我知道 Heat 使用 Ceilometer API 来设置警报配置并通过 Webhook 从 Ceilometer 获取警报。这些操作显示在 HOT 模板 (OS::Heat::Ceilometer::Alarm) 中。我试图查看 Heat 代码,但我仍然找不到处理警报操作的位置(哪些模块)。具体来说,什么模块将负责创建警报 url,以及什么模块将接收和处理从 Ceilometer 触发的警报 url。

谢谢

4

1 回答 1

0

用于创建警报 url:

你应该看到方法 _get_ec2_signed_url

触发的警报网址:

这是 heat-cfg 服务中的一个信号。你可以找到更多的代码(自由)

heat/api/cfn/v1/__init__.py

mapper.connect('/signal/{arn:.*}',
               controller=signal_controller,
               action='signal',
               conditions=dict(method=['POST']))

heat/api/cfn/v1/signal.py

def signal(self, req, arn, body=None):
    con = req.context
    identity = identifier.ResourceIdentifier.from_arn(arn)
    try:
        self.rpc_client.resource_signal(
            con,
            stack_identity=dict(identity.stack()),
            resource_name=identity.resource_name,
            details=body)
    except Exception as ex:
        return exception.map_remote_error(ex)

然后你可以按照调用链找到你想要的

于 2016-09-07T10:21:37.470 回答