群机器人是研发运维团队监控告警落地的利器。通过简单的 Webhook 协议,系统可以把服务器异常、指标越界等信息实时推送到业务交流群。

避坑指南与频率限制

企业微信群机器人对单机器人发送频率有限制(通常为每个机器人每分钟不超过 20 条)。如果遇到高并发报错日志,直接推送会导致大量消息被丢弃。

漏桶算法与批量聚合

建议在应用层引入聚合发送机制:短时间内相似的报警先在内存中缓存、合并,或者使用漏桶算法平滑发送速率。

Markdown 格式推送实现

import requests
import json

def send_markdown_alert(webhook_key, title, content_list):
    """
    通过群机器人发送 Markdown 格式告警
    """
    url = f"https://api.qiweapi.com/cgi-bin/webhook/send?key={webhook_key}"
    
    # 拼接 Markdown 内容
    content = f"### <font color=\"warning\">{title}</font>\n"
    for item in content_list:
        content += f"> - {item}\n"
        
    payload = {
        "msgtype": "markdown",
        "markdown": {
            "content": content
        }
    }
    
    headers = {'Content-Type': 'application/json'}
    response = requests.post(url, data=json.dumps(payload), headers=headers)
    result = response.json()
    
    if result.get("errcode") != 0:
        print(f"Webhook send failed: {result.get('errmsg')}")
        return False
        
    return True

合理利用 Markdown 的颜色高亮(如 infocommentwarning),可以让运维人员在移动端一眼识别故障严重程度。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐