You need to enable JavaScript to run this app. Azure HDInsight Metrics如何自定义采集应用级指标实现告警?
优惠活动
大模型
产品
解决方案
定价
更多

Azure HDInsight Metrics如何自定义采集应用级指标实现告警?

HDInsight 应用级自定义指标采集配置方案

整体调整方向

当前集群已完成Log Analytics和AppInsights的基础接入,不需要重新搭建全链路监控体系,只需要调整组件指标上报粒度、扩展现有采集代理的抓取范围,就能把原来散落在YARNUI等位置的应用级结构化数据集中到Azure可直接配置告警的平台层。

第一步:放开YARN组件的应用级指标上报能力

  • 登录集群Ambari管理控制台,找到YARN服务的yarn-site.xml配置段,新增/修改以下配置,覆盖默认仅上报全局聚合指标的逻辑:
    • 将yarn.timeline-service.generic-application-history.enabled设置为true,开启单应用粒度的历史指标上报能力
    • 调整YARN ResourceManager的指标暴露配置,放开单个流处理应用的状态、资源使用、运行时长等字段的对外接口访问
    • 对所有提交的流处理应用(Flink/Spark Streaming),在提交参数中追加-D yarn.timeline-service.enabled=true,强制应用把运行时指标推送到YARN Timeline Service v2,避免指标仅存在应用本地UI
  • 调整集群节点上的Log Analytics代理采集规则,不再仅抓取宿主机层面的“运行中应用总数”这类全局计数器,新增对YARN Timeline Service接口返回结构化数据的解析逻辑,把应用ID、应用名称、运行状态、资源使用率等字段直接推送到Log Analytics存储。

第二步:解决分散在YARNUI的非结构化数据采集问题

不要通过爬取YARNUI前端页面的方式采集数据,避免页面结构变动导致采集失效:

  • 对所有已上报到Timeline Service的应用,直接通过标准化REST接口拉取结构化字段:包括应用运行状态(RUNNING/FAILED/KILLED)、累计任务失败次数、容器申请/实际分配数值、应用启动时间,这些字段原本仅在YARNUI页面展示,采集后可直接作为可监控的指标维度使用
  • 针对无法自动上报Timeline Service的存量应用,在集群边缘节点部署轻量定时脚本:每30秒调用YARN ResourceManager的应用列表查询接口,将返回结果按照Log Analytics自定义指标的格式(带时间戳、应用ID、状态标签)推送至工作区,脚本部署不修改集群核心组件配置,不会影响生产作业运行。

第三步:基于集中化的指标配置告警规则

所有结构化采集的应用级指标存入Log Analytics后,可直接在Azure平台完成告警配置,无需跨系统跳转:

  • 编写对应的Kusto查询语句实现监控逻辑,比如:
    • 连续查询指定流应用的状态值,当检测到状态从RUNNING切换为FAILED、超过1次连续上报失败状态时触发告警
    • 匹配应用的资源使用率、处理延迟指标,当超过预设阈值时触发告警
  • 可直接绑定现有AppInsights的告警动作通道,将采集到的异常状态推送到已配置的通知渠道,不需要重复搭建通知链路。

实操注意事项

  • 采集频率设置为1分钟间隔即可满足流应用的状态监控需求,不要把抓取间隔设置过短,避免给ResourceManager增加不必要的查询压力
  • 所有自定义配置需添加明确的标识前缀,不要覆盖HDInsight平台默认的配置基线,方便后续集群版本升级时快速定位和回滚自定义配置
  • 采集过程中过滤测试类、临时运行的批处理应用,避免无关指标占用Log Analytics的存储配额

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 03:06:01