腾讯云可观测平台 配置数据转换

除了基础事件筛选之外,EventBridge 还提供简单的数据处理功能,通过传入数据和配置项,可以实现对数据格式化处理,然后返回处理完成的结构化数据,分发下游目标,构建数据源和数据处理系统间的桥梁。

相关产品
腾讯云可观测平台 产品页,含版本规格、价格与购买入口。

一、操作场景

注意:说明:

注意:数据处理后得到的结构化数据会用于替换 data 字段内容。

二、操作步骤

下文将以云服务事件集配置事件数据转换为例,介绍详细的操作步骤。

三、创建规则

1. 登录 事件总线控制台,选择云服务事件集。

2. 在事件集详情页,单击管理事件规则,进行新增规则配置。如下:

3. 进入事件规则页面,单击新建。如下:

4. 根据页面提示填写相关信息,勾选数据转换。

·事件示例:单击事件示例,可展开一个事件结构实例,为配置事件匹配规则做参考。

·事件匹配:用于事件的过滤筛选,通过配置事件模式,筛选需要转换的事件数据。你可以定义事件来源(source)、事件类型(type)等字段的匹配规则,仅匹配的事件数据会进入后续的数据转换流程。

5. 单击下一步,设置数据转换规则。如下:

·事件模式:支持示例事件(模板数据)或者手动输入(自定义)。

·转换目标:可以配置完整事件或通过变量获取部分事件。

·解析格式:支持 JSON、分隔符、正则提取三种解析方式。

6. 选择解析模式后,单击确认,开始解析数据。

7. 解析完成后,设置事件匹配规则、过滤器规则和数据处理方式

·过滤器:仅输出符合过滤器规则的数据。过滤器的匹配模式支持前缀匹配、后缀匹配、包含匹配(contains)、除外匹配(except)。

详情参见 过滤器规则说明。

·数据处理:TYPE 有默认、系统预设、映射、JSONPATH、自定义、模板六种。

·TYPE = 默认:VALUE 从解析结果中映射,不可编辑。

·TYPE = 系统预设:可以选择系统预设的 VALUE ,目前支持 DATE(时间戳)。

·TYPE = 映射:可以选择已有的 KEY,最终输出的 VALUE 值由指定的 KEY 映射而来。

·TYPE = JSONPATH:可以手动编辑 VALUE。可参考 JSONPATH 示例。

·TYPE = 自定义:可以输入自定义 VALUE。

·TYPE = 模板:支持 Go 语言模板,内置 JSONPATH 函数,可以自定义 VALUE。可参考 模板示例。

8. 单击测试,查看测试结果。

9. 单击下一步,完成事件目标配置。事件目标定义了数据转换后的输出目标,支持将转换后的结构化数据投递到指定的云服务或自定义端点。事件总线当前支持以下事件目标,详细内容请参见:

·云函数(SCF)

·日志服务(CLS)

·消息推送(仅支持云服务事件集中的规则)

·消息队列(Ckafka)

·Elasticsearch

四、编辑规则

你可以在规则详情页面进行规则的编辑、删除和添加操作。

·在规则详情页面,单击数据转换模块右上角的编辑/删除,可修改/删除数据转换规则。

·如需在已有事件规则中添加数据转换功能,可在规则详情页中,单击数据转换右侧的添加,然后根据页面提示进行配置。

五、过滤器规则说明

过滤器可以对数据进行规则过滤,例如过滤字段的大小等,符合规则的数据才会被保留。

六、注意事项

·过滤器匹配是逐个字符精确匹配的 ,需注意大小写,匹配过程中不会对字符串进行任何标准化的操作。

·要匹配的值遵循 JSON 规则:用引号引起来的字符串、数字以及不带引号的关键字 true、false 和 null。

七、前缀匹配

你可以对比数据中的前缀进行键值匹配。

例如数据 {"id":"topicname"},指定 id 的前缀匹配值为 top,则 {"id":"topicname"} 可以被正常匹配。

八、后缀匹配

你可以对比数据中的后缀进行键值匹配。

例如数据 {"id":"topicname"},指定 id 的后缀匹配值为 name,则 {"id":"topicname"} 可以被正常匹配。

九、包含匹配

你可以指定数据中存在的某个字段进行匹配。

例如数据 {"id":"topicname"},指定 id 的包含匹配值为 na,则 {"id":"topicname"} 可以被正常匹配。

十、除外匹配

你可以指定某个字段除了提供的值之外的任何值进行匹配。

例如数据 {"id":"topicname"},指定 id 的除外匹配值为 topicname,则只有 {"id":"topicname"} 不可以被正常匹配。

十一、基础语法

·$ 根结点操作符,表示当前 JSON 结构体的根结点。

·.<childName> 点操作符,表示选取当前作用对象名为 childName 的子成员。

·[<index>]片选操作符,表示获取当前可迭代对象的第 index 个子成员。

十二、示例

·获取 occurTime:$.data.occurTime

·获取 key 为 changeImpact 的对应 value:$.data.additionalMsg[1].value

十三、模板

参考示例如下:

{{if eq (jsonpath . "$.source") "cvm.cloud.tencent" -}}云服务器事件: 事件类型: {{jsonpath . "$.type"}}地域: {{jsonpath . "$.region"}}内容: {{jsonpath . "$.data.additionalMsg[0].value"}}, {{jsonpath . "$.data.additionalMsg[1].value"}}{{- end}}

解析后得到:"云服务器事件: \\n事件类型: cvm:ErrorEvent:changeNotification\\n地域: ap-guangzhou\\n内容: 为了给你提供优质稳定的存储服务,腾讯云计划对宿主机执行底层存储组件升级, CVM,ES,TCHouse 云盘出现1次1-4秒内 IO 抖动"。

十四、事件内容示例

{ "specversion": "1.0", "id": "54ae3f54-c8fd-46f5-99f3-1f6d958a01a9", "source": "cvm.cloud.tencent", "type": "cvm:ErrorEvent:changeNotification", "datacontenttype": "application/json;charset=utf-8", "time": 1753778526000, "region": "ap-guangzhou", "status": "-", "data": { "occurTime": 1753778526000, "additionalMsg": [ { "key": "changeDetail", "value": "为了给你提供优质稳定的存储服务,腾讯云计划对宿主机执行底层存储组件升级" }, { "key": "changeImpact", "value": "CVM,ES,TCHouse 云盘出现1次1-4秒内IO抖动" } ], "dimensions": [ { "key": "zone", "value": "ap-guangzhou-1" } ] }}

赞 (0)
上一篇 4天前
下一篇 4天前