skyWalking自动建表-逻辑梳理

skyWalking自动建表-逻辑梳理

使用skyWalking后,发现我们不需要创建表,启动skywalking会自动创建表,遂研究官方源码,感觉oap-server设计的自动建表功能很强大,并进行逻辑梳理,仅供参考。

源码地址:https://github.com/apache/skywalking.git

架构图

架构图

  • Agent(代理/探针) :负责从应用中,无侵入式的收集,并通过HTTP或者gRPC方式发送数据到SkyWalking OAP 服务器;
  • SkyWalking OAP :负责接收Agent发送的Tracing数据信息,然后进行分析(Analysis Core),存储到外部存储器(Storage),最终提供查询(Query)功能;
  • Storage:Tracing数据存储,目前支持ES、MySQL、Sharding Sphere、TiDB、H2等多种存储器,SkyWalking开发团队自己的生产环境采用ES为主;
  • SkyWalking UI:负责提供控制台,查看链路等等;

建表逻辑

1、启动时执行脚本
1.启动脚本

2、脚本内容指向:org.apache.skywalking.oap.server.starter.OAPServerStartUp
2.脚本内容

3、进行初始化操作
3.初始化操作

4、moduleManager#init方法调用BootstrapFlow#start方法,BootstrapFlow#start调用ModuleProvider#start方法
4.bootstrapflow-start

5、抽象类ModuleProvider#start方法实现类JDBCStorageProvider#start方法,此方法开始调用 modelInstaller#start方法用于重写列,使语法兼容MySQL,然后调用StorageModels#addModelListener方法用于把创建或修改表的操作通知到ModelInstaller#whenCreating
5.listener-creating

6、收到通知后,ModelInstaller#whenCreating开始建表操作
6.when-creating

7、方法内部依次进行 1.创建/更新 表字段;2.添加/更新 字段索引;3.创建/更新 关联表的字段及索引
7.create-table

8、为表添加ID字段、普通字段;添加字段类型及长度;执行建表SQL
8.execute-sql

9、添加字段类型,进行字段长度转换
9.column-definition

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以通过以下步骤来使用 SkyWalking 客户端 JavaScript(skywalking-client-js): 1. 首先,确保你的项目中已经安装了 Node.js 环境。 2. 在你的项目目录中,使用以下命令安装 skywalking-client-js: ``` npm install skywalking-client-js ``` 3. 在你的 JavaScript 代码中,导入并初始化 SkyWalking 客户端: ```javascript const { Tracer, Segment, Span } = require('skywalking-client-js'); // 初始化 Tracer Tracer.initialize({ serviceName: 'your-service-name', // 设置你的服务名称 directServers: 'your-skywalking-collector-url:your-collector-port', // 设置 SkyWalking Collector 的地址和端口 }); // 创建 Segment,并开始记录 const segment = new Segment('your-segment-name'); segment.start(); // 创建 Span,并开始记录 const span = new Span('your-span-name'); span.start(); // 执行你的业务逻辑 // ... // 结束 Span 和 Segment 的记录 span.end(); segment.end(); // 发送数据到 SkyWalking Collector Tracer.stop(); ``` 在上述代码中,你需要替换以下内容: - `your-service-name`:你的服务名称,可以自定义。 - `your-skywalking-collector-url:your-collector-port`:SkyWalking Collector 的地址和端口,通常是 `localhost:11800`。 - `your-segment-name` 和 `your-span-name`:你的 Segment 和 Span 的名称,可以自定义。 4. 运行你的 JavaScript 代码,确保 SkyWalking Collector 能够接收到数据并进行监控。 这样,你就可以使用 SkyWalking 客户端 JavaScript 进行性能监控和分析了。更多详细的用法和配置可以参考 skywalking-client-js 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值