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

原文链接:​​​​​​https://databuff.com/resourceDetail/blog107

前言

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

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

图片

图:"古早"应用示意图

面对这些特殊场景,笔者公司专门开发了一套基于eBPF技术的监控方案,可以用来给这些古早应用做一场 “无创手术”,以补充通用APM技术在特殊性场景的短板。我们将这种技术形象的称之为“LightAPM”

顾名思义“轻量级APM”,实施上轻量、功能上轻量,既有优点、也有缺点。今天就先带大家看一看,它是如何解决JDK老版本的应用监控问题哈。

01 实验场景

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

JDK 8:

图片

JDK 11:

图片

JDK 6:

图片

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

图片

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

02 监控实施

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

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

图片

图:复制OneAgent安装命令

图片

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

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

03 监控效果

3.1服务拓扑自动绘制

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

图片

图:服务调用拓扑图

在拓扑图上:

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

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

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

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

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

图片

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

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

3.2 服务自动发现

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

图片

图:服务列表

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

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

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

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

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

图片

图:服务详情页

  • 服务的上下游调用关系;

  • 各类基础指标(可按实例维度下钻);

  • 服务告警与网络数据;

  • 与主机、进程、Pod 的关联信息。

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

3.3 服务监控指标

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

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

图:LightAPM的指标告警详情

图:LightAPM的根因分析详情

04 结尾

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

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

内容概要:本文详细分析了西门子S7-200 PLC使用的PPI(Point-to-Point)通信协议,通过串口监控软件捕获并解析PC与PLC之间的通信数据包,揭示了PPI协议的核心报文格式和通信机制。文章介绍了PPI协议的主从通信模式,阐述了读写操作的具体指令结构、功能码、地址编码规则、校验方式以及完整的通信流程,包括寻呼、确认、读写命令和响应等环节,并提供了多个实际应用示例,如读取密码、版本号、变量数据及控制PLC运行状态(RUN/STOP)等。此外,文档还深入解析了数据帧中各字段的含义,特别是存储器类型、偏移量计算(地址×8)、数据长度与校验码生成方法,帮助开发者掌握底层通信细节。; 适合人群:具备基本工控知识和串口通信基础,熟悉PLC原理及VB、VC等上位机开发语言的研发人员、自动化工程师和技术爱好者;尤其适用于希望绕过官方编程工具、自主实现与S7-200 PLC通信的开发人员。; 使用场景及目标:① 实现上位机(如PC)通过串口直接与西门子S7-200 PLC通信,读写I/Q/M/V/S等存储区数据;② 开发自定义HMI、监控系统或数据采集系统,无需依赖STEP7-Micro/WIN软件;③ 破解或绕过PLC密码保护机制,进行设备维护或逆向分析;④ 深入理解工业通信协议的设计逻辑,提升工控安全防护能力。; 阅读建议:建议结合串口调试工具(如串口助手)和实际PLC硬件进行实践验证,逐步测试文中提供的十六进制指令,观察返回数据以加深理解;注意通信参数设置(9600, E, 8, 1)和校验码计算准确性;对于关键操作(如写入、RUN/STOP控制),应在测试环境中先行验证,避免对生产系统造成影响。
内容概要:本文档聚焦于“复现-基于IEEE9节点低惯量电力系统混合拓扑的构网型变流器控制”,深入研究下垂控制、虚拟同步机控制(VSM)、匹配控制与可调度虚拟振荡器控制(dVOC)在电磁暂态过程中的建模与仿真。文档提供基于Simulink的仿真模型和MATLAB代码,涵盖构网型变流器多种先进控制策略的实现细节,重点分析其在低惯量电网环境下的动态响应特性、稳定性表现及不同控制方法之间的对比。作为电力系统自动化与新能源并网领域的高阶科研资料,该资源不仅服务于具体仿真任务,还配套多项相关课题(如微电网优化、储能调度、电动汽车V2G等)的技术支持,构建了完整的学术复现与工程验证体系。; 适合人群:面向具备电力系统、自动控制或新能源并网等相关背景的硕士、博士研究生及科研人员,特别适用于需开展高水平学术论文复现、SCI/EI期刊投稿或复杂电力系统仿真实验的工程技术人员;要求读者熟悉MATLAB/Simulink环境并具备一定的控制系统理论基础。; 使用场景及目标:① 实现IEEE9节点系统中构网型变流器多种前沿控制策略(如下垂、VSM、dVOC)的电磁暂态仿真与性能对比;② 掌握构网型控制在弱电网条件下的建模方法、参数整定技巧与稳定性分析手段;③ 支撑高水平科研项目中的仿真验证环节,助力完成学术论文中的图表复现与结果分析。; 阅读建议:建议结合MATLAB与Simulink仿真平台,严格按照文档提供的模型结构与代码流程进行操作,重点关注控制器的设计逻辑、系统初始化设置、扰动注入方式及仿真结果的时域与频域分析;推荐同步查阅配套网盘中的完整代码与模型文件,确保复现过程的准确性与完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值