美文网首页
Skywalking之五整合

Skywalking之五整合

作者: Java及SpringBoot | 来源:发表于2020-03-12 15:32 被阅读0次

    个人专题目录


    Skywalking项目集成

    相关Maven依赖引入

    <skywalking.version>6.6.0</skywalking.version>
    <dependency>
       <groupId>org.apache.skywalking</groupId>
       <artifactId>apm-toolkit-trace</artifactId>
       <version>${skywalking.version}</version>
    </dependency>
    <dependency>
       <groupId>org.apache.skywalking</groupId>
       <artifactId>apm-toolkit-log4j-2.x</artifactId>
       <version>${skywalking.version}</version>
    </dependency>
    

    traceId 集成到日志组件Log4j2,traceId 打印到每条日志里

    • 当你使用-javaagent激活skywalking tracer后,log4j2将会输出traceId(如果存在的话)。如果tracer未激活,输出将是TID: N/A

    核心配置:

    <Property name="CONSOLE_LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{[%traceId]} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%t]}{faint} %clr{%-40.40c{1.}:%L}{cyan} %clr{:}{faint} %X %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
    
    <Property name="FILE_LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} [%traceId] ${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.}:%L : %X %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
    

    @Trace 注解想要追踪的任何方法

    • @Trace 注解的方法,会创建一个 LocalSpan 。

    • ActiveSpan#tag(key, value) 方法,在 LocalSpan 上添加标签键值对。

    • TraceContext.traceId#traceId 方法,获得全局链路追踪编号。

    • 在你想追踪的方法上添加@Trace注解。添加后,你就可以在方法调用栈中查看到span的信息。

    • 在被追踪的方法的上下文周期内添加自定义tag。

    • ActiveSpan.error() 将当前 Span 标记为出错状态.

    • ActiveSpan.error(String errorMsg) 将当前 Span 标记为出错状态, 并带上错误信息.

    • ActiveSpan.error(Throwable throwable) 将当前 Span 标记为出错状态, 并带上 Throwable.

    • ActiveSpan.debug(String debugMsg) 在当前 Span 添加一个 debug 级别的日志信息.

    • ActiveSpan.info(String infoMsg) 在当前 Span 添加一个 info 级别的日志信息

    跨线程追踪

    • 用法1
    @TraceCrossThread
        public static class MyCallable<String> implements Callable<String> {
            @Override
            public String call() throws Exception {
                return null;
            }
        }
    ...
        ExecutorService executorService = Executors.newFixedThreadPool(1);
        executorService.submit(new MyCallable());
    
    • 用法2
    ExecutorService executorService = Executors.newFixedThreadPool(1);
        executorService.submit(CallableWrapper.of(new Callable<String>() {
            @Override public String call() throws Exception {
                return null;
            }
        }));
    ExecutorService executorService = Executors.newFixedThreadPool(1);
        executorService.execute(RunnableWrapper.of(new Runnable() {
            @Override public void run() {
                //your code
            }
        }));
    

    部署脚本(部分核心内容)

    SW_AGENT_NAME=test-xxx
    SW_AGENT_COLLECTOR_BACKEND_SERVICES=xx.xxx.xxx.xxx:11800
    SW_LOGGING_LEVEL=debug
    SW_LOGGING_DIR=${APP_LOG_PATH}
    SW_LOGGING_MAX_FILE_SIZE=`expr 1024 \* 1024 \* 1024`
    echo "SW_LOGGING_MAX_FILE_SIZE : ${SW_LOGGING_MAX_FILE_SIZE}"
    SW_LOGGING_MAX_HISTORY_FILES=180
    SW_MYSQL_TRACE_SQL_PARAMETERS=true
    SW_SPRING_MVC_USE_QUALIFIED_NAME_AS_ENDPOINT_NAME=true
    nohup java -javaagent:/data/apps/java/agent/skywalking-agent.jar=agent.service_name=${SW_AGENT_NAME},logging.level=${SW_LOGGING_LEVEL},logging.dir=${SW_LOGGING_DIR},logging.max_history_files=${SW_LOGGING_MAX_HISTORY_FILES},collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES},plugin.mysql.trace_sql_parameters=${SW_MYSQL_TRACE_SQL_PARAMETERS},plugin.springmvc.use_qualified_name_as_endpoint_name=${SW_SPRING_MVC_USE_QUALIFIED_NAME_AS_ENDPOINT_NAME} -jar -Denv=DEV ${APP_PATH}/${APP_NAME} --spring.profiles.active=test --server.port=${APP_PORT} --logging.path=${APP_LOG_PATH} > /dev/null 2>&1 &
    

    相关文章

      网友评论

          本文标题:Skywalking之五整合

          本文链接:https://www.haomeiwen.com/subject/jooyjhtx.html