美文网首页
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