如何立即强制触发odd警报操作?

时间:2020-11-03 03:44:46

标签: openstack autoscaling

我有一个Openstack Aodh警报,当内存使用率大于85%并持续一分钟时,它将启动操作。现在,我想立即手动触发操作,这意味着即使条件未达到限制,也要强制启动警报操作,但是如何?

根据docs,我尝试将Aodh警报的状态设置为alarm,但是它不起作用,它评估了内存使用情况并且不执行任何操作(因为它小于85%),然后将状态重新设置为ok

有什么方法可以强制触发Aodh警报动作?我将不胜感激。

这是我的Aodh警报的一部分:

aggregation_method: mean
alarm_actions: [u'trust+http://192.168.0.100:8004/v1/284e047522bd4adfa3aa5109f1c7513b/stacks/corey_test/d9915fd3-5086-4d38-971b-2694c41e8099/resources/rdgw_scaleup_policy/signal']
alarm_id: e6402673-9a8e-4745-a8df-699edd6ab57a
comparison_operator: gt
enabled: True
evaluation_periods: 1
granularity: 60
metric: memory_util
ok_actions: []
repeat_actions: True
resource_type: instance
severity: low
state: ok
state_reason: Transition to ok due to 1 samples inside threshold, most recent: 11.0
threshold: 85.0
type: gnocchi_aggregation_by_resources_threshold

更新2020/11/04

我唯一想到的是暂时降低阈值和evalution_periods(例如:threshold:1,period:1),这将强制警报开始缩放,在创建新实例后,恢复阈值并evalution_periods返回值。它有效,但我认为这不是最好的方法。

1 个答案:

答案 0 :(得分:1)

警报操作是AFAIU,只是对“ alarm_actions”中列出的URL的HTTP POST,因此您可以自己进行操作(前提是您可以访问该URL)。

在您的特定情况下,这显然是热堆缩放操作。您应该能够对适当类似的URL进行HTTP POST-用公共Heat端点(trust+https://<host>:<port>)替换openstack catalog show orchestration部分,并向请求标头添加有效的Keystone令牌。

或者,对于Heat堆栈扩展,您可以使用openstack stack resource signal命令(实际上执行相同的REST调用,只是帮助您进行身份验证和端点发现)-堆栈ID和资源名称在URL,因此在您的情况下为openstack stack resource signal d9915fd3-5086-4d38-971b-2694c41e8099 rdgw_scaleup_policy