更新警报配置
注意
注意:群组和项目是同义词。您的 {PROJECT-ID}
与您的项目 ID 相同。对于现有群组,群组/项目 ID 保持不变。当引用说明时,此页面将使用“群组”这个更为人熟知的术语。端点仍如文档中所述。
基本 URL: https://{OPSMANAGER-HOST}:{PORT}/api/public/v1.0
Resource
PUT /groups/{PROJECT-ID}/alertConfigs/{ALERT-CONFIG-ID}
注意
要仅更新警报配置的启用/禁用状态,请参阅启用/禁用警报配置。
请求路径参数
所有请求路径参数均为必填项。
Parameter | 类型 | 说明 |
---|---|---|
PROJECT-ID | 字符串 | 此项目的唯一标识符。 |
ALERT-CONFIG-ID | 字符串 | 此警报配置的唯一标识符。 |
请求查询参数
以下查询参数为可选参数:
名称 | 类型 | 必要性 | 说明 | 默认 | ||||||
---|---|---|---|---|---|---|---|---|---|---|
pretty | 布尔 | Optional | 指示响应正文是否应采用 Prettyprint 的标志 格式。 | false | ||||||
envelope | 布尔 | Optional | 指示是否将响应包装在信封中的标志。 某些 API 客户端无法访问 HTTP 响应标头或状态代码。要解决这个问题,可在查询中设置 envelope=true。 对于返回一个结果的端点,响应体包括:
| false |
请求正文参数
注意
警报配置各不相同。 警报配置可能仅包含这些元素的子集。
名称 | 类型 | 说明 |
---|---|---|
enabled | 布尔 | 如果省略,则禁用配置。 |
eventTypeName Required. | 字符串 | |
matchers.fieldName | 字符串 | 目标对象中要匹配的字段的名称。
所有其他类型的警报不支持匹配器。 |
matchers.operator | 字符串 | 用于测试字段值的操作符。 接受的值为:
|
matchers.value | 字符串 | 要使用指定操作符进行测试的值。 如果将
|
matchers | 对象数组 | 将对象与此警报配置进行匹配时要应用的规则。 只有符合所有这些规则的实体才会被检查是否存在警报条件。 仅当 |
metricThreshold.metricName | 字符串 | 要检查的指标名称。 支持与 alerts 资源的metricName 字段相同的值。 |
metricThreshold.mode | 字符串 | 设置为 AVERAGE 以计算该指标的平均值。 |
metricThreshold.operator | 字符串 | 根据阈值检查当前指标值时要应用的操作符。 接受的值为:
|
metricThreshold.threshold | 数字 | 阈值,超出该阈值则会触发警报。 |
metricThreshold.units | 字符串 | 阈值的单位。 取决于指标类型。 示例,测量内存消耗的指标将具有字节测量值,而测量时间的指标将具有时间单位。 接受的值为:
|
metricThreshold | 对象 | 导致触发警报的阈值。 如果 "eventTypeName" : "OUTSIDE_METRIC_THRESHOLD" ,则为必填项。 |
notifications.apiToken | 字符串 | Slack API 令牌或 Bot 令牌。 如果 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.channelName | 字符串 | Slack 通道名称。 如果 "notifications.typeName" : "SLACK" ,则为必填项。 |
notifications.datadogApiKey | 字符串 | DataDog API 密钥。 可在 DataDog 仪表盘中找到。 如果 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.delayMin | 数字 | 检测到警报条件后发送第一个通知之前的等待分钟数。 |
notifications.emailAddress | 字符串 | 向其发送通知的电子邮件地址。 如果 "notifications.typeName" : "EMAIL" ,则为必填项。 |
notifications.emailEnabled | 布尔 | 确定是否应发送电子邮件通知。 在以下情况下为必填项:
|
notifications.intervalMin | 数字 | 未解决的未确认警报的连续通知之间等待的分钟数。 |
notifications.webhookSecret | 字符串 | |
notifications.webhookUrl | 字符串 | |
notifications.microsoftTeamsWebhookUrl | 字符串 | Microsoft 团队 渠道传入的 Webhook URL。如果 当您查看或编辑 Webhook 通知的警报时,URL 会显示为部分遮蔽,而密钥显示为完全遮蔽。 |
notifications.mobileNumber | 字符串 | 要向其发送短信的手机号码。 如果 "notifications.typeName" : "SMS" ,则为必填项。 |
notifications.notificationToken | 字符串 | HipChat API 令牌。 如果 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.role | 字符串 | 当前项目中的 Ops Manager 角色。如果 "notifications.typeName" : "GROUP" ,则为必填项。 |
notifications.roomName | 字符串 | HipChat 房间名称。 如果 "notifications.typeName" : "HIP_CHAT" ,则为必填项。 |
notifications.serviceKey | 字符串 | PagerDuty 集成密钥。 如果 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.smsEnabled | 布尔 | 指示必须发送短信通知的标志。 在以下情况下为必填项:
|
notifications.teamId | 字符串 | 团队的唯一标识符。 |
notifications.typeName | 字符串 | 警报通知类型。 接受的值为:
|
notifications.username | 字符串 | 要向其发送通知的 Ops Manager 用户的名称。在项目中指定拥有警报配置的用户。 如果 "notifications.typeName" : "USER" ,则为必填项。 |
notifications Required | 对象数组 | 检测到警报条件时发送的通知。 |
threshold.operator | 字符串 | 根据阈值检查当前指标值时要应用的操作符。
|
阈值.threshold | 数字 | 阈值,超出该阈值则会触发警报。 |
阈值 | 对象 | 导致触发警报的阈值。 在以下情况下为必填项:
|
响应
响应包括警报配置详细信息:
注意
警报配置各不相同。 警报配置可能仅包含这些元素的子集。
名称 | 类型 | 说明 |
---|---|---|
已创建 | 字符串 | ISO8601 格式的时间戳 创建此警报配置时的日期和时间格式( UTC 格式)。 |
enabled | 布尔 | 指示此警报配置已启用的标志。 |
eventTypeName | 字符串 | 触发警报的事件类型。 |
groupId | 字符串 | 拥有此警报配置的项目的唯一标识符。 |
id | 字符串 | 警报配置的唯一标识符。 |
链接 | 对象数组 | 指向子资源和/或相关资源的一个或多个链接。 URL 之间的关系类型在 Web 链接规范 中进行了解释 。 |
matchers | 对象数组 | 将对象与此警报配置进行匹配时要应用的规则。 |
matchers .[n].fieldName | 字符串 | 您希望此配置匹配的目标对象中的字段名称。 |
matchers .[n].operator | 字符串 | 根据 matcher.[n].value 检查当前指标值时要应用的比较操作符。 |
matchers .[n].value | 字符串 | 使用 matchers.[n].operator 时要匹配或超过的值。 |
metricThreshold | 对象 | Atlas Triggers警报的值和比较方法。 |
metricThreshold .metricName | 字符串 | 要检查的指标名称。 支持与 alerts 资源的metricName 字段相同的值。 |
metricThreshold .mode | 字符串 | 此指标的平均值。 |
metricThreshold .operator | 字符串 | Ops Manager 在根据阈值检查当前指标值时应用的比较操作符。 |
metricThreshold .threshold | 数字 | metricThreshold.metricName 的值,超过该值时会Atlas Triggers警报。 |
metricThreshold .units | 字符串 | 定义 metricThreshold.threshold 范围的容量或时间单位。 |
通知 | 对象数组 | Ops Manager 在检测到警报条件时发送通知的一个或多个目标。 |
notifications.[n] .apiToken | 字符串 | Slack API 令牌令牌。 如果您将 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.[n] .channelName | 字符串 | Slack 通道名称。 如果您将 notifications.[n].typeName 设置为SLACK ,Ops Manager 会返回此值。 |
notifications.[n] .datadogApiKey | 字符串 | DataDog API 密钥。 如果您将 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.[n] .delayMin | 数字 | 检测到警报条件后发送第一个通知之前的等待分钟数。 |
notifications.[n] .emailAddress | 字符串 | 向其发送通知的电子邮件地址。 如果您将 notifications.[n].typeName 设置为EMAIL ,Ops Manager 会返回此值。 |
notifications.[n] .emailEnabled | 布尔 | 指示必须发送电子邮件通知的标志。 如果您将 notifications.[n].typeName 设置为ORG 、 GROUP 或USER ,Ops Manager 会返回此值。 |
notifications.[n] .intervalMin | 数字 | 未解决的未确认警报的连续通知之间等待的分钟数。 |
notifications.[n] .microsoftTeamsWebhookUrl | 字符串 | Microsoft 团队 渠道传入的 Webhook URL。如果您将 当您查看或编辑 Webhook 通知的警报时,URL 会显示为部分遮蔽,而密钥显示为完全遮蔽。 |
notifications.[n] .mobileNumber | 字符串 | 向其发送警报通知的手机号码。 如果您将 notifications.[n].typeName 设置为SMS ,Ops Manager会返回此值。 |
notifications.[n] .notificationToken | 字符串 | HipChat API 令牌。 如果您将 如果令牌后来变得无效,MongoDB Atlas 会向 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.[n] .opsGenieApiKey | 字符串 | OpsGenie 警报 API 键。如果将 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.[n] .opsGenieRegion | 字符串 | 地区指示要使用的API URL。如果您将 notifications.[n].typeName 设置为OPS_GENIE ,Ops Manager会返回此值。 |
notifications.[n] .roles | 字符串数组 | 当前项目或组织中的 Ops Manager 角色。 如果您将 notifications.[n].typeName 设置为ORG 或GROUP ,Ops Manager 会返回此值。 |
notifications.[n] .roomName | 字符串 | HipChat 房间名称。 如果 "notifications.typeName" : "HIP_CHAT ,Ops Manager 返回此值。 |
notifications.[n] .serviceKey | 字符串 | PagerDuty 服务密钥。 如果您将 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.[n] .smsEnabled | 布尔 | 指示必须发送文本通知的标志。 如果您将 notifications.[n].typeName 设置为ORG 、 GROUP 或USER ,Ops Manager 会返回此值。 |
notifications.[n] .teamId | 字符串 | 接收此通知的团队的唯一标识符。 |
notifications.[n] .teamName | 字符串 | 接收此通知的团队的标签。 |
notifications.[n] .typeName | 字符串 | 您希望 Ops Manager 向您发送警报通知的方式。 |
notifications.[n] .username | 字符串 | 要向其发送通知的 Ops Manager 用户的名称。如果您将 notifications.[n].typeName 设置为USER ,Ops Manager 会返回此值。 |
notifications.[n] .victorOpsApiKey | 字符串 | VictorOps API密钥。 如果密钥后来变得无效,MongoDB Atlas 会向 如果您将 创建需要 API 或集成密钥的第三方集成后,当您执行以下操作时,该密钥将显示为部分经过校订的:
|
notifications.[n] .victorOpsRoutingKey | 字符串 | VictorOps 路由键。 如果密钥后来变得无效,MongoDB Atlas 会向 如果您将 |
notifications.[n] .webhookSecret | 字符串 | |
notifications.[n] .webhookUrl | 字符串 | |
阈值 | 对象 | Atlas Triggers警报的阈值。如果 eventTypeName 是OUTSIDE_METRIC_THRESHOLD 以外的任何值,则 Ops Manager 返回此值。 |
threshold .operator | 字符串 | Ops Manager 在根据阈值检查当前指标值时应用的比较操作符。 |
threshold .threshold | 数字 | 超过该值时,Ops Manager 会触发警报。 |
threshold .units | 字符串 | 定义 threshold.threshold 范围的容量或时间单位。 |
typeName | 字符串 | 此字段已弃用并被忽略。 |
Updated | 字符串 | ISO8601 格式的时间戳 上次更新此警报配置时的日期和时间格式( UTC 格式)。 |
请求示例
curl --user '{PUBLIC-KEY}:{PRIVATE-KEY}' --digest \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --include \ --request PUT "https://<ops-manager-host>/api/public/v1.0/groups/{PROJECT-ID}/alertConfigs/{ALERT-CONFIG-ID}" \ --data ' { "eventTypeName" : "RESYNC_REQUIRED", "enabled" : true, "matchers" : [ { "fieldName" : "REPLICA_SET_NAME", "operator" : "EQUALS", "value" : "rs1" } ], "notifications" : [ { "typeName" : "EMAIL", "emailAddress" : "sos@example.com", "intervalMin" : 60, "delayMin" : 5 }, { "typeName" : "GROUP", "intervalMin" : 120, "delayMin" : 60, "smsEnabled" : true, "emailEnabled" : false } ] }'
响应示例
响应标头
401 Unauthorized Content-Type: application/json;charset=ISO-8859-1 Date: {dateInUnixFormat} WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="{nonce}", algorithm=MD5, op="auth", stale=false Content-Length: {requestLengthInBytes} Connection: keep-alive
200 OK Vary: Accept-Encoding Content-Type: application/json Strict-Transport-Security: max-age=300 Date: {dateInUnixFormat} Connection: keep-alive Content-Length: {requestLengthInBytes} X-MongoDB-Service-Version: gitHash={gitHash}; versionString={ApplicationVersion}
响应体
{ "created" : "2014-04-23T14:52:29Z", "enabled" : false, "groupId" : "{PROJECT-ID}", "id" : "{ALERT-CONFIG-ID}", "links" : [], "matchers" : [ { "fieldName" : "REPLICA_SET_NAME", "operator" : "EQUALS", "value" : "rs1" } ], "notifications" : [ { "delayMin" : 5, "emailAddress" : "sos@example.com", "intervalMin" : 60, "typeName" : "EMAIL" }, { "delayMin" : 60, "emailEnabled" : false, "intervalMin" : 120, "smsEnabled" : true, "typeName" : "GROUP" } ], "updated" : "2014-04-23T14:56:25Z" }