SkyWalking入门搭建【apache-skywalking-apm-10.0.0】

Java学习文档

视频讲解

文章目录

SkyWalking 全链路跟踪入门,本篇文章只是简单的对SkyWalking的基础功能进行一个演示,并搭建它

一、准备

相关软件版本如下

  1. apache-skywalking-apm-10.0.0
  2. apache-skywalking-java-agent-9.2.0
  3. nacos-2.3.0
  4. MySQL-5.8
  5. SpringBoot 2.7.17
  6. JDK 11


二、服务启动

2-1、Nacos启动

2-2、SkyWalking服务端启动

配置文件修改

服务启动

如果服务启动没反应或报错,可以去看日志 /apache-skywalking-apm-bin/logs/oap.log

2-3、SkyWalking控制台启动

控制台端口号修改,默认是 8080,可能会冲突

启动

![

控制台

如果服务启动没反应或报错,可以去看日志 /apache-skywalking-apm-bin/logs/skywalking-webapp.log

2-4、自定义服务接入 SkyWalking

SkyWalking在Java中使用的是字节方式植入,是完全无代码侵入的

VM options 添加 ,就是刚刚上面下的 java-agent

java 复制代码
-javaagent:/Users/xdx/Desktop/MyTestCode/service/skywalking/skywalking-agent/skywalking-agent.jar

Environment variables 添加,指定 SkyWalking的地址

java 复制代码
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800;-DSW_AGENT_NAME=xdx-skywalking

效果图

操作步骤(idea 2023,其它版本百度操作)


配置好后,启动服务会看到下面的日志,就说明 java-agent.jar 读取到了

随机访问几下服务的接口,再去刷新SkyWalking 控制台,就可以看到了

三、常用监控

3-1、服务请求通过率

3-2、服务请求拓扑图

3-3、链路

四、日志配置

如果想要在SkyWalking中看到链路的日志,需要做一些配置

pom 引入

xml 复制代码
<!-- 如果想在项目代码中获取链路TraceId,则需要引入此依赖 -->
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-trace</artifactId>
    <version>9.2.0</version>
</dependency>
<!-- 自定义功能相关, 比如自定义tag -->
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-opentracing</artifactId>
    <version>9.2.0</version>
</dependency>
<!-- skywalking 日志记录 logback插件 -->
<dependency>
    <groupId>org.apache.skywalking</groupId>
    <artifactId>apm-toolkit-logback-1.x</artifactId>
    <version>8.8.0</version>
</dependency>

logback.xml

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true" scanPeriod=" 5 seconds">
    <!--控制台日志打印-->
    <!-- with the MDC, set %X{tid} in Pattern -->
    <!-- MDC是什么:MDC采用Map的方式存储上下文,线程独立的,子线程会从父线程拷贝上下文 -->
    <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.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>


    <!--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.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>
    <!--日志文件-->
    <appender name="fileAppender" class="ch.qos.logback.core.FileAppender">
        <file>./logs/gateway-all.log</file>
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <Pattern>[%sw_ctx] [%level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger:%line - %msg%n</Pattern>
            </layout>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="stdout"/>
        <appender-ref ref="grpc-log"/>
    </root>

    <logger name="fileLogger" level="INFO">
        <appender-ref ref="fileAppender"/>
    </logger>

</configuration>

再次请求几次就可以看到请求的日志了,会有一个全局的 traceId

五、性能剖析

通过耗时分析来找到服务慢的问题,这个功能不是一直开启的,用的时候需要先创建任务,再请求

入口



任务配置

分析结果

配置好任务后,再去请求几次接口

六、数据持久化

6-1、MySQL持久化

  1. 在MySQL中创建一个数据库如: sky_walking
  2. 把 MySQL驱动包,放在 oap-lib 目录下(去自己的maven仓库拿)
  3. 修改 application.yaml 配置文件


6-2、ES持久化

ES 8.x开始(docker-compose安装、kibana使用、java操作)

只需要把存储选为 ES 就可以了

相关推荐
闯闯桑2 小时前
toDF(columns: _*) 语法
开发语言·前端·spark·scala·apache
A-刘晨阳5 小时前
从全球视角到K8s落地的Apache IoTDB实战
kubernetes·apache·iotdb
管家婆客服中心9 小时前
管家婆分销ERP A/V系列导出提示加载数据过大的处理方式
linux·服务器·apache
HashData酷克数据18 小时前
官宣:Apache Cloudberry (Incubating) 2.0.0 发布!
数据库·开源·apache·cloudberry
XMYX-01 天前
解决 Apache/WAF SSL 证书链不完整导致的 PKIX path building failed 问题
网络协议·apache·ssl
IT·陈寒1 天前
怎么这么多 StringUtils —— Apache、Spring、Hutool 全面对比
java·spring·apache
喂完待续2 天前
【Big Data】云原生与AI时代的存储基石 Apache Ozone 的技术演进路径
云原生·架构·apache·big data·序列晋升
todoitbo3 天前
时序数据库选型指南:Apache IoTDB快速部署与实战应用
apache·时序数据库·iotdb
IDOlaoluo3 天前
apache-jmeter-5.1.1安装部署与使用教程(小白一看就会)
jmeter·apache
XT46253 天前
SkyWalking 支持的告警通知方式(Alarm Hooks)类型
skywalking