全链路追踪 OpenTelemetry 零侵扰可观测性 eBPF Prometheus 全链路监控

当前位置:首页> 云原生NPM>skywalking原理 skywalking原理,为什么侵入性

skywalking原理 skywalking原理,为什么侵入性

时间:2024-10-04 04:17:36

一、原理原理2018-05-27 Spring拦截器和Skywalking冲突

skywalking-5.0.0-alpha

已经修复的侵入版本

skywalking-5.0.0-beta

在观察项目中的日志时,发现

有一个拦截全部Controller方法的原理原理日志切面WebRequestInterceptor类

该方法会拦截skywalking的某个方法。

导致每次Web请求,侵入Controller虽然被执行一次,原理原理但是侵入doAround会被执行两次。

如果在doAround中做了某些身份认证,原理原理Token校验之类的侵入,则产生了不必要的原理原理重复请求。

在doAround中打印:

会发现调用了getSkyWalkingDynamicField。侵入

这个方法由skywalking-agent的原理原理InstMethodsInter生成的:

SkyWalkingAgent通过

找到一个具体实现类

然后调用define

然后生成了InstMethodsInter

这个类intercept的方法中:

interceptor.afterMethod对应

GetBeanInterceptor的 afterMethod,这里会调用getSkyWalkingDynamicField,侵入但是原理原理这里会被WebRequestInterceptor拦截!!侵入!原理原理。

getSkyWalkingDynamicField出自EnhancedInstance

在InstMethodsInter.afterMethod调用getSkyWalkingDynamicField的时候,不小心会被Spring的Aspect拦截。

导致重复调用了一次WebRequestInterceptor的doAround。

改写JoinPoint,并排除getSkyWalkingDynamicField方法:

果然一个月之前官方已经修复了这个BUG

修复的原理就是把Spring的org.springframework.aop.support.MethodMatchers的matches静态方法给增强了,那就是让Spring忽略EnhancedInstance接口的所有方法!

这方法既粗暴,又优雅,非常值得学习。

相关链接

issue#1114

pull#1118

二、skywalking在生产环境可以使用吗

可以。SkyWalking是一个开源的应用性能监控(APM)系统,提供了丰富的功能,包括跟踪、监控、诊断和分析应用程序的性能。可以帮助监控应用程序的性能指标、发现性能问题、定位故障和优化性能。

在生产环境中使用SkyWalking之前,需要确保已经理解了其工作原理、配置和使用方法,并进行了充分的测试和调试。还需要确保生产环境具备足够的资源和性能来支持SkyWalking的运行。

参考资料:零侵扰可观测性

云网分析
prometheus 软件开发需求期根因分 根因分析RCA的步骤 全链路监控模块 全链 监控网络性能实现 监 全链路协议监控 全链 护理液体过期根因分析 社交网络可视化gep 中科云网股票分析pp 护理安全的根因分析
网络性能监控
可视化网络交谈程序 网络可视化空间 可视 prometheus Gephi可视化网络 服务调用链错误怎么办 分布式追踪系统实例 听云 应用性能管理 微服务怎样实现监控 基于可视化的网络流量 华为网络可视化管理怎
应用性能管理
神经网络各层结果可视 网络安全可视化监控系 prometheus 网络可视化监测软件下 微服务调用链软件包 分析阿里云官网设计 微服务监控与报警方案 大家称赞的网络性能监 租房根因分析论文范文 什么是不良事件根因分
全栈链路追踪/dt>
根因分析的原则 根因 患者多服药物的根因分 结构可视化神经网络设 ai网络可视化 ai prometheus skywalking 不良事件根因分析模板 prometheus 个案死亡病例根因分析 云网投资分析报告 投
网络流量分发
prometheus 小区可视化网络建设 开源跨平台分布式追踪 可视化网络协议是什么 prometheus 云统计分析工具官网 RCA根因分析概念 云网运营改革问题分析 煤矿监控云平台官网登 信息可视化网络购物方
关注我们