数据订阅
AOM支持用户订阅指标或者告警信息,订阅后可以将数据转发到用户配置的DMS或Webhook的Topic中,供消费者消费转发订阅的信息。
最多可创建10个数据订阅规则。
Webhook订阅类型当前受限开放,如有需求可以通过提交工单,联系工程师为您开放此功能。
创建订阅规则
- 登录AOM 2.0控制台。
- 在左侧导航栏中选择“设置”,进入全局配置界面。
- 在左侧导航栏中选择“数据订阅”,单击“创建订阅规则”,根据实际需求,选择订阅内容为“分布式消息DMS订阅”或“Webhook”。
- 订阅内容选择“分布式消息服务DMS”。
- 请参考表1配置参数,设置相关参数后,单击“确定”。
表1 数据订阅规则参数说明 参数
说明
规则名称
订阅规则名称。
只能由大小写字母、数字、中划线和下划线组成,且必须以英文字母开头,最多不能超过64个字符。
订阅内容
选择“分布式消息DMS订阅”。
数据类型
支持“指标”和“告警”。
Prometheus实例
从下拉列表中选择需要转发指标的Prometheus实例。下拉列表中显示当前账号下的所有通用实例类型Prometheus实例。
该功能当前受限开放,如有需求可以通过提交工单,为您开放此功能。
实例
从下拉列表中选择合适的DMS实例。如现有DMS实例均不满足需要,请单击“创建DMS实例”创建。
- 验证DMS实例连通性。
数据订阅至DMS需要在IAM委托界面增加名为 "apm_admin_trust"委托,请确认是否已经创建。创建“apm_admin_trust”委托的详细操作请参见如何创建委托apm_admin_trust。
- 输入DMS用户名和密码。
- 单击“验证并保存DMS配置信息”。
- 选择数据发送topic后,单击“确定”。
- 请参考表1配置参数,设置相关参数后,单击“确定”。
- 订阅内容选择“Webhook”。
请参考表2配置参数,设置相关参数后,单击“确定”。
表2 数据订阅规则参数说明 参数
说明
规则名称
订阅规则名称。
只能由大小写字母、数字、中划线和下划线组成,且必须以英文字母开头,最多不能超过64个字符。
订阅内容
选择“webhook”。
自建普罗 Remote Write地址
请输入用户侧Prometheus实例的Remote Write地址,作为指标发送的目标地址。
传输请求的协议,请根据实际情况从下拉列表中选择,推荐使用HTTPS协议。
数据类型
默认为“指标”。
Prometheus实例
从下拉列表中选择需要转发指标的Prometheus实例。下拉列表中显示当前账号下的所有通用实例类型Prometheus实例。
鉴权方式
访问用户侧Prometheus实例的认证方式。
- 基础认证:输入用户侧Prometheus实例的用户名和密码。
- Token:输入访问用户侧Prometheus实例的Token。
- 无认证:无需认证,即可访问用户侧Prometheus实例。
规则创建成功后,即可在规则列表中查看当前创建的数据订阅规则。
- 订阅内容选择“分布式消息服务DMS”。
数据订阅格式说明
- AOM格式的指标JSON格式代码片断
package metric type MetricDatas struct { Metrics []Metrics `json:"metrics"` ProjectId string `json:"project_id"` } type Metrics struct { Metric Metric `json:"metric"` Values []Value `json:"values"` CollectTime int64 `json:"collect_time"` } type Metric struct { Namespace string `json:"namespace"` Dimensions []Dimension `json:"dimensions"` } type Value struct { Value interface{} `json:"value"` Type string `json:"type"` Unit string `json:"unit"` StatisticValues string `json:"statisticvalues"` MetricName string `json:"metric_name"` } type Dimension struct { Name string `json:"name"` Value string `json:"value"` }
- kafka消息示例
key:, value:{"metrics":[{"metric":{"namespace":"PAAS.NODE","dimensions":[{"name":"nodeName","value":"test-aom-4-vss-cop-master-1"},{"name":"nodeIP","value":"1.1.1.1"},{"name":"hostID","value":"75d97111-4734-4c6c-ae9e-f6111111111"},{"name":"nameSpace","value":"default"},{"name":"clusterId","value":"46a7bc0d-1d8b-11ea-9b04-333333333333333"},{"name":"clusterName","value":"test-aom-4-vss-111"},{"name":"diskDevice","value":"vda"},{"name":"master","value":"true"}]},"values":[{"value":0,"type":"","unit":"Kilobytes/Second","statisticvalues":"","metric_name":"diskReadRate"},{"value":30.267,"type":"","unit":"Kilobytes/Second","statisticvalues":"","metric_name":"diskWriteRate"}],"collect_time":1597821030037}],"project_id":"111111111111111111111"}
- 告警数据格式说明
{ "events": [{ "id": "4346299651651991683", "starts_at": 1597822250194, "ends_at": 0, "arrives_at": 1597822250194, "timeout": 300000, "resource_group_id": "312313123112222222222232131312131", "metadata": { "kind": "Pod", "event_severity": "Major", "resource_type": "service", "clusterId": "6add4ef5-1358-11ea-a5bf-111111111", "event_type": "alarm", "clusterName": "cce-ief-4516140c-96ca-4a5f-8d85-1111111", "namespace": "PAAS.NODE", "name": "test15769793809553052-f5557bd7f-qnfkm", "event_name": "调度失败##FailedScheduling", "resource_id": "clusterName=cce-ief-4516140c-96ca-4a5f-8d85-111111;clusterID=6add4ef5-1358-11ea-a5bf-11111111111;kind=Pod;namespace=30d5758f166947c6b164af604a654b09;name=test15769793809553052-f5557bd7f-qnfkm;uid=589fc746-245d-11ea-a465-fa163e5fc15d", "nameSpace": "30d5758f166947c6b164af604a654b09", "resource_provider": "CCE", "nodeID": "589fc746-245d-11ea-a465-fa163e5fc15d" }, "annotations": { "alarm_probableCause_zh_cn": "FailedScheduling", "alarm_probableCause_en_us": "FailedScheduling", "message": "0/110 nodes are available: 1 node(s) had taints that the pod didn't tolerate, 109 node(s) didn't match node selector." }, "attach_rule": { } }], "project_id": "312313123112222222222232131312131" }
参数说明:
表3 告警参数 参数
参数类型
描述
events
Array of objects,详见 表4。
事件或者告警详情。
project_id
String
租户从IAM申请到的projectid,一般为32位字符串。
表4 EventModel 参数
参数类型
描述
id
String
事件或者告警id,系统自动生成。
starts_at
Long
事件或者告警产生的时间,CST毫秒级时间戳。
ends_at
Long
事件或者告警清除的时间,CST毫秒级时间戳,为0时表示未删除。
arrives_at
Long
事件或者告警到达AOM的时间,CST毫秒级时间戳。
timeout
Long
告警自动清除时间。毫秒数,例如一分钟则填写为60000。默认清除时间为3天。
resource_group_id
String
资源组预留字段,当前默认和projectid的值一样。
metadata
Object
事件或者告警的详细信息,为键值对形式。必须字段为:
- event_name:事件或者告警名称,类型为String;
- event_severity:事件级别枚举值。类型为String,四种类型 "Critical", "Major", "Minor", "Info";
- event_type:事件类别枚举值。类型为String,event为普通告警,alarm为告警事件;
- resource_provider:事件对应云服务名称。类型为String;
- resource_type:事件对应资源类型。类型为String;
- resource_id:事件对应资源信息。类型为String。
annotations
Object
事件或者告警附加字段,可以为空。
attach_rule
Object
事件或者告警预留字段,为空。
创建委托apm_admin_trust
- 登录IAM控制台。
- 在左侧导航栏,单击“委托”,进入委托页面。
- 单击右上角“创建委托”,进入创建委托页面。
- 参考表5设置创建委托的参数。
- 单击“下一步”,进入“授权”页面。
- 在“选择策略”页签选择“DMS UserAccess”策略,并单击“下一步”。
DMS UserAccess策略:分布式消息服务普通用户权限(无实例创建、修改、删除、扩容、转储)。
- 在“设置最小授权范围”页签设置授权范围方案为“指定区域项目资源”,并在下方“项目[所属区域]”选定生效区域。
- 单击“确定”,委托关系创建成功。
后续操作
数据订阅规则设置完成后,AOM会将数据发到配置的“分布式消息DMS”或“Webhook”的Topic中,您可以消费订阅的指标或者告警信息。