更新时间:2022-07-29 GMT+08:00

添加告警

向AOM发送告警。

Topic

$hw/alarm/{appname}/add

参数

类型

说明

appname

String

应用名称,任意字符串即可。

使用方式

使用MQTT客户端发布该Topic。

参数说明

参数

类型

说明

alarmName

String

告警名称,需要支持中英文两个版本,格式为“中文##English”。

alarmId

String

告警ID,需要保证为唯一值。可以参考alarmId生成方法

detailedInformation

String

告警描述,需要支持中英文两个版本,格式为“中文##English”。

url

String

根因分析跳转入口,如果没有则填空。

source

String

告警源,只能是由大小写字母组成的字符串。

cleared

Boolean

清除告警标示。

  • true:表示上报的告警已经清除。
  • false:表示需要手动清除。

policyID

String

告警的规则ID,阈值规则填写ruleId,没有则填写空。

objectInstance

String

定位信息,如果没传此字段,则该字段默认取alarmId的值。

perceivedSeverity

Integer

告警级别

  • 1:紧急
  • 2:重要
  • 3:次要
  • 4:提示

resourceId

Object

告警信息,具体请参见表1

neType

String

产生告警的资源的类型

  • Application(应用)
  • DB(数据库)
  • Host(主机)

eventType

Integer

告警类型

  • 21:动态阈值告警
  • 22:批量阈值告警
  • 23:阈值告警
  • 24:系统类告警
  • 25:新增/删除探针
  • 26:agent安装类告警
  • 27:配额超限类告警

probableCause

String

可能原因

proposedRepairActions

String

修复建议

表1 resourceId

参数

类型

说明

namespace

String

资源类型,有如下几种指标

  • PAAS.CONTAINER表示容器指标
  • PAAS.NODE表示节点指标

dimension

Object

维度信息,用于跟监控上报的节点应用信息关联起来。具体请参见表2

目前涉及到告警主要是节点和应用两种类型,所以只需要关注节点和应用这两种维度。

应用维度可以细分为服务、实例、容器和进程,这四个维度可以选择一个或多个上报。

  • 服务维度需要上报:clusterId、nameSpace和serviceID
  • 实例维度需要上报:podID和podName
  • 容器维度需要上报:containerID和containerName
  • 进程维度需要上报:processID和processName
表2 Dimension

参数

类型

说明

clusterId

String

项目ID,获取方式请参见获取项目ID

nameSpace

String

默认为default。

nodeIP

String

节点IP。

serviceID

String

服务ID。

  • 容器应用为{projectId}_{hostid}_{appName}的md5值。
  • 进程应用为{projectId}_{hostid}_{进程名}_{进程pid}的md5值。
  • processID定义方式:md5({projectId})_{hostid}_md5({进程名})_{进程pid}。

    md5(projectId) 表示求projectId的md5值,md5({进程名})表示求进程名的md5值

这些维度信息需要与监控上报的维度信息一致,不一致会导致无法关联到对应的资源。

podID

String

实例ID。

podName

String

实例名称。

containerID

String

容器ID。

containerName

String

容器名称。

processID

String

进程ID。

processName

String

进程名称。

Application

String

应用名称。

alarmId生成方法

alarmId可以不使用本方法生成,只要保证唯一就可以。

使用{projectId}_{产生告警的服务名}_{维度信息}_{指标名称}_{告警类型}_{规则信息}生成md5值。

其中:

  • projectId:项目ID,获取方式请参见获取项目ID
  • 维度信息
    • 节点信息:{clusterId}_{namespace}_{ip}
    • 容器信息:{clusterId}_{namespace}_{appName}_{podName}_{containerId}
    • 应用信息:{clusterId}_{namespace}_{appName}
  • 告警类型
    • 21:动态阈值告警
    • 22:批量阈值告警
    • 23:阈值告警
    • 24:系统类告警
    • 25:新增/删除探针
    • 26:agent安装类告警
  • 规则信息:阈值规则的告警使用阈值规则名称;业务自己触发的告警(没有规则)则填写NA。动态阈值的则填写policyId。

示例

  • 节点告警
    {
        "alarmName": "测试##test",
        "alarmId": "73ccbccce05de74f9d3dda42f6ecfe20",
        "detailedInformation": "测试##test",
        "url": "",
        "source": "IEF",
        "cleared": false,
        "policyID": "",
        "perceivedSeverity": 4,
        "resourceId": {
            "namespace": "PAAS.NODE",
            "dimension": {
                "clusterId": "e277befa37a64ed1aa25b522e686bc28",
                "nameSpace": "default",
                "nodeIP": "192.168.0.164"
            }
        },
        "neType": "Host",
        "eventType": 23
    }
  • 应用告警
    {
        "alarmName": "应用重启test##Application restart",
        "alarmId": "b09076ff565c59d4da0db0c9223781",
        "detailedInformation": "应用重启 test##Application restart test",
        "url": "",
        "source": "IEF",
        "cleared": false,
        "policyID": "",
        "perceivedSeverity": 3,
        "resourceId": {
            "namespace": "PAAS.CONTAINER",
            "dimension": {
                "containerName": "container-e991acd3-864c-4038-8a90-e042eebab496",
                "containerID": "70b385315c8ac507b3de7dfe1258932cea0b53a850b7d030ce7ed0a55c47877c",
                "podID": "0e9ce4fd-b732-11e9-8a30-fa163e9b3546",
                "podName": "hxkapp1-7898f5bd4b-2lj8z"
            }
        },
        "neType": "Application",
        "eventType": 23
    }