使用 Solon Cloud 的 Jaeger 做请求链路跟踪
<dependency>
<groupId>org.noear</groupId>
<artifactId>jaeger-solon-cloud-plugin</artifactId>
</dependency>
1、描述
分布式扩展插件。基于 jaeger 适配的 solon cloud 插件。基于 opentracing 开放接口提供链路跟踪支持。
2、配置示例
solon.app:
name: "demoapp"
group: "demo"
solon.cloud.jaeger:
server: "udp://localhost:6831"
trace:
enable: true #是否启用(默认:true)
exclude: "/healthz,/_run/check/" #排除路径,多个以,号隔开
3、代码应用
- 启用和配置跟踪器实现
public class App {
public static void main(String[] args) {
Solon.start(App.class, args);
}
}
//相对于 opentracing-solon-plugin,省去了 Tracer 的构建 和 jaeger 客户端的引入
- 应用代码
// -- 可以当它不存在得用
@Controller
public class TestController {
@NamiClient
UserService userService;
@Inject
OrderService orderService;
@Mapping("/")
public String hello(String name) {
name = userService.getUser(name);
return orderService.orderCreate(name, "1");
}
}
//-- 通过注解增加业务链节点 ( @Tracing )
@ProxyComponent
public class OrderService {
@Tracing(name = "创建订单", tags = "订单=${orderId}")
public String orderCreate(String userName, String orderId) {
//手动添加 tag
Spans.active(span -> span.setTag("用户", userName));
return orderId;
}
}
4、@Tracking 注意事项
控制器或最终转为 Handler 的类可以不加(已由 Filter 全局处理了),加了会产生新的 Span
修改当前 Span 的操作名
@Controller
public class TestController {
@Mapping("/")
public String hello(String name) {
Spans.active().setOperationName("Hello"); //修改当前操作名
return "Hello " + name;
}
}
- 添加在空接口上,一般会无效(比如:Mapper)。除非其底层有适配
- 需加在代理的类上,不然拦截器不会生效。如:@ProxyComponent 注解的类
5、演示效果

6、代码演示
- 源码:https://gitee.com/noear/solon-examples/tree/main/9.Solon-Cloud/demo9072-jaeger
- 视频:https://www.bilibili.com/video/BV1E24y1j7w3/
使用 Solon Cloud 的 Jaeger 做请求链路跟踪的更多相关文章
- SpringCloud(八)Sleuth 分布式请求链路跟踪
SpringCloud Sleuth 分布式请求链路跟踪 概述 为什么会出现这个技术?需要解决哪些问题? 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后 ...
- Spring Cloud 微服务架构全链路实践
阅读目录: 1. 网关请求流程 2. Eureka 服务治理 3. Config 配置中心 4. Hystrix 监控 5. 服务调用链路 6. ELK 日志链路 7. 统一格式返回 Java 微服务 ...
- 【spring cloud】spring cloud Sleuth 和Zipkin 进行分布式链路跟踪
spring cloud 分布式微服务架构下,所有请求都去找网关,对外返回也是统一的结果,或者成功,或者失败. 但是如果失败,那分布式系统之间的服务调用可能非常复杂,那么要定位到发生错误的具体位置,就 ...
- go-zero 是如何追踪你的请求链路的
go-zero 是如何追踪你的请求链路 微服务架构中,调用链可能很漫长,从 http 到 rpc ,又从 rpc 到 http .而开发者想了解每个环节的调用情况及性能,最佳方案就是 全链路跟踪. 追 ...
- Jaeger Client Go 链路追踪|入门详解
目录 从何说起 Jaeger 部署 Jaeger 从示例了解 Jaeger Client Go 了解 trace.span tracer 配置 Sampler 配置 Reporter 配置 分布式系统 ...
- Solon Cloud 分布式开发套件清单与快速概览
Solon Cloud 是一系列的接口标准和配置规范.Solon Cloud 为常见的分布式系统模式提供了一种简单且方便的编程模式,帮助开发人员构建有弹性的.可靠的.协调的应用程序.Solon Clo ...
- 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.48 发布
Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 增加 solon.serialization,做为序列化的基础插件 优化 所有Json序列化插件,使之可方便定制类型序列化 public ...
- Solon & Solon Cloud 1.5.62 发布,轻量级 Java 基础开发框架
Solon 已有120个生态扩展插件,此次更新主要为细节打磨,且对k8s和docker-compose更友好: 1.插件 solon.coud ,事件总线增加支持本地同主题多订阅模式(以支持同服务内, ...
- Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】
Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin[Finchley 版] 发表于 2018-04-24 | 随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请 ...
- Spring cloud系列十四 分布式链路监控Spring Cloud Sleuth
1. 概述 Spring Cloud Sleuth实现对Spring cloud 分布式链路监控 本文介绍了和Sleuth相关的内容,主要内容如下: Spring Cloud Sleuth中的重要术语 ...
随机推荐
- Qt编译问题之FTH (7156) Fault tolerant heap shim applied to current process
有时候Qt编译会出现FTH: (7156): *** Fault tolerant heap shim applied to current process. This is usually due ...
- IOS文件下载时,文件名的处理
string contentType = MimeMapping.GetMimeMapping(name);var isIOS = false; if (Request.UserAgent != nu ...
- axis2 WebService 请求参数xml格式
方法定义 public class GetBillInfoService { public String getBillList(String xmlData, String temp ){} 传入接 ...
- 关于lesscss和颜色梯度(linear-gradient )的一些问题
一.什么是less? 一种 动态 样式 语言. LESS 将 CSS 赋予了动态语言的特性,如 变量, 继承,运算, 函数. LESS 既可以在 客户端 上运行 (支持IE 6+, Webkit, F ...
- vue引入多个指令文件
单个指令引入,在main.js(入口JS文件)中引入你已经写好的指令文件,可以省略文件后缀: // main.js import focus from 'xxx/directive'多个指令引入 Vu ...
- mmdetection可视化工具-DetVisGUI
保存数据 执行程序,需要保存输出结果的pkl文件或者json文件 下面以测试faster_rcnn示例: 在执行测试时可以使用下面这条命令,就会将结果保存到一个pkl文件中. python tools ...
- SQL SERVER 内存优化表踩坑记
背景 因为生产应用需要刷新大量的状态数据到数据库中用于客户端的显示,于是新建了一张状态表,表内行数固定,状态更新到列内.刚开始运行时还行,更新都很及时,查询速度也不慢.于是就这样使用了有一个月的时间. ...
- Charles笔记
Charles 预览模式 Structure 以域名对请求进行分组,可以很方便地预览同一域名下的请求数据,也方便于日常开发中对某一服务接口的分析和处理 Sequence Sequence以时间顺序显示 ...
- K8S Operator的开发与使用
从应用角度考虑,为什么会出现如此多的Operator场景,为什么很多中间件和厂商都会提供基于Operator的部署方案,他的价值是什么? 随着时代的发展,企业应用部署环境从传统的物理机->虚拟机 ...
- 应用和 IPv6
应用和 IPv6 前言 在数据中心网络IPv6协议改造时,我们通常更关注路由交换的部分.对于应用系统适配IPv6 网络确缺少关注,本文旨在更多的讨论应用和IPv6 的关系,帮助个人.公司和组织能够更改 ...