JmxExporter 快速支持云原生 Java 组件的 jvm 信息展示
进行云原生化改造后 , 监控模型也发生了改变 。 最早的监控模型是 push , Zorka 每次发布都在同一台机器上 , 因此它有固定的 host;而上云后 , 容器化改造导致 Pod 不再固定 , 且可能会出现新的应用扩缩容等问题 。 因此 , 我们将监控模型逐步从 push 转换成 pull 模式 , 也更加契合 Prometheus 的收集模型 , 并逐步将 Zorka 从可观测体系中剥离 。
没有使用 ARMS 直接收集 JMX 指标是因为 ARMS 不会覆盖线上和线下所有 java 应用 , 没有被覆盖的应用也期望有 JVM 数据收集功能 , 而 ARMS 成本略高 。 因此 , 出于成本的考虑 , 我们没有将 ARMS 作为完整接入 , 而是选择了 JMX Exporter 组件 。
JMX Export 也是 Prometheus 官方社区提供的 exporter 之一 。 它通过 Java Agent 利用 Java JMX 机制读取 JVM 信息 , 可以将数据直接转化成为 Prometheus 可以辨识的 metrics 格式 , 使 Prometheus 能够对其进行监控和采集 , 并通过 Prometheus Operator 注册对应的 Service Moninor 完成指标收集 。
利用配置中心完成应用到 owner 的精准告警
随着公司业务蓬勃发展 , 人员激增 , 微服务暴增 , 研发人数和告警也剧烈增长 。 为了提升告警触达率和响应率 , 我们重新使用了 Apollo 配置中心的多语言 SDK , 通过 Go 自研了一套基于 Apollo 业务的应用提醒 , 整体流程如下:
通过 Grafana 收集到 ES 告警或其他场景下的告警 , 再通过 metrics 应用关联到 alert, 告警时会转发到前文提到的 Go 语言编写的精准告警服务上 。 精准告警服务解析到对应应用 , 根据应用从 Apollo 配置中心中获取到 owner 姓名、手机号等信息 , 再基于此信息通过钉钉进行告警 , 极大提升了消息阅读率 。
ARMS:无侵入支持 Trace
此外 , 我们还引入了阿里云的应用实时监控服务 ARMS, 能够在没有任何代码改造的前提下 , 支持绝大部分中间件和框架 , 比如 Kafka、MySQL、Dubbo 等 。 云原生化后 , 仅需要在 deployment 里添加注解即可支持相关探针的加载 , 微服务的可维护性极为友好 。 同时 , 还提供了较为完整的 trace 视图 , 可以查看线上应用节点调用日志的整个 trace 链路 , 也提供了甘特图的查看方式和依赖拓扑图、上下游耗时图等数据 。
可观测升级 Log Trace Metrics 理念升级
可观测在国内微服务领域已遍地开花 。 因此 , F6 公司也升级了可观测思路 。 业界广泛推行的可观测性包含三大支柱 , 分别是日志事件、分布式链路追踪以及指标监控 。 任何时代都需要监控 , 但是它已经不再是核心需求 。 上图可以看出 , 监控仅包含告警和应用概览 , 而事实上可观测性还需包括排错剖析以及依赖分析 。
最早的监控功能使用主体是运维人员 , 但运维人员大多只能处理系统服务告警 。 而上升到整个微服务领域 , 更多问题可能出现在应用之间 , 需要进行问题排障 。 比如服务出现了慢请求 , 有可能是因为代码问题 , 也可能因为锁或线程池不足 , 或连接数不够等 , 以上种种问题最终表现出来的特征是慢和服务无法响应 。 而如此多的可能性 , 需要通过可观测性才能定位到真正根因 。 然而 , 定位根因并非真实需求 , 真实需求更多的是利用可观测性分析出问题所处节点 , 然后通过替换对应组件、进行熔断或限流等措施 , 尽可能提升整体 SLA。
可观测性还可以很好的剖析问题 , 比如线上服务慢 , 可以观测其每个节点的耗时、每个请求中的耗时等 。 依赖分析也可以得到解决 , 比如服务依赖是否合理、服务依赖调用链路是否正常等 。
- 2022年12月6-7日|领军·杰出|锦江之星品牌白玉兰品牌再度斩获行业大奖
- 程序员|程序员的口味变了!C++首次逆袭JAVA:跻身最受欢迎编程语言TOP3
- Java|华为笔记本双12大促开启 智慧体验让办公学习更高效
- Java|京东第一刀落下:多个副总裁卸任 刘强东嫡系人手接管
- Java|荣耀Magic5Pro很大胆,16GB+5000mAh+100W,香喷喷
- 算法|外卖行业的下滑,或许是平台从放弃“算法”的那一刻起!
- 补齐行业技术短板!国内高端翻转犁在洛阳完成试制
- 拓尔思|电子行业报告:芯片良率的重要保障,量检测设备国产替代潜力大
- Java|MIUI14把精简当作核心卖点,国产系统急需做减法
- Java|“高薪专业户”的IT互联网行业是否已达到天花板?Java行业薪酬
