简短模板格式¶
StoryBoard 链接: https://storyboard.openstack.org/#!/story/2004871
本规范建议使用更短的 Vitrage 模板文件格式。 新格式应更简洁、阅读速度更快且编写更容易。
问题描述¶
Vitrage 模板语言功能强大,但有点冗长,并且在从头开始创建新模板时很容易出现语法错误。 我们希望使生成任何模板更容易。
有关当前格式的更多信息,请参阅 Template_format。
提议的变更¶
以下是一些简化措施,将导致更短的模板文件,同时保留其功能。
移除
definitions级别的嵌套,entities将直接替换它移除
relationships,这些将在条件中内联表示,示例用法condition: host_ssh_alarm [ on ] host
entities将从列表更改为字典,移除template_id,并使用实体键代替。在
actions中,移除字段action_type,并使用操作键代替在每个操作中,移除
action_target嵌套级别在
scenarios中,移除scenario嵌套级别操作
set_state将被set_suboptimal、set_error和set_ok替换。
raise_alarm操作将有一个新的可选字段causing_alarm,这将添加新警报与引发警报之间的因果关系,从而无需使用add_causal_relationship
简短格式模板示例¶
metadata:
version: 3
name: zabbix alarm for network interface and ssh affects host instances
description: zabbix alarm for network interface and ssh affects host instances
entities:
host_network_alarm:
type: zabbix
rawtext: host network interface is down
host_ssh_alarm:
type: zabbix
rawtext: host ssh is down
instance:
type: nova.instance
host:
type: nova.host
scenarios:
- condition: host_ssh_alarm [ on ] host
actions:
- set_suboptimal:
target: host
- condition: host_network_alarm [ on ] host AND host_ssh_alarm [ on ] host
actions:
- add_causal_relationship:
source: host_network_alarm
target: host_ssh_alarm
- condition: host_ssh_alarm [ on ] host AND host [ contains ] instance
actions:
- raise_alarm:
target: instance
alarm_name: instance is down
severity: WARNING
causing_alarm: host_ssh_alarm
- set_error:
target: instance
与先前格式等效的模板示例¶
metadata:
version: 2
type: standard
name: zabbix alarm for network interface and ssh affects host instances
description: zabbix alarm for network interface and ssh affects host instances
definitions:
entities:
- entity:
category: ALARM
type: zabbix
rawtext: host network interface is down
template_id: host_network_alarm
- entity:
category: ALARM
type: zabbix
rawtext: host ssh is down
template_id: host_ssh_alarm
- entity:
category: ALARM
type: vitrage
name: instance is down
template_id: instance_alarm
- entity:
category: RESOURCE
type: nova.instance
template_id: instance
- entity:
category: RESOURCE
type: nova.host
template_id: host
relationships:
- relationship:
source: host_network_alarm
relationship_type: on
target: host
template_id : network_alarm_on_host
- relationship:
source: host_ssh_alarm
relationship_type: on
target: host
template_id : ssh_alarm_on_host
- relationship:
source: host
relationship_type: contains
target: instance
template_id : host_contains_instance
- relationship:
source: instance_alarm
relationship_type: on
target: instance
template_id : alarm_on_instance
scenarios:
- scenario:
condition: ssh_alarm_on_host
actions:
- action:
action_type: set_state
action_target:
target: host
properties:
state: SUBOPTIMAL
- scenario:
condition: network_alarm_on_host AND ssh_alarm_on_host
actions:
- action:
action_type: add_causal_relationship
action_target:
source: host_network_alarm
target: host_ssh_alarm
- scenario:
condition: ssh_alarm_on_host AND host_contains_instance
actions:
- action:
action_type: raise_alarm
action_target:
target: instance
properties:
alarm_name: instance is down
severity: WARNING
- action:
action_type: set_state
action_target:
target: instance
properties:
state: ERROR
- scenario:
condition: ssh_alarm_on_host AND host_contains_instance AND alarm_on_instance
actions:
- action:
action_type: add_causal_relationship
action_target:
source: host_ssh_alarm
target: instance_alarm
备选方案¶
无。
数据模型影响¶
无。 模板将存储在相同的数据模型中。
REST API 影响¶
无
版本影响¶
这些更改将包含在 Vitrage 模板版本 3 中。
其他最终用户影响¶
无
部署者影响¶
无
开发者影响¶
无
Horizon 影响¶
无。
实现¶
负责人¶
- 主要负责人
idan_hefetz
工作项¶
引入 Vitrage 模板版本 3
支持模板验证和加载
文档和测试
依赖项¶
无
测试¶
单元测试、功能测试和 Tempest 测试
文档影响¶
将记录新的模板格式
参考资料¶
无