基于 eBPF 技术打造的 LightAPM 应用监控,效果如何

本文涉及的产品
应用实时监控服务-应用监控,每月50GB免费额度
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 本文介绍如何利用LightAPM解决“古早应用”(如银行老核心、证券交易系统)的监控难题。这些基于C/C++或老旧JDK的系统封闭且难以改造,传统字节码增强技术无法适用。通过部署集成eBPF技术的OneAgent,LightAPM实现无侵入、开箱即用的监控,自动绘制服务拓扑、发现服务并采集应用与基础设施指标,支持多JDK混合环境。结合因果AI,还可智能告警与根因定位,为遗留系统提供高效可观测性方案。

前言

笔者最近跑了一些客户,发现虽然云化趋势明显,但很多客户依然存在着大量的“古早应用”在线运行(很早期开发的应用系统),比如银行的老核心、证券业的交易系统、制造业的生产系统等等,他们大多为C、C++甚至汇编语言编写、大量JDK老版本。

这些系统相对封闭,不适合采用当下流行的字节码增强技术,想要对他们上点监控,动作要求相当苛刻。

e1.jpg

图:"古早"应用示意图

01 实验场景

我们先来构建一套实验场景,在环境里搭建包含 JDK6、JDK8、JDK11 的混合运行环境:

JDK 8:

JDK8.png

JDK 11:

JDK11.png

JDK 6:

JDK6.png

然后在主机上部署几个服务实例,各服务的运行关系如下所示:

E2.png

图:各服务之间的调用关系

02监控实施

笔者公司在产品设计时,已经将 LightAPM 的采集能力封装在了 OneAgent 内部,因此用户不需要单独部署独立的 eBPF 代理,只需要安装一个OneAgent 就够了。

在databuff 平台上复制安装命令并在服务器上执行,即可完成 OneAgent 安装(OneAgent 默认开启LightAPM的采数功能),整个过程无需修改配置或重启应用进程。

E3.png

图:复制OneAgent安装命令

E4.png

图:在主机上执行安装OneAgent命令

LightAPM 的部署方式真正实现了开箱即用的监控体验,为大规模分布式系统的可观测性建设提供了极致简化的解决方案。

03 监控效果

3.1服务拓扑自动绘制

OneAgent 部署完成后,LightAPM 会自动绘制出 服务拓扑图,直观呈现各服务之间的调用关系,且各服务是以servicename的形式展现在画布上,如下图所示。

E5.png

图:服务调用拓扑图

在拓扑图上:

  • 节点颜色, 表示服务健康状态;

  • 点击节点, 可查看性能指标;

  • 左侧布局, 展示节点所属的 Pod、进程及所在主机或 Node;

  • 右侧面板, 展示告警、请求数、错误率、响应时间等关键指标。

点击拓扑图上的节点,弹出的右侧抽屉会展示该节点的相关信息:属性、告警、KPI指标曲线。

E6.gif

图:空间拓扑及节点指标监控

说明:想象一下,任何一套黑盒的老旧系统,我们在主机上安装 OneAgent 之后,服务资产及调用架构就全部自动完成了。

3.2 服务自动发现

部署完成后,LightAPM 会将采集到的数据上报到 应用性能监控模块,平台会自动生成服务并展示在服务列表中。(LightAPM会直接使用通用APM模块的功能界面)我们打开服务列表可以看到如下的数据:

E7.png

图:服务列表

请求耗时:提供 P95、P99 延迟趋势;

调用次数:各节点 QPS 波动情况;

错误监控:错误率及详细错误信息;

系统指标:CPU 使用率、内核态/用户态耗时、网络重传情况等。

点击其中一个服务,进入 服务详情页,可以看到:

E8.gif

图:服务详情页

  • 服务的上下游调用关系;
  • 各类基础指标(可按实例维度下钻);
  • 服务告警与网络数据;
  • 与主机、进程、Pod 的关联信息。

让人惊喜的是,除应用性能指标外,服务相关的基础设施层指标(CPU、内存、流量等) 也能同步获取,自动的实现了应用与基础设施的关联观测。

3.3 服务监控指标

除了拓扑可视化,LightAPM 还提供强大的告警配置和根因定位功能。当触发预设检测规则时,平台通过智能收敛算法聚合告警信息。

Databuff 的 因果AI 同样适用于LightAPM采上来的数据分析,可以输出自动化的问题根因、提供精准的处置建议,如图所示:

E9.png

图:LightAPM的指标告警详情

E10.png

图:LightAPM的根因分析详情

04 结尾

今天的分享就到这里,我们可以看到过去一直让通用APM、日志监控方案束手无策的“古早应用”的监控难题,LightAPM 可以帮助解决。

后续,笔者会准备系列文章,一步步的带大家认识 LightAPM 的能力,它是如何与通用APM形成互补、共同构成可观测整体方案。

相关文章
|
29天前
|
人工智能 安全 Java
分布式 Multi Agent 安全高可用探索与实践
在人工智能加速发展的今天,AI Agent 正在成为推动“人工智能+”战略落地的核心引擎。无论是技术趋势还是政策导向,都预示着一场深刻的变革正在发生。如果你也在探索 Agent 的应用场景,欢迎关注 AgentScope 项目,或尝试使用阿里云 MSE + Higress + Nacos 构建属于你的 AI 原生应用。一起,走进智能体的新世界。
349 36
|
26天前
|
存储 人工智能 缓存
运维智能体(SRE Agent)技术分级能力要求
本标准规范了运维智能体在场景应用、协同能力、能力建设及底座构建方面的技术要求,适用于公共与私有环境下的服务与产品。依据AI技术发展,定义了从初始级到优秀级的三级能力框架,涵盖感知、控制、行动等核心能力,推动运维智能化升级。
运维智能体(SRE Agent)技术分级能力要求
|
2月前
|
人工智能 监控 安全
Gartner报告:可观测性平台魔力象限
本文由Gregg Siegfried等作者撰写,阐述了可观测性平台如何通过遥测数据采集、AI分析与成本优化,助力企业提升系统健康度与业务韧性,并详解市场定义、核心功能及主流供应商优劣势。
Gartner报告:可观测性平台魔力象限
|
24天前
|
监控 安全 数据可视化
开发更可控,部署更便捷:AgentScope 迈入1.0时代
AgentScope 1.0 是通义实验室推出的开源多智能体开发框架,旨在打造稳定、安全、开箱即用的智能体生产级解决方案。通过“核心框架+运行时+可视化工具”三层架构,支持智能体的构建、部署、监控全生命周期管理,具备实时干预、高效工具调用与智能上下文管理能力,助力开发者实现从“能跑”到“可控、可落地”的跨越。
521 0
|
6天前
|
存储 算法 Java
深入理解JVM:内存管理与垃圾回收机制探索
JVM是Java程序的运行核心,实现跨平台、自动内存管理与高效执行。其架构包括类加载、运行时数据区、执行引擎等模块。内存模型历经演变,JDK 8起以元空间替代永久代,优化GC性能。JVM通过分代回收机制,结合标记清除、复制、整理等算法,管理对象生命周期,提升系统稳定性与性能。
|
13天前
|
运维 监控 数据可视化
从巴比馒头的“洗菜流水线”,来看“telemetry pipeline”工具的火热兴起
以巴比馒头自动化洗菜为喻,探讨运维领域“数据清洗”难题。DataHub作为国产可视化遥测管道工具,支持多源数据接入与低代码编排,实现日志、指标、链路等数据的高效处理与统一管理,助力企业构建高质量可观测体系。(238字)
|
13天前
|
Kubernetes 监控 Cloud Native
Java Agent 启动耗时性能评测排行榜
在云原生与微服务高频发布场景下,APM探针启动延迟影响容器生命周期。本文对比主流Java APM方案启动耗时,揭示Databuff探针以43秒领先,较SkyWalking(66秒)显著优化。分析其按需字节码注入、异步上报、无锁配置等低开销设计,并提供K8s探针配置建议,助力提升部署效率与系统稳定性。
|
存储 数据采集 人工智能
以Trace为核心的根因分析概述
近期一直在学习和复现“根因分析”领域的相关文章,在这里跟大家一起分享下相关内容。这里不在赘述关于“可观测性”和“AIOps”的重要性和必要性,也不过多的陈述在“复杂系统”中进行快速根因诊断的必要性,直接进入到相关算法和系统设计部分。
2064 0
以Trace为核心的根因分析概述
|
11天前
|
监控 前端开发 JavaScript
RUM实践-最大内容绘制(LCP)优化
LCP(最大内容绘制)衡量用户首次看到页面主内容的时间,理想值低于2.5秒。通过RUM工具收集数据,优化服务器响应、减少阻塞资源、图片压缩与预加载等手段,可有效提升LCP,改善用户体验。
|
11天前
|
监控 算法 搜索推荐
JVM性能优化实战手册:从监控到调优策略
本文基于DataBuff监控数据,系统探讨JVM性能优化实战,涵盖监控体系构建、GC调优、内存与线程管理等关键策略。通过调整堆大小、启用G1回收器等参数优化,有效降低Full GC频次,提升应用稳定性,为Java性能调优提供可落地的实践指南。(238字)