zoukankan      html  css  js  c++  java
  • SkyWalking 源码的整体结构

    SkyWalking 源码的整体结构如下图所示:

    1、apm-application-toolkit 模块:SkyWalking 提供给用户调用的工具箱。

    该模块提供了对 log4j、log4j2、logback 等常见日志框架的接入接口,提供了 @Trace 注解等。
    apm-application-toolkit 模块类似于暴露 API 定义,对应的处理逻辑在 apm-sniffer/apm-toolkit-activation 模块中实现。

    2、apm-commons 模块:SkyWalking 的公共组件和工具类。

    其中包含两个子模块,apm-datacarrier 模块提供了一个生产者-消费者模式的缓存组件(DataCarrier),无论是在 Agent 端还是 OAP 端都依赖该组件。
    apm-util 模块则提供了一些常用的工具类,例如,字符串处理工具类(StringUtil)、占位符处理的工具类(PropertyPlaceholderHelper、PlaceholderConfigurerSupport)等等。


    3、apm-protocol 模块:该模块中只有一个 apm-network 模块,我们需要关注的是其中定义的 .proto 文件,定义 Agent 与后端 OAP 使用 gRPC 交互时的协议。

    4、apm-sniffer 模块:apm-sniffer 模块中有 4 个子模块:

    apm-agent 模块:其中包含了刚才使用的 SkyWalkingAgent 这个类,是整个 Agent 的入口。

    apm-agent-core 模块:SkyWalking Agent 的核心实现都在该模块中。

    apm-sdk-plugin 模块:SkyWalking Agent 使用了微内核+插件的架构,该模块下包含了 SkyWalking Agent 的全部插件,

    apm-toolkit-activation 模块:apm-application-toolkit 模块的具体实现。

    5、apm-webapp 模块:SkyWalking Rocketbot 对应的后端。

    6、oap-server 模块:SkyWalking OAP 的全部实现都在 oap-server 模块,其中包含了多个子模块,
    exporter 模块:负责导出数据。

    server-alarm-plugin 模块:负责实现 SkyWalking 的告警功能。

    server-cluster-pulgin 模块:负责 OAP 的集群信息管理,其中提供了接入多种第三方组件的相关插件,

    server-configuration 模块:负责管理 OAP 的配置信息,也提供了接入多种配置管理组件的相关插件,

    server-core模块:SkyWalking OAP 的核心实现都在该模块中。

    server-library 模块:OAP 以及 OAP 各个插件依赖的公共模块,其中提供了双队列 Buffer、请求远端的 Client 等工具类,这些模块都是对立于 SkyWalking OAP 体系之外的类库,我们可以直接拿走使用。

    server-query-plugin 模块:SkyWalking Rocketbot 发送的请求首先由该模块接收处理,目前该模块只支持 GraphQL 查询。

    server-receiver-plugin 模块:SkyWalking Agent 发送来的 Metrics、Trace 以及 Register 等写入请求都是首先由该模块接收处理的,不仅如此,该模块还提供了多种接收其他格式写入请求的插件,

    server-starter 模块:OAP 服务启动的入口。

    server-storage-plugin 模块:OAP 服务底层可以使用多种存储来保存 Metrics 数据以及Trace 数据,该模块中包含了接入相关存储的插件,

    7、skywalking-ui 目录:SkyWalking Rocketbot 的前端。

  • 相关阅读:
    stringstream用法
    C# WinForm设置窗口无边框、窗口可移动、窗口显示在屏幕中央、控件去边框
    C# WinForm设置窗口大小不可调,取消最大、最小化按键
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal 由前序和中序遍历建立二叉树 C++
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal 由中序和后序遍历建立二叉树 C++
    LeetCode 112. Path Sum 二叉树的路径和 C++
    LeetCode 101. Symmetric Tree 判断对称树 C++
    LeetCode 100. Same Tree 判断两棵二叉树是否相等 C++
    C# winform三种方法判断文本框textBox内容是否为空
    LeetCode 145. Binary Tree Postorder Traversal 二叉树的后序遍历 C++
  • 原文地址:https://www.cnblogs.com/wueryuan/p/14919042.html
Copyright © 2011-2022 走看看