当前位置: 首页 > news >正文

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

Java学习文档

视频讲解


文章目录

  • 一、准备
  • 二、服务启动
    • 2-1、Nacos启动
    • 2-2、SkyWalking服务端启动
    • 2-3、SkyWalking控制台启动
    • 2-4、自定义服务接入 SkyWalking
  • 三、常用监控
    • 3-1、服务请求通过率
    • 3-2、服务请求拓扑图
    • 3-3、链路
  • 四、日志配置
  • 五、性能剖析
  • 六、数据持久化
    • 6-1、MySQL持久化
    • 6-2、ES持久化


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

-javaagent:/Users/xdx/Desktop/MyTestCode/service/skywalking/skywalking-agent/skywalking-agent.jar

Environment variables 添加,指定 SkyWalking的地址

-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 引入

<!-- 如果想在项目代码中获取链路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 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 就可以了

http://www.lryc.cn/news/406299.html

相关文章:

  • exo项目目录架构
  • mysql中where与on区别
  • filebeat把日志文件上传到Es中配置(ES7版本)
  • Vue Router基础
  • Apache压测工具ab(Apache Bench)工具的下载安装和使用示例
  • IPIDEA与Python爬虫:联手解锁全球电商数据宝库
  • Fine-BI学习笔记
  • AI 辅助编程 Coding AI 辅助研发组织的技术蓝图
  • VScode 批量操作
  • 【Linux】管道通信和 system V 通信
  • Python | Leetcode Python题解之第279题完全平方数
  • mysql定时备份
  • 数据结构:逻辑结构与物理结构
  • pycharm报错:No module named pip/No module named pytest
  • Linux:Linux权限
  • 新版Glide检测生命周期原理
  • Ansible的脚本-----playbook剧本【上】
  • sql注入学习与防护
  • 饥荒dst联机服务器搭建基于Ubuntu
  • AtCoder Beginner Contest 363
  • Protel DXP 面试题详解及参考答案(4万字长文)
  • 雪花算法 集群uid重复问题 uid-generator-spring-boot-starter
  • 【AutoDL】AutoDL+Xftp+Xshell+VSCode配合使用教程
  • 使用minio cllient(mc)完成不同服务器的minio的数据迁移和mc基本操作
  • Vue3分段控制器(Segmented)
  • SpringSecurity如何正确的设置白名单
  • 【Langchain大语言模型开发教程】评估
  • Python爬虫小项目实战
  • PHP Filesystem 简介
  • 源代码加密软件哪家好?五款企业级加密软件推荐