一、springboot源码操作
1.Pom引入依赖
<dependency>
<groupId>com.cloud</groupId>
<artifactId>log-trace</artifactId>
<version>1.4</version>
</dependency>
2.MybatisPlusConfig文件
添加拦截器:
interceptor.addInnerInterceptor(new TraceIdInnerInterceptor(new MyTraceIdHandler()));
3.修改日志配置文件logback-spring.xml
<!-- skywalking采集日志 -->
<appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>- [%tid] -%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%level){blue} %clr(${PID}){magenta} %clr([%thread]){orange} %clr(%logger){cyan} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}</pattern>
</layout>
</encoder>
</appender>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [appCode=auth] [%thread] %-5level %logger{36} - %msg%n</pattern>
</layout>
</encoder>
</appender>
<!-- 配置异步记录 AsyncAppender -->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>1024</queueSize>
<neverBlock>true</neverBlock>
<appender-ref ref="stdout"/>
</appender>
<root level="INFO">
<appender-ref ref="grpc-log"/>
<appender-ref ref="ASYNC"/>
<appender-ref ref="stdout"/>
</root>
<root level="INFO">
<appender-ref ref="grpc-log"/>
<appender-ref ref="ASYNC"/>
<appender-ref ref="stdout"/>
</root>
二、数据库结构更改
所有表结构添加字段trace_id
三、日志中心创建应用和服务
1.新建应用
应用编码唯一
2.新增服务
ServiceId从skywalking中获取,一个应用可以绑定多个服务
4、运行命令
nohup java -Duser.language=zh -Dfile.encoding=UTF-8
-javaagent:/home/application/skywalking-agent/skywalking-agent.jar
-Dskywalking_config=/home/application/skywalking-agent/config/agent.config
-Dskywalking.agent.service_name=mp-user
-Dskywalking.collector.backend_service=10.9.70.89:11800
-jar mp-user.jar --spring.config.location=bootstrap.yml 2>&1 &
四、同步数据模型、枚举、logbin数据
1.同步数据模型
set'execution.checkpointing.interval'='10s';
CREATE TABLE sys_data_model_source (
`id` BIGINT NOT NULL,
`model_name` VARCHAR,
`table_name` VARCHAR,
`vo_name` VARCHAR,
`sort` INT,
`type` INT,
`state` INT,
`version` INT,
`is_deleted` TINYINT,
`create_time` TIMESTAMP,
`create_user` BIGINT,
`update_time` TIMESTAMP,
`update_user` BIGINT,
`remark` VARCHAR,
`description` VARCHAR,
`module_name` VARCHAR,
`tenant_id` BIGINT,
`trace_id` VARCHAR, PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'mysql-cdc',
'hostname' = '10.9.70.149',
'port' = '3306',
'username' = 'root',
'password' = '111111111',
'database-name' = 'authentication_engine2',
'scan.incremental.snapshot.enabled' = 'true',
'scan.incremental.snapshot.chunk.size' = '5000',
'table-name' = 'sys_data_model'
);
CREATE TABLE sys_data_model_sink (
`id` BIGINT
, `app_id` BIGINT
, `app_code` VARCHAR
, `model_name` VARCHAR
, `table_name` VARCHAR
, `vo_name` VARCHAR
, `sort` INT
, `type` INT
, `state` INT
, `version` INT
, `is_deleted` TINYINT
, `create_time` TIMESTAMP
, `create_user` BIGINT
, `update_time` TIMESTAMP
, `update_user` BIGINT
, `remark` VARCHAR
, `description` VARCHAR
, `module_name` VARCHAR
, `tenant_id` BIGINT
, `trace_id` VARCHAR
)
WITH (
'connector' = 'doris',
'fenodes' = '10.9.70.87:8030',
'table.identifier' = 'log_info.sys_data_model',
'username' = 'root',
'password' = '111111111',
'doris.batch.size' = '5000',
'sink.properties.two_phase_commit'='true',
'sink.enable-delete' = 'true',
'sink.properties.format' = 'json',
'sink.properties.read_json_by_line' = 'true',
'sink.label-prefix'='sys_data_model_1688375124'
);
insert into sys_data_model_sink (
`id`
, `app_id`, `app_code`, `model_name`
,
`table_name`
,
`vo_name`
,
`sort`
,
`type`
,
`state`
,
`version`
,
`is_deleted`
,
`create_time`
,
`create_user`
,
`update_time`
,
`update_user`
,
`remark`
,
`description`
,
`module_name`
,
`tenant_id`
,
`trace_id`
)
select
`id`
, 1674614691058511873 `app_id`
, 'auth' `app_code`
, `model_name`
,
`table_name`
,
`vo_name`
,
`sort`
,
`type`
,
`state`
,
`version`
,
`is_deleted`
,
`create_time`
,
`create_user`
,
`update_time`
,
`update_user`
,
`remark`
,
`description`
,
`module_name`
,
`tenant_id`
,
`trace_id`
from sys_data_model_source;
修改source、sink数据源修改
2.同步枚举数据
同上
3.同步菜单数据
同上