skywalking springgateway 全链路

news2024/11/24 12:44:15

环境

spring-cloud-gateway 3.1.0

springGateway整合skywalking

skywalking 默认是不整合springGateway的,需要手动拷贝skywalking optional-plugins下的
apm-spring-cloud-gateway-N.x-plugin-8.13.0.jar

apm-spring-webflux-5.x-plugin-8.13.0.jar
架包拷贝到plugins目录下
gateway架包的选择根据springgateway的版本进行选择
在这里插入图片描述

配置请求标识

经过上一步配置的请求会存在调用链路,但是链路仅到网关,不会到后续服务

处理方法

  1. 服务中引入架包
    pom
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
            <version>8.14.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-webflux</artifactId>
            <version>8.14.0</version>
        </dependency>
  1. 配置链路id
package com.kittlen.gateway.filter;

import org.apache.skywalking.apm.toolkit.trace.TraceContext;
import org.apache.skywalking.apm.toolkit.webflux.WebFluxSkyWalkingOperators;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

/**
 * @author kittlen
 * @version 1.0
 * @date 2023/9/5 13:41
 * skywalking 全链路配置
 */
@Component
public class PutTraceIdIntoResponseHeaderFilter implements GlobalFilter {

    String xTraceIdKey = "x-trace-id";

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        String traceId = WebFluxSkyWalkingOperators.continueTracing(exchange, TraceContext::traceId);
        exchange.getResponse().getHeaders().set(xTraceIdKey, traceId);
        return chain.filter(exchange);
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/974748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

centos7环境使用yum源安装docker

目录 1.检查内核相关信息 2.完善yum源 3.开始安装docker 4.docker使用前最后的准备 5.最后运行一下hello-world 1.检查内核相关信息 cat /etc/*release*&#xff1a;查看centos版本&#xff0c;docker支持centos7及以上版本。 uname -a&#xff1a;查看linux的指令集&…

lv3 嵌入式开发-6 linux shell脚本编程(概念、变量、语句)

1 Shell脚本概述 1.1Shell脚本概述 Shell脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件&#xff0c;将一些 shell 的语法与命令&#xff08;含外部命令&#xff09;写在里面&#xff0c;搭配正则表达式、管道命令与数据流重定向等功能 1.2Shell脚本编写流…

大数据平台数据安全具体措施有哪些?有推荐的吗?

大数据平台是企业处理和分析数据的重要工具之一&#xff0c;也是企业数据存储的重要载体&#xff0c;因此保障大数据平台安全至关重要。那你知道大数据平台数据安全具体措施有哪些&#xff1f;有推荐的吗&#xff1f; 大数据平台数据安全具体措施有哪些&#xff1f; 1、数据…

LeetCode 138. Copy List with Random Pointer【链表,DFS,迭代,哈希表】中等

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

四维纵横与用友达成战略合作,携手打造企业数据智能新基座

近日&#xff0c;北京四维纵横数据技术有限公司&#xff08;四维纵横 YMatrix&#xff09;与用友网络科技股份有限公司&#xff08;用友&#xff09;&#xff0c;宣布达成产品战略合作协议。双方将共同致力于为企业提供一站式数据智能解决方案&#xff0c;加速企业应用的全方位…

linux sed 删除空行、替换文本

假设文件&#xff1a;sed.txt first second third fourfive①删除four、five之间的空行 ②替换first为hsj is smart cat sed.txt | sed /^$/d | sed s/first/hsj is smart/g

【Unity-Cinemachine相机】相机跟随之Transposer属性

相机跟随和瞄准行为 Transposer&#xff1a;虚拟相机将在某个固定的偏移或距离上跟随目标移动 上面的偏移量就是Follow Offset Binding Mode决定Follow Offset是目标本地坐标系下的身后十米还是世界坐标系下的身后十米 Lock To Target On Assign&#xff1a;锁定自己和目标本地…

论文浅尝 | 训练语言模型遵循人类反馈的指令

笔记整理&#xff1a;吴亦珂&#xff0c;东南大学硕士&#xff0c;研究方向为大语言模型、知识图谱 链接&#xff1a;https://arxiv.org/abs/2203.02155 1. 动机 大型语言模型&#xff08;large language model, LLM&#xff09;可以根据提示完成各种自然语言处理任务。然而&am…

【LeetCode-中等题】208. 实现 Trie (前缀树)

文章目录 题目方法一&#xff1a;利用数组构建26叉树方法二&#xff1a;利用哈希表构建26叉树 题目 方法一&#xff1a;利用数组构建26叉树 插入图示&#xff1a; 全搜索和前缀搜索&#xff1a; 注意&#xff1a;全局匹配匹配完直接返回插入时的标志位 而前缀匹配时&#xff…

Vagrant命令

文章目录 1.介绍2.下载3. 配置3.1 配置环境变量3.2 在xshell中连接使用 4. 相关命令4.1 Box相关4.2 初始化环境4.4 虚拟机相关 1.介绍 Vagrant 是一个虚拟机管理工具 2.下载 https://www.vagrantup.com/ 3. 配置 3.1 配置环境变量 测试安装是否成功 3.2 在xshell中连接使…

MybatisPlus插件功能详细介绍 自动分页 通用分页实体

本课程全面讲解了Mybatis框架的使用&#xff0c;从快速入门到原理分析再到实战应用。每一个知识点都有案例进行演示学习&#xff0c;最终通过学习你将全面掌握&#xff0c;从而使Mybatis的开发更加的高效&#xff0c;系统学习 通过项目的开发大家应该能发现&#xff0c;单表的C…

同是卫星,华为Mate 60 pro的天通卫星和北斗卫星有何区别?

作为一个海钓爱好者&#xff0c;在看到华为Mate 60 Pro带有卫星通话功能那一刻&#xff0c;我就知道&#xff0c;我的钱包要-7000了——因为卫星通话功能&#xff0c;对于我们这类有着小众爱好的人群来说&#xff0c;实在太需要了。 对比北斗卫星短消息&#xff0c;Mate 60 Pr…

[git] 如何克隆仓库,进行项目撰写,并绑定自己的远程仓库

摘要&#xff1a;删除.git文件&#xff0c;才可重新绑定远程仓库。 具体步骤&#xff1a; 文件夹右键&#xff0c;进入”Git Bash Here“执行命令 1. 执行 ”git clone 仓库地址“&#xff0c;克隆仓库 2. 在生成的仓库中&#xff0c;删除 .git 文件 3. git init 初始化仓库…

3D渲染:面法线和顶点法线

现在我们回顾了影响对象外观的参数&#xff08;它们的亮度、颜色等&#xff09;&#xff0c;我们准备开始研究一些简单的着色技术。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、法线 法线在着色中起着核心作用。 大家都知道&#xff0c;如果我们将物体朝向光源&a…

Unity ShaderGraph教程——进阶shader(水面、积雪,数字线框)

1.水面&#xff08;一&#xff09; 公式&#xff1a;场景深度 节点深度 — 屏幕空间位置的W向量 半透明物体与不透明物体的相交边缘 原理&#xff1a;场景深度 节点深度包含透明像素&#xff0c;屏幕空间w向量不包含透明像素。 注意&#xff1a;需要在UniversalRP-xxxQuali…

diskqueue怎么写入消息,怎么对外发送消息

nsq中diskqueue是nsq消息持久化的核心&#xff0c;内容较多&#xff0c;一共分为多篇 1. diskqueue是什么&#xff0c;为什么需要它&#xff0c;整体架构图&#xff0c;对外接口_YZF_Kevin的博客-CSDN博客 2. diskqueue的元数据文件&#xff0c;数据文件&#xff0c;启动入口…

成都睿趣科技:现在开一家抖音小店还来得及吗

随着社交媒体的迅猛发展&#xff0c;抖音已经成为了一个全球范围内广受欢迎的社交平台。在这个短视频应用上&#xff0c;人们分享着各种各样的内容&#xff0c;从搞笑段子到美食教程&#xff0c;再到时尚搭配和手工艺品制作。随着用户数量的不断增长&#xff0c;很多人都在思考…

Python第三方库 - matplotlib库

1 matplotlib了解 Matplotlib 可能是 Python 2D - 绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化&#xff0c;并且提供多样化的输出格式。这里将会探索 matplotlib 的常见用法。 2 matplotlib学习 2.1 引用 plt 表示当前子图&#xff0c;若没有就创建一个子图 …

x64dbg的安装

一、安装地址&#xff1a; 地址 解压目录 点击x96dbf.exe 二、使用 1.反汇编窗口 这个位置显示的是需要分析的程序的反汇编代码。在第一个区域的最左侧例如“7712EAA3”这一列就是内存地址区域&#xff0c;接着“E8 07”就是汇编指令的opcode&#xff0c;“jmp xxxxxxxxx”这…

天津Java培训机构 Java的发展空间如何?

在当今互联网时代&#xff0c;计算机技术的发展日新月异&#xff0c;越来越多人看到IT行业的广泛前景&#xff0c;纷纷想要转行成为一名程序员&#xff0c;作为一名IT从业人员&#xff0c;学习一门编程语言是必不可少的&#xff0c;而在众多编程语言中&#xff0c;Java无疑是较…