当前位置: 首页 > 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 就可以了

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 二、QGroundControl开发环境搭建
  • Linux下如何安装配置Zsh Shell
  • 鸿蒙之Grid实现拖动自定义排序特效
  • 决策树(Decision Tree)
  • 培训第十三天(DNS逆向解析与主从服务、ntp时间服务器)
  • 【接口自动化_08课_Pytest+Yaml+Allure框架】
  • 从统计学、到机器学习和ChatGPT
  • 数据结构第三讲:单链表的实现
  • GitLab添加TortoiseGIT生成SSH Key
  • Java 中如何执行命令行方法
  • 初识godot游戏引擎并安装
  • JAVA基础知识4(static、继承)
  • Spring中存储Bean的相关注解及用法
  • 【C++】类和对象之继承
  • 数组算法--二分查找
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • fetch 从初识到应用
  • java 多线程基础, 我觉得还是有必要看看的
  • Java基本数据类型之Number
  • Logstash 参考指南(目录)
  • Meteor的表单提交:Form
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • XML已死 ?
  • Yii源码解读-服务定位器(Service Locator)
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 前端js -- this指向总结。
  • 深度学习中的信息论知识详解
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 微信小程序--------语音识别(前端自己也能玩)
  • 新书推荐|Windows黑客编程技术详解
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 原生 js 实现移动端 Touch 滑动反弹
  • 怎么将电脑中的声音录制成WAV格式
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​马来语翻译中文去哪比较好?
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #每日一题合集#牛客JZ23-JZ33
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (一)SpringBoot3---尚硅谷总结
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET 常见的偏门问题
  • .net连接MySQL的方法
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /etc/skel 目录作用
  • @AliasFor 使用
  • @Autowired注解的实现原理