![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
skywalking
文章平均质量分 78
vinylon1022
这个作者很懒,什么都没留下…
展开
-
Skywalking的DataCarrier
之前分析源码时经常会看到DataCarrier这个类,现在详细分析一下这个。简单来说就是维护了一个本地的轻量级消息队列模型,主要目的为了防止收集方生成数据速度大于往后端发送数据速度造成的数据积压和生成方阻塞。这里有几个关键类:DataCarrier 主要类型,针对内存消息队列的操作都是以这个类为入口的。 该类持有了Channels和IDriverChannels 数据通道集合,用于针对数据的存取操作。主要有以下属性:bufferChannels 数据的存取操作dataPartitioner原创 2021-10-18 16:37:14 · 860 阅读 · 0 评论 -
OAP处理GRPC消息
OAP处理GRPC消息启动时SPI注入的模块TraceModuleProvider,start方法中注入了两种协议的处理器(grpc和rest):@Overridepublic void start() { GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME) .原创 2021-10-15 16:19:40 · 583 阅读 · 0 评论 -
Skywalking的OAL分析(二)
前文提到Skywalking oal运行时解析core.oal语法生成AnalysisResult对象集合。Antlr4的解析过程做了些什么呢?从oal-rt工程中很容易找到OALListener,可以明确使用的是Antlr4的监听模式。里面的代码不是很复杂,就是在Antlr4遍历语法树的时候,将语法中每个词加入到当前AnalysisResult对象中。但是,光有这些词有什么用呢? 我们看一下AnalysisResult类,里面有很多属性,有些是对象类型,这些属性的赋值不是只是解析语法树就能填充的。原创 2021-10-14 11:33:59 · 656 阅读 · 0 评论 -
Skywalking的OAL分析(一)
oal-观测分析语言(Observability Analysis Language),Skywalking定义的一套高级语法,用于聚焦服务, 服务实例以及端点的度量指标。 语法分析使用的Antlr4框架,主要是要定义.g4文件用于描述词法分析和语法解析。Skywalking的oal,对应的.g4文件在oal-grammar工程中,主要是两个文件: OALLexer.g4 OALParser.g4 这里先不详细展开了。 可以理解成oal定义了一套高级查询语法,主要目的是对于a.原创 2021-10-14 10:42:25 · 1409 阅读 · 0 评论