职贝云数AI新零售门户

标题: ARMS监控及企微告警运用引见 [打印本页]

作者: Oa5px6Mi    时间: 2025-7-22 09:12
标题: ARMS监控及企微告警运用引见
一、运用背景

  随着云原生架构的疾速发展,分布式系统的复杂性不断增长。面对突发的接口超时、服务异常、业务异常等成绩,传统的"用户报障->人工排查->被动修复"形式已无法满足业务需求。如何完成分钟级异常感知与团队协同呼应,成为技术团队的核心诉求。详细到项目运用,为提升兴港通项目如何疾速发现产线成绩及疾速定位产线成绩缘由的才能,借助员工对工作企微及时查看音讯的便利性,经过企微机器人,将产线告警成绩推送至企微,项目组相关人员在共同企微告警群,从而第一工夫发现产线运用成绩。其次,经过运用实时链路监控服务ARMS将原生客户端、H5、混合运用、后端等运用央求日志以及自定义业务逻辑单元日志经过独一的【traceId】方式,聚合成运用调用链路,以便疾速定位跨端、跨运用央求出现的成绩缘由。
二、运用引见

2.1 项目监控诉警引见

  运用监控诉警技术途径次要包括开源、商用、自研三大类,市面上此类技术运用层出不穷,对于如何选择合适本身的运用监控,还得结合项目本身大小、复杂度、长期目的、有效性、技术成本等多个方面综合思索,本文次要引见如何借助监控诉警工具以目的为导向处理项目两大痛点。
2.2 成绩痛点

  (1)告警有效性不足:以往产线出现告警成绩都是经过邮件、短信、监控大屏等方式告知,如没有专人盯着告警信息,或者邮件短信没有及时查看,产线的告警信息容易出现延迟被动处理,实践上大部分产线成绩往往都是由业务、客服、客户先发现,项目组就非常被动,为了确保项目组第一工夫发现产线成绩,项目组自动提出技术优化需求,将系统异常的阻拦器、异常日志、自定义业务异常三个层面的告警停止收敛,经过企微api方式推给项目组所在的企微告警群,可以完成大部分真实成绩第一工夫自动发现,及时处理成绩避免隐患,以及不是业务成绩的错误日志倒逼项目组停止优化,提升系统健壮性。
  (2)产线异构链路成绩定位效率低:由于消费有时出现业务及客户反馈的成绩,前端及原生客户端找到央求日志后,无法疾速定位到是本身的成绩还是网络成绩还是后台的成绩,或者定位到后台后,后台同一工夫同一央求的日志众多,难以精准定位到哪一笔央求数据,甚至后台之间各个微服务、集群之间的调用,仅经过日志分析效率也很低,经过arms将各端、各运用的央求,经过【traceId】停止聚合,可以疾速定位到央求各个环节的运转状况,如仍需详细环节的细节定位可再经过日志系统及其他监控工具辅助定位。
  监控目的:
2.3 ARMS简介

  运用实时监控服务ARMS(Application Real-Time Monitoring Service)是一款阿里云运用功能管理(APM)类监控产品。借助本产品,可以基于客户端、前端、后端、业务自定义等维度,便捷地为项目构建实时呼应的运用监控才能。此文次要引见ARMS在运用层面的央求技术途径、自定义业务单元的日志全链路监控。PS:ARMS作为sdk方式引入至运用,因此只能覆盖运用层面的全链路,对于除服务器之外的硬件、网络负载层面的分析还需人工及其他工具辅助。
  核心才能:
与传统跟开源工具选型对比:
方案特性传统Zabbix开源Prometheus阿里云ARMS
数据采集延迟1-5分钟15-30秒3-5秒
分布式追踪才能需自行集成开箱即用
大前端监控不支持不支持原生、JS错误追踪
SLA保障99.95%
2.4 企微告警简介

  企微告警是项目组在运用层面(原生客户端、web前端、后台),经过阻拦器的方式,将收敛的系统异常以及自定义业务异常经过全局阻拦器停止辨认,调用企微的接口,将告警信息推送至开发、测试、运维、产品所在的告警群,此时项目组相关的担任人员会在工作时,借助工作时对企微音讯及时阅读的便利性,第一工夫处理产线的告警成绩,完成早于用户反馈发现成绩,及时处理成绩。
  企微机器人优势:
三、监控功能详解

3.1 基础功能

功能功能阐明
运用总览显示运用的关键目的、上下游依赖组件以及拓扑图。
运用概况监控运用以及运用各实例的拓扑、央求数、呼应工夫、慢调用次数、HTTP形态码等信息。
接口调用监控监控运用下的接口调用概况,包括SQL调用分析、NoSQL调用分析、异常分析、错误分析、链路上下游和调用链查询。
数据库调用监控了解运用的数据库调用状况,包括概况、SQL调用、异常、调用来源、调用链列表等信息。
NoSQL调用监控了解运用的NoSQL调用状况,包括概况、NoSQL调用、异常分析、调用链列表等信息。
外部调用监控监控的外部调用,定位运用外部调用缓慢或出错的成绩。
MQ监控展现音讯队列Apache RocketMQ版的Topic发布和订阅音讯的状况。
定时义务监控了解定时义务的详细状况,包括概览、SQL调用分析、NoSQL调用分析、异常分析、错误分析、链路下游和调用链查询。
JVM监控监控重要的JVM目的,包括GC(Garbage Collection)瞬时目的、堆内存目的、非堆内存目的、元空间目的、直接缓冲区目的、JVM线程数等。
线程池和衔接池监控监控详细运用所运用的线程池或衔接池的各项目的,包括核心线程数量、当火线程数量、最大线程数量、活跃线程数量、义务队列容量。
主机监控监控CPU、内存、Disk(磁盘)、Load(负载)、网络流量和网络数据包的各项目的。
容器监控了解运用的Pod状况,包括CPU、物理内存、网络流量、网络数据包等信息。
异常分析了解运用的异常状况。
错误分析了解运用的错误状况。
调用链查询了解运用一切接口的被调用状况,包括产生工夫、耗时、形态等信息。
智能洞察智能洞察是一个对运用停止定时巡检的智能运维工具。针对巡检后发现的成绩,智能洞察可以给出详细的根因分析和建议,同时支持订阅告警。
事情中心事情中心将云产品所生成的事情数据停止一致管理、存储、分析和展现,当您的运用运用了相关的产品,对应的事情会自动接入事情中心停止一致的分析展现,方便查看与分析。
调用链查询经过TraceId准确查询调用链路详细状况,或结合多种条件挑选查询调用链路。
配置告警规则制定针对特定运用监控的告警规则。当告警规则被触发时,系统会以您指定的告诉方式向告警联络人或钉群发送告警信息。
自定义配置调整运用设置,例如调用链采样率、Agent开关、慢SQL阈值等。
3.2 高阶功能

功能功能阐明
持续分析有效发现Java程序中由于CPU、内存和IO导致的瓶颈成绩,并且按照方法称号、类称号和行号停止细分统计,最终协助开发者优化程序、降低延迟、添加吞吐、节约成本。
调用链分析基于已存储的链路明细数据,自在组合挑选条件与聚合维度停止实时分析,可以满足不同场景下的自定义诊断需求。
内存快照在线创建和分析内存快照,排查内存泄露和内存糜费等内存成绩。
线程分析提供线程粒度的CPU耗时和每类线程数量的统计,可真实还原代码执行过程,当发现集群的CPU运用率过高,或者出现大量慢方法时,可以经过线程分析功能找到耗费CPU最多的线程或方法。
日志分析配合业务日志,精准定位业务异常。
Arthas诊断应用字节码加强技术,可以在不重启JVM进程的状况下,查看程序执行的明细状况。
四、运用实际

4.1 项目引入ARMS

  ARMS运用监控经过探针技术,在运用运转态停止字节码加强,完成运用功能管理才能,因此接入ARMS运用监控不会触及到任何一行业务代码的改动,在研发态不需求感知探针的存在。
  web前端和后台可经过容器的方式引入安装,例如dockerfile中,将阿里云账户管理面板中的下载链接引入即可:

(, 下载次数: 3)

  安装完后设置授权信息:
  1. ENV arms_licenseKey={LicenseKey}ENV arms_appName={AppName}
复制代码
  Android和iOS需先下载sdk放置指定目录,经过build setting 方式引入到项目中。
4.2 功能清单

  主界面及功能菜单,按arms控制台创建的运用为单位展现运用列表,可单个项目作为一个运用,也可多个项目组合成一个运用,视业务单元及微服务组成而定:

(, 下载次数: 4)

  前端与后台经过dockerfile方式引入,客户端经过build配置引入,引入时指定arms控制台创建好的运用arms_appName:

(, 下载次数: 3)

  点击运用概况,可查看项目总体运转状况,当然消费需求将客户信息、买卖信息等敏感信息脱敏,客户定位可经过userId、央求定位可经过traceId停止搜索串联:

(, 下载次数: 3)

  经过用户ID检索央求链路:

(, 下载次数: 4)

  根据traceId检索央求链路:

(, 下载次数: 3)

  查看调用链概况,如聚合的央求与参数信息不够用时,可点击定位到详细的日志系统,展现详细打印的日志停止辅助分析:

(, 下载次数: 5)

  一键跳转到日志系统,查看系统原始日志:

(, 下载次数: 4)


4.3 企微告警接入

  企微告警的逻辑相对简单,次要经过运用代码阻拦器及日志监控的方式将业务及系统异常经过企微api推给项目组的企微告警群,关键在于异常日志的收敛及不断优化、业务逻辑异常的梳理、以及无侵入性兼容不影响业务代码运转,确保告警信息的覆盖残缺度及有效性。
  企微机器人配置:
  创建告警群组(需企业微信管理员)
  1. 右键群组 -> 添加机器人
  2. 记录Webhook地址(格式:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx)
  亦可经过arms深度集成,但arms还未停止有效的收敛,目前经过运用收敛阻拦的方式完成告警有效性,运用调用企微http api代码如下:
  1. privatevoidNotifyHook(String msg){if(ConfigService.getAppConfig().getProperty("hook_env","0").equals("1")){String hook_url =ConfigService.getAppConfig().getProperty("qywx_webhook_url","https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx");Header[] headers =newHeader[1];
  2.             headers[0]=newBasicHeader("Content-Type","application/json");HttpPost httpPost =newHttpPost(hook_url);
  3.             httpPost.setHeaders(headers);
  4.             httpPost.setEntity(newStringEntity(msg,"UTF-8"));HttpInvokeUtil.httpPost(httpPost,"UTF-8");}}
复制代码
告警有效性评价目的:
评价维度计算公式目的
告警准确率(TP)/(TP+FP)>90%
平均呼应工夫一切确认告警的初次呼应平均时工作日<5分钟
处置完成率(已关闭告警)/(总告警数)99%





欢迎光临 职贝云数AI新零售门户 (https://www.taojin168.com/cloud/) Powered by Discuz! X3.5