
skywalking6.x源码分析
文章平均质量分 80
skywalking源码分析
skywalking改造一全链路压测支撑
岁月人
极客精神,热衷源码探索,持续学习
跟随云原生脚步,探索深度学习方向
展开
-
skywalking源码分析第二十四篇一扩展篇:日志打印
文章目录日志配置与效果源码分析一工具类源码分析一工具类增强插件定义拦截器一traceId处理总结日志配置与效果通过配置实现日志输出traceid这是个非常实用的功能,根据traceid可以从海量日志中快速查询指定请求日志- log4j2.xml <properties> <property name="logHome">${loggingRoot}</property> <property name="logLe原创 2022-03-10 23:41:13 · 1184 阅读 · 0 评论 -
skywalking源码分析第二十三篇一扩展篇:全链路压测
文章目录前言原理前言全链路压测时一项系统性工程,包含数据工厂,影子环境,压测脚本,数据偏移,压测平台,链路路由等等原理原创 2022-03-10 22:12:35 · 1151 阅读 · 0 评论 -
skywalking源码分析第二十二篇一agent端实战之JDBC插件
文章目录源码分析一插件定义源码分析一方法拦截器定义总结源码分析一插件定义StatementInstrumentation插件拦截StatementImpl相关方法进行增强jdbc含包含其他众多插件其中CONSTRUCTOR_INTERCEPTOR并非skywalking源码,其为笔者私有定制,用于全链路压测场景public class StatementInstrumentation extends AbstractMysqlInstrumentation { private sta原创 2022-03-10 22:00:00 · 1252 阅读 · 0 评论 -
skywalking源码分析第二十一篇一agent端实战之dubbo插件
源码分析一插件定义拦截MonitorFilter.invoke消费端执行MonitorFilter前已经完成mock,cluster,loadbalance等功能提供者端执行MonitorFilter万后执行dubboInvoker内部的相关业务接口逻辑public class DubboInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { private static final String ENHANC原创 2022-03-10 18:07:10 · 840 阅读 · 0 评论 -
skywalking源码分析第二十篇一agent端实战之tomcat插件
定义插件拦截StandardHost的的请求处理valve: StandardHostValve,invoke方法此外还拦截异常处理方法[本文不做介绍]public class TomcatInstrumentation extends ClassInstanceMethodsEnhancePluginDefine { private static final String ENHANCE_CLASS = "org.apache.catalina.core.StandardHostValv原创 2022-03-10 18:07:32 · 886 阅读 · 0 评论 -
原创 skywalking源码分析第十九篇一agent端Trace三部曲一Trace上报
源码分析一采样入口当前Segmentspan处理完毕根据采样机制判断是否进行上报上报则设置Ignore为false,不上报则设置ignore为trueprivate void finish() { ...... 删除其他代码 try { 当前Segmentspan处理完毕 if (activeSpanStack.isEmpty() && running && (!isRunningInAsyncMode || asyn原创 2022-03-10 18:07:45 · 1296 阅读 · 0 评论 -
skywalking源码分析第十八篇一agent端Trace三部曲一Span栈桢机制
文章目录原理图栈机制解说总结原理图栈机制解说总结原创 2022-03-10 02:31:48 · 766 阅读 · 0 评论 -
skywalking源码分析第十七篇一agent端Trace三部曲一ContextManager追踪链路上下文管理
这里写目录标题原理图一ContextManager源码分析一ContextManager上下文属性源码分析一ContextManager跨进行跨线程传输跨线程跨进程源码分析一ContextManager上下文创建源码分析一ContextManager创建spancreateEntrySpancreateExitSpancreateLocalSpanspan关系图源码分析一ContextManager.stopSpan采样总结原理图一ContextManagerContextManager维护整个调用链原创 2022-03-10 02:26:07 · 1723 阅读 · 0 评论 -
skywalking源码分析第十六篇一agent端JVMService之度量上报
文章目录原理图原理图一基于MXBean进行Metrics数据收集源码分析一JVMService总结原理图通过prepare构建Metrics存储缓冲队列 初始化grpc客户端通过boot启动两个定时任务进行数据收集和发送原理图一基于MXBean进行Metrics数据收集源码分析一JVMServiceprepare 初始化队列和senderboot启动定时任务run方法通过MxBean获取指标信息Sender.run发送队列中的指标到服务端public class JVMSe原创 2022-03-09 14:17:37 · 628 阅读 · 0 评论 -
skywalking源码分析第十五篇一agent端服务注册与DictionaryManager字典管理
文章目录前言原理图源码分析一ServiceManager服务注册发现源码分析一ServiceAndEndpointRegisterClient生命周期总结前言原理图通过ServiceManager.boot[加载,准备,启动,完成]实现所有BootService的初始化和运行前准备工作字典相关bootService如下:类名作用ServiceAndEndpointRegisterClient与服务端进行定时注册,基于服务端响应更新本地字典信息源码分析一Servic原创 2022-03-09 02:48:09 · 593 阅读 · 0 评论 -
skywalking源码分析第十四篇一agent插件增强实现
文章目录原理图源码分析一AbstractClassEnhancePluginDefine.define源码分析一ClassEnhancePluginDefine.enhance源码分析一enhanceClass源码分析一enhanceInstance总结原理图采用模板方法设计模式定义插件增强逻辑处理见证者机制完成静态方法增强逻辑[允许修改参数]完成构造方法增强逻辑[构造方法调用后增强,不可修改参数]完成实例方法增强逻辑[允许修改参数]类层次结构:AbstractClassEnhanc原创 2022-03-06 23:24:51 · 1126 阅读 · 0 评论 -
skywalking源码分析第十三篇一agent端微内核架构
文章目录原理图二级目录三级目录原理图二级目录三级目录原创 2022-03-06 13:20:09 · 733 阅读 · 0 评论 -
skywalking源码分析第十二篇一server-receiver-plugin之Register服务注册发现模块启动
文章目录原理图二级目录三级目录原理图二级目录三级目录原创 2022-03-05 01:55:47 · 1111 阅读 · 0 评论 -
skywalking源码分析第十一篇一server-receiver-plugin之trace链路追踪插件模块启动
文章目录Trace模块原理图二级目录三级目录Trace模块原理图二级目录三级目录原创 2022-03-04 23:42:34 · 1101 阅读 · 0 评论 -
skywalking源码分析第十篇一server-receiver-plugin之jvm插件模块启动
文章目录receiver一子模块流式处理简介JVM一Metrics模块工作原理图源码分析一JVMModule源码分析一JVMMetricReportServiceHandler源码分析一JVMSourceDispatcher源码分析一DispatcherManager执行颁发源码分析一Dispatcher.dispatch总结Metircs: 指标|度量,表示一段时间某一维度的衡量尺度Trace: 追踪链路,表示请求链路信息receiver一子模块receiver负责接收外部请求,并由集群进行原创 2022-03-03 20:31:06 · 705 阅读 · 0 评论 -
skywalking源码分析第九篇一Alarm告警模块启动
文章目录原理图源码分析一AlarmModuleProvider源码分析一NotifyHandler源码分析一AlarmCore.startRunningRule.in数据写入RunningRule.check告警检查源码分析一Window[核心]moveTo原理图源码checkAlarm原理图AlarmModuleProvider负责初始化alarmRulesWatcher和notifyHandleralarmRulesWatcher包含告警规则配置和上报的数据[滑动窗口存储]notifyHand原创 2022-03-03 01:31:10 · 1271 阅读 · 0 评论 -
skywalking源码分析第八篇一ClusterModule集群模块启动
文章目录ClusterModule能力集群注册发现实现单机模式集群模式一zookeeper原理图源码分析一ClusterModuleZookeeperProvider.prepare源码分析一ZookeeperCoordinator总结ClusterModule能力coreModule主要定义了服务注册与服务发现能力public class ClusterModule extends ModuleDefine { public static final String NAME = "cl原创 2022-03-02 22:45:44 · 2180 阅读 · 0 评论 -
skywalking源码分析第七篇一StorageModule存储模块启动
文章目录数据模型存储层架构设计注册数据锁原理图源码分析一StorageModuleElasticsearchProvider索引创建@stream注解处理源码分析存储实现本文默认elasticsearch数据模型StorageData代表一条数据每一条数据都会被存储到elasticsearch数据类上如果标注@Stream注解,则会被构建成Model对象[第五篇annotationScan已经介绍]StorageModuleProvider启动时会基于Model向es创建索引存储层架原创 2022-03-02 00:47:36 · 2295 阅读 · 0 评论 -
skywalking源码分析第六篇一CoreModule核心模块启动
文章目录CoreModule能力一览CoreModuleProvider启动原理图总结CoreModule能力一览core模块提供以下Service功能集合,并由CoreModuleProvider提供实现结合CoreModuleProvider的生命周期方法[prepare start notifyAfterCompleted]完成组件关系处理对外提供服务Service能力核心关注整体功能,包括GRPC和Jetty,集群节点通信,存储模型服务,注册服务等等负原创 2022-03-01 18:58:16 · 1690 阅读 · 0 评论 -
skywalking源码分析第五篇一server-configuration配置模块启动
文章目录配置模块架构图源码分析一ConfigurationProvider.prepare源码分析一 configWatcherRegister.start总结Configuration模块主要用于提供oapServer配置参数支持基于外部中间件的动态配置[可动态修改刷新配置]默认的非动态配置application.ymlserver-configuration配置模块架构图外部模块创建配置类[继承ConfigChangeWatcher],并通过配置模块reg原创 2022-03-01 10:05:21 · 603 阅读 · 0 评论 -
skywalking源码分析第四篇一oapserver启动总结
文章目录一级目录二级目录三级目录通过第二篇微内核架构,讲解了oapserver进程的启动,本文将分析启动的组件如何串联工作一级目录二级目录三级目录原创 2022-02-25 01:20:01 · 539 阅读 · 0 评论 -
skywalking源码分析第三篇一oapserver启动源码分析
文章目录源码分析一OAPServerBootstrap源码分析一配置加载configLoader.load源码分析一模块加载及启动manager.init源码分析一ModuleDefine.prepare源码分析一 bootstrapFlow.start总结扩展点一存储StorageModuleElasticsearch7Provider上文主要介绍了oapserver的微内核架构,本文详解其源码实现源码分析一OAPServerBootstrapstep-1: 初始化mode为init或者no-原创 2022-02-25 01:07:56 · 1046 阅读 · 0 评论 -
skywalking源码分析第二篇一oapserver启动
文章目录源码模块源码模块由server-starter和server-starter-es7调用server-bootstrapserver-starter和server-starter-es7的区别在于maven中引入的es模块Module不同原创 2022-02-24 01:50:23 · 2415 阅读 · 0 评论 -
skywalking源码分析一第一篇总体设计
总体设计agent端oapserver端storage端ui端agent端负责trace链路的构建,metrics度量采集,数据采样上报oapserver,服务注册oapserver等oapserver 负责数据的流式处理,存储,查询,集群构建等storage负责存储适配,如es,DB等UI负责查询oapserver数据架构设计Agent端模块结构OapServer端模块结构总结skywalking在agent和oapserver端均采用微内核架构设计原创 2022-02-22 20:51:26 · 1327 阅读 · 0 评论