You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建多指标告警并让通知包含服务名等元数据?

解决告警通知包含serviceName/instanceID元数据的方案

1. 改用维度筛选覆盖多实例

创建告警时,不要选择单个实例的指标,而是直接选择Namespace-X下的目标指标,通过维度过滤(指定serviceName、instanceID等维度)覆盖所有符合条件的实例。这种方式会自动关联所有匹配维度的实例,而非绑定单个实例。

2. Metric Math查询保留维度分组

使用Metric Math做聚合计算时,必须通过BY(serviceName, instanceID)语法保留维度分组,避免全局聚合丢失实例元数据。示例查询语句:

SUM(METRIC('Namespace-X/your-target-metric'), BY=['serviceName', 'instanceID'])

这样告警会按每个实例的维度生成独立告警事件,元数据会被完整携带。

3. 自定义通知模板引用维度变量

进入告警通知规则的「通知内容」配置,切换到自定义模板模式,直接在模板中引用维度变量。以邮件模板为例:

告警触发详情:

  • 服务名称:${dimensions.serviceName}
  • 实例ID:${dimensions.instanceID}
  • 当前指标值:${value}
  • 告警状态:${status}
    注意:不同云厂商的变量命名略有差异(比如AWS CloudWatch用${dimensions.instanceId}),需根据实际平台调整变量格式。

4. 验证指标推送时的维度完整性

如果告警事件本身没有携带元数据,说明指标推送阶段未正确附加维度标签。检查Python SDK推送代码,确保Dimensions字段包含serviceName和instanceID:

import boto3

cloudwatch = boto3.client('cloudwatch')
cloudwatch.put_metric_data(
    Namespace='Namespace-X',
    MetricData=[
        {
            'MetricName': 'your-metric-name',
            'Dimensions': [
                {'Name': 'serviceName', 'Value': 'servicename-N'},
                {'Name': 'instanceID', 'Value': 'instance-xxxx'}
            ],
            'Value': 120.0,
            'Unit': 'Count'
        }
    ]
)

内容的提问来源于stack exchange,提问作者pkachu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 16:40:17