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

SpringCloud整合skywalking实现链路追踪和日志采集

1.部署skywalking

https://blog.csdn.net/qq_40942490/article/details/144701194

2.添加依赖

        <!-- 日志采集 --><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>9.3.0</version></dependency><!-- 自定义链路追踪 《如果不需要就会用默认的》 --><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>9.3.0</version></dependency>

3.增加日志配置文件

增加logback-spring.xml文件:

文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="10 seconds"><contextName>logback</contextName><property name="log.path" value="./log/bztc-study01"/><!--1. 输出到控制台--><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.TraceIdPatternLogbackLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern></layout></encoder></appender><root level="info"><appender-ref ref="STDOUT"/></root>
</configuration>

4.打印日志

在这里插入图片描述

其中,TID需要打印出来
在这里插入图片描述

5. windos环境–在IDEA中配置SkyWalking

下载地址 https://skywalking.apache.org/downloads/

在运行的程序配置jvm参数,如下图所示:

在这里插入图片描述

-javaagent:C:\Users\admin\Downloads\skywalking-agent\skywalking-agent.jar
-Dskywalking.agent.service_name=portrait-model
-Dskywalking.collector.backend_service=172.16.2.43:11800

6.skywalking网页查询链路

在这里插入图片描述
在搜索框中查询TID:
在这里插入图片描述

7.自定义链路追踪

7.1代码中使用traceId
@RequestMapping("/list")
public List<User> list(){//TraceContext可以绑定key-valueTraceContext.putCorrelation("name", "fox");Optional<String> op = TraceContext.getCorrelation("name");log.info("name = {} ", op.get());//获取跟踪的traceIdString traceId = TraceContext.traceId();log.info("traceId = {} ", traceId);return userService.list();
}
7.2@Trace 将方法加入追踪链路

调用链路中显示返回值,以及参数值信息,使用@Tag或者@Tags
@Tag注解中key=方法名 value=returnedObj 返回值 agr[0] 参数
param标识参数,returnedObj标识返回值

    @RequestMapping("/add")@Trace@Tag(key = "add",value ="returnedObj")public String add() {System.out.println("下单成功");// String forObject = restTemplate.getForObject("http://localhost:8083/stock/reduct", String.class);String forObject = restTemplate.getForObject("http://stock-service/stock/reduct", String.class);//int a= 1/0;return "add order " + forObject;}@RequestMapping("/getById/{id}")@Trace@Tags({@Tag(key = "getById",value ="returnedObj"),@Tag(key="param",value = "arg[0]")})public String getById(@PathVariable("id") Integer id) {return "根据id获取信息";}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.日志收集

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="false" scanPeriod="10 seconds"><contextName>logback</contextName><property name="log.path" value="./log/bztc-study01"/><!--1. 输出到控制台--><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.TraceIdPatternLogbackLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern></layout></encoder></appender><!--2. 日志收集--><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><root level="info"><appender-ref ref="STDOUT"/><appender-ref ref="grpc-log"/></root>
</configuration>

9.重新启动服务 然后查看skywalking网页的Log

在这里插入图片描述

相关文章:

SpringCloud整合skywalking实现链路追踪和日志采集

1.部署skywalking https://blog.csdn.net/qq_40942490/article/details/144701194 2.添加依赖 <!-- 日志采集 --><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version&g…...

html文件通过script标签引入外部js文件,但没正确加载的原因

移动端H5应用&#xff0c;html文件通过script标签引入外部js文件&#xff0c;但没正确加载&#xff0c;在移动设备上难以排查。通过PC浏览器打开&#xff0c;发现js被阻止了&#xff1a;blocked:mixed-content。 原因在于&#xff1a; “blocked:mixed - content” 是浏览器的…...

OpenHarmony开发板环境搭建

程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java相关开发、鸿蒙开发、人工智能等,专注于程序员搞钱那点儿事,希望在搞钱的路上有你相伴&#xff01;君志所向,一往无前&#xff01; 0.OpenHarmony 0.1 OpenHarmony OpenHarmony是一款面向全场景、全连接、全智能的…...

【Rust自学】7.6. 将模块拆分为不同文件

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 7.6.1. 将模块的内容移动到其他文件 如果在模块定义时模块名后边跟的是;而不是代码块&#…...

Python入门:8.Python中的函数

引言 在编写程序时&#xff0c;函数是一种强大的工具。它们可以将代码逻辑模块化&#xff0c;减少重复代码的编写&#xff0c;并提高程序的可读性和可维护性。无论是初学者还是资深开发者&#xff0c;深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始…...

MySQL什么情况下会加间隙锁?

目录 一、使用范围条件查询 二、唯一索引的范围查询 三、普通索引的查询 四、间隙锁的锁定规则 五、间隙锁的影响 间隙锁(Gap Lock)是MySQL中的一种锁机制,主要用于防止幻读现象。在MySQL的InnoDB存储引擎中,当事务隔离级别设置为可重复读(Repeatable Read)时,间隙…...

【服务器开发及部署】code-server 显示git graph

在开发一些linux上的内容的时候进程需要在开发机和生产部署上花费大量的时间。 为了解决上述问题,我们今天介绍一款在服务上开发的思路 git + code server + 宝塔 其中需要处理一些问题,此处都有交代 步骤 安装宝塔安装code-server配置插件配置浏览器处理的问题 git版本过低,…...

Linux 终端查看 nvidia 显卡型号

文章目录 写在前面1. 需求描述2. 实现方法方法一&#xff1a;方法二方法三&#xff1a; 参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04 1. 需求描述 Linux 终端查看 nvidia 显卡型号 2. 实现方法 方法一&#xff1a; 执行下列指令&#xff1a; sudo update…...

助你通过AI培训师中级考试的目录索引

嘿&#xff0c;各位看官&#xff01;在您正式踏入接下来的知识小宇宙之前&#xff0c;咱先唠唠几句… 家人们&#xff0c;我跟你们说&#xff0c;我脑一热报名了那个 AI 培训师考试。本想着开启一场知识的奇幻之旅&#xff0c;结果呢&#xff0c;学视频内容的时候&#xff0c;那…...

百度PaddleSpeech识别大音频文件报错

一、背景 公司前同事留下了一套语音识别项目&#xff0c;内部使用百度PaddleSpeech。在项目验收的时候发现无法识别大音频文件&#xff0c;但是可以识别小音频文件。 这套项目是通过python调用的百度PaddleSpeech&#xff0c;然后提供了restful接口&#xff0c;然后java项目可…...

Lucene 漏洞历险记:修复损坏的索引异常

作者&#xff1a;来自 Elastic Benjamin Trent 有时&#xff0c;一行代码需要几天的时间才能写完。在这里&#xff0c;我们可以看到工程师在多日内调试代码以修复潜在的 Apache Lucene 索引损坏的痛苦。 做好准备 这篇博客与往常不同。它不是对新功能或教程的解释。这是关于花…...

RabbitMQ基础篇之快速入门

文章目录 一、目标需求二、RabbitMQ 控制台操作步骤1.创建队列2.交换机概述3.向交换机发送消息4.结果分析5.消息丢失原因 三、绑定交换机与队列四、测试消息发送五、消息查看六、结论 一、目标需求 新建队列&#xff1a;创建 hello.queue1 和 hello.queue2 两个队列。消息发送…...

如何自定义 Kubernetes KubeSphere 默认 Logo:详细实现方案

要将 Pod 中的路径 /opt/kubesphere/console/dist/assets/logo.svg 替换为外部的某个图片&#xff0c;可以通过以下几种方法处理。推荐使用 挂载 ConfigMap 或 Secret 的方式&#xff0c;因为它是 Kubernetes 原生的、可持续的解决方案。 方法 &#xff1a;使用 ConfigMap 挂载…...

标准库以及HAL库——按键控制LED灯代码

按键控制LED本质还是控制GPIO,和点亮一个LED灯没什么区别 点亮一个LED灯&#xff1a;是直接控制输出引脚&#xff0c;GPIO初始化推挽输出即可 按键控制LED&#xff1a;是按键输入信号从而控制输出引脚&#xff0c;GPIO初始化推挽输出一个引脚以外还得加一个GPIO上拉输入 但是…...

Echarts+vue电商平台数据可视化——webSocket改造项目

websocket的基本使用&#xff0c;用于测试前端能否正常获取到后台数据 后台代码编写&#xff1a; const path require("path"); const fileUtils require("../utils/file_utils"); const WebSocket require("ws"); // 创建WebSocket服务端的…...

Flink中并行度和slot的关系——任务和任务槽

一、任务槽&#xff08;task slots) Flink的每一个TaskManager是一个JVM进程&#xff0c;在其上可以运行多个线程&#xff08;任务task&#xff09;&#xff0c;那么每个线程可以拥有多少进程资源呢&#xff1f;任务槽就是这样一个概念&#xff0c;对taskManager上每个任务运行…...

基于西湖大学强化学习课程的笔记

放在前面 课程链接 2024年12月30日 前言&#xff1a;强化学习有原理部分的学习&#xff0c;也有与实践相关的编程部分。我认为实践部分应该是更适合我的&#xff0c;不过原理部分也很重要&#xff0c;我目前是准备先过一过原理。 应该花多少时间学习这部分呢&#xff1f; 但是这…...

瀚高数据库 问题: ERROR: operator does not exist: character varying = integer

错误信息&#xff1a; ERROR: operator does not exist: character varying integer建议&#xff1a;No operator matches the given name and argument types. You might need to add explicit type casts.位置&#xff1a;1073at 增加瀚高数据库转换函数解决该问题&#xff…...

冷链温度记录仪蓝牙应用案例

在现代冷链物流运输过程中&#xff0c;确保货物在运输过程中保持在适当的温度范围内是至关重要的。例如&#xff0c;水果、蔬菜、肉类、乳制品以及医疗用品等&#xff0c;这些产品对温度的敏感性要求运输过程中必须严格监控温度变化。RAMSUN介绍冷链温度记录仪蓝牙芯片应用案例…...

LeetCode - Google 校招100题 第7天 序列(数据结构贪心) (15题)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/144744418 相关文章&#xff1a; LeetCode 合计最常见的 112 题&#xff1a; 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21…...

电压电流双闭环Vienna整流器SVPWM调制仿真研究

基于电压电流双闭环的vienna整流器的仿真(SVPWM调制)最近在实验室折腾Vienna整流器&#xff0c;双闭环调得我差点把示波器砸了。这玩意儿看着电路拓扑对称美如画&#xff0c;真调起来参数互相打架是常态。今天就结合仿真说说怎么让电压电流双闭环稳住&#xff0c;顺便把SVPWM那…...

OFA-VE效果集:天文星图与观测记录文本逻辑一致性AI核查

OFA-VE效果集&#xff1a;天文星图与观测记录文本逻辑一致性AI核查 1. 引言&#xff1a;当AI遇见星空 想象一下&#xff0c;你是一位天文爱好者&#xff0c;或者是一位科研工作者。你手头有一张刚刚拍摄的深空星图&#xff0c;旁边还附带着一段观测记录的文字描述。你可能会问…...

《信息系统项目管理师教程(第4版)》制定项目章程(启动过程组)考点知识结构+10道经典真题

《信息系统项目管理师教程&#xff08;第4版&#xff09;》制定项目章程&#xff08;启动过程组&#xff09;考点知识结构10道经典真题一、制定项目章程&#xff08;启动过程组&#xff09;高频考点知识结构&#xff08;一&#xff09;核心定位&#xff08;必考点&#xff0c;选…...

Qwen3.5-2B本地知识库问答系统:基于CSDN技术文章的精准检索与摘要

Qwen3.5-2B本地知识库问答系统&#xff1a;基于CSDN技术文章的精准检索与摘要 1. 技术问答的痛点与解决方案 技术开发者在日常工作中经常遇到这样的场景&#xff1a;遇到一个具体的技术问题&#xff0c;需要快速找到相关解决方案。传统的做法是在搜索引擎中输入关键词&#x…...

Janus-Pro-7B惊艳效果:艺术风格迁移(梵高笔触/水墨晕染/像素风)精准控制

Janus-Pro-7B惊艳效果&#xff1a;艺术风格迁移&#xff08;梵高笔触/水墨晕染/像素风&#xff09;精准控制 1. 开篇&#xff1a;当AI遇见艺术&#xff0c;一场视觉革命正在发生 想象一下&#xff0c;你手头有一张普通的风景照片&#xff0c;但你想让它变成梵高笔下的星空&am…...

【量子计算C++实战指南】:20年专家亲授,从零搭建Shor算法仿真器(含完整可运行代码)

第一章&#xff1a;量子计算与C编程的融合基础量子计算正从理论走向工程实践&#xff0c;而C凭借其零开销抽象、内存可控性与高性能特性&#xff0c;成为量子软件栈底层实现的关键语言。现代量子开发框架&#xff08;如QPP、Q、XACC&#xff09;普遍提供C原生API&#xff0c;使…...

基于卷积神经网络的忍者像素绘卷风格迁移实战教程

基于卷积神经网络的忍者像素绘卷风格迁移实战教程 1. 引言&#xff1a;当像素艺术遇上AI风格迁移 想象一下&#xff0c;你正在开发一款复古风格的忍者游戏&#xff0c;需要大量像素风格的场景和角色。传统手工绘制不仅耗时耗力&#xff0c;而且难以保持风格一致性。现在&…...

Wireshark过滤规则、OSI模型与TCP三次握手详解

本文内容有以下三个部分&#xff1a; wireshark过滤规则osi模型简述tcp三次握手 一、wireshark过滤规则 wireshark只是一个抓包工具&#xff0c;用其他抓包工具同样能够分析tcp三次握手协议。例如&#xff0c;Sniffmaster是一款全平台抓包工具&#xff0c;支持HTTPS、TCP和UDP协…...

OpenClaw+Phi-3-vision-128k-instruct:个人知识库的自动化图文索引系统

OpenClawPhi-3-vision-128k-instruct&#xff1a;个人知识库的自动化图文索引系统 1. 为什么需要自动化图文索引 作为一名长期与各类技术文档打交道的开发者&#xff0c;我发现自己越来越陷入"资料沼泽"——电脑里堆满了PDF、PPT和截图&#xff0c;却总在关键时刻找…...

Paimon数据湖避坑指南:sink-upsert配置与三种Merge Engine选型对比

Paimon数据湖实战&#xff1a;Merge Engine选型与sink-upsert优化全解析 当订单数据以每秒万条的速率涌入系统时&#xff0c;我们团队曾因错误配置导致下游报表出现诡异的"订单复活"现象——已取消的订单反复出现在统计结果中。这次事故让我们深刻认识到&#xff0c;…...