更新时间:2024-09-06 GMT+08:00

数据订阅

AOM支持用户订阅指标或者告警信息,订阅后可以将数据转发到用户配置的DMS或Webhook的Topic中,供消费者消费转发订阅的信息。

最多可创建10个数据订阅规则。

Webhook订阅类型当前受限开放,如有需求可以通过提交工单,联系工程师为您开放此功能。

创建订阅规则

  1. 登录AOM 2.0控制台。
  2. 在左侧导航栏中选择“设置”,进入全局配置界面。
  3. 在左侧导航栏中选择“数据订阅”,单击“创建订阅规则”,根据实际需求,选择订阅内容为“分布式消息DMS订阅”或“Webhook”。

    • 订阅内容选择“分布式消息服务DMS”。
      1. 请参考表1配置参数,设置相关参数后,单击“确定”。
        表1 数据订阅规则参数说明

        参数

        说明

        规则名称

        订阅规则名称。

        只能由大小写字母、数字、中划线和下划线组成,且必须以英文字母开头,最多不能超过64个字符。

        订阅内容

        选择“分布式消息DMS订阅”。

        数据类型

        支持“指标”和“告警”。

        Prometheus实例

        从下拉列表中选择需要转发指标的Prometheus实例。下拉列表中显示当前账号下的所有通用实例类型Prometheus实例。

        该功能当前受限开放,如有需求可以通过提交工单,为您开放此功能。

        实例

        从下拉列表中选择合适的DMS实例。如现有DMS实例均不满足需要,请单击“创建DMS实例”创建。

      2. 验证DMS实例连通性。

        数据订阅至DMS需要在IAM委托界面增加名为 "apm_admin_trust"委托,请确认是否已经创建。创建“apm_admin_trust”委托的详细操作请参见如何创建委托apm_admin_trust

      3. 输入DMS用户名和密码。
      4. 单击“验证并保存DMS配置信息”。
      5. 选择数据发送topic后,单击“确定”。
    • 订阅内容选择“Webhook”。
      请参考表2配置参数,设置相关参数后,单击“确定”。
      表2 数据订阅规则参数说明

      参数

      说明

      规则名称

      订阅规则名称。

      只能由大小写字母、数字、中划线和下划线组成,且必须以英文字母开头,最多不能超过64个字符。

      订阅内容

      选择“webhook”。

      自建普罗 Remote Write地址

      请输入用户侧Prometheus实例的Remote Write地址,作为指标发送的目标地址。

      传输请求的协议,请根据实际情况从下拉列表中选择,推荐使用HTTPS协议。

      数据类型

      默认为“指标”。

      Prometheus实例

      从下拉列表中选择需要转发指标的Prometheus实例。下拉列表中显示当前账号下的所有通用实例类型Prometheus实例。

      鉴权方式

      访问用户侧Prometheus实例的认证方式。

      • 基础认证:输入用户侧Prometheus实例的用户名和密码。
      • Token:输入访问用户侧Prometheus实例的Token。
      • 无认证:无需认证,即可访问用户侧Prometheus实例。

      规则创建成功后,即可在规则列表中查看当前创建的数据订阅规则。

数据订阅格式说明

  • 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

  1. 登录IAM控制台。
  2. 在左侧导航栏,单击“委托”,进入委托页面。
  3. 单击右上角“创建委托”,进入创建委托页面。
  4. 参考表5设置创建委托的参数。

    表5 创建委托

    名称

    说明

    样例

    委托名称

    标识该委托代理的名称。

    须知:

    委托名称必须为apm_admin_trust。

    -

    委托类型

    选择“云服务”。

    云服务

    云服务

    请选择“应用运维管理 AOM”。

    -

    持续时间

    选择“永久”。

    永久

    描述

    可选参数,用于补充说明该委托代理的详细信息。

    -

  5. 单击“下一步”,进入“授权”页面。
  6. 在“选择策略”页签选择“DMS UserAccess”策略,并单击“下一步”。

    DMS UserAccess策略:分布式消息服务普通用户权限(无实例创建、修改、删除、扩容、转储)。

  7. 在“设置最小授权范围”页签设置授权范围方案为“指定区域项目资源”,并在下方“项目[所属区域]”选定生效区域。
  8. 单击“确定”,委托关系创建成功。

后续操作

数据订阅规则设置完成后,AOM会将数据发到配置的“分布式消息DMS”或“Webhook”的Topic中,您可以消费订阅的指标或者告警信息。