【夜莺(Flashcat)V6监控】3.链路追踪

本文介绍了链路追踪在分布式系统中的作用,以及如何在夜莺(N9e)中配置和使用Jaeger进行链路追踪。通过Jaeger收集和展示Trace信息,文章提供了Jaeger、opentelemetry-javaagent的下载资源,以及Java项目配置示例。在夜莺中配置Jaeger数据源后,可以查询和分析调用链路。文章还提及夜莺的数据源接入特性,但未明确提及是否支持告警功能。
摘要由CSDN通过智能技术生成

链路追踪

介绍

链路追踪是分布式系统下的一个概念,它的目的就是要解决上面所提出的问题,也就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如,各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等。

在夜莺中,链路追踪是基于Jaeger建立的数据源,本身并不对接任何agent的。
视频课程对这块讲的也不多,在第二讲说了一下,藏经阁也没有详细说,仅在数据查询中提了一下;
为方便大家了解我在这里科普一下,方便的大家可以跑起来观测。

藏经阁介绍

夜莺的链路追踪能力,是基于 Jaeger 来实现的,在数据源管理页面配置好 Jaeger 数据源之后,即可展示在 Jaeger 存储的 Trace 信息,夜莺提供了两种查询 Trace 信息的方式,一种是通过 Service+Opertation+标签 筛选,一种是之前根据 Trace ID 来筛选。

夜莺-链路追踪

相关配置

资源

相关配置

Jaeger部分

夜莺接入数据,文章开头也说了直接接的Jaeger的源,也就是Jaeger完全可以跑,数据可以查;没有夜莺的干预都正常使用为前提;

Jaeger

首先跑起我们的Jaeger;首先在服务器上解压Jaeger的压缩包:jaeger-1.43.0-linux-amd64.tar.gz。

# tar zxf jaeger-1.43.0-linux-amd64.tar.gz

会看到
Jaeger程序目录
启动Jaeger,直接all-in-one:

nohup ./jaeger-all-in-one &> jaeger.log &

启动后访问http://127.0.0.1:16686/;看看正常不;注意换成自己的IP;
Jaeger界面
Jaeger官网上说了很多端口:
Jaeger端口
实际并没有这么多,由我们需要就可以;
Jaeger默认端口

应用加Agent上传数据看结果

我这便是用的Java的项目做的测试;所以用了opentelemetry-javaagent.jar;大家根据自己的实际情况;Opentelemetry支持很多的agent的,
opentelemetry-instrumentation
此处使用springboot项目测试;需配置javaagent,由于Opentelemetry也是一个集大成者,所以相关配置需要多配置一点;

-javaagent:/opt/Monitor/opentelemetry/opentelemetry-javaagent.jar
-Dotel.service.name=ot-ide-ry
-Dotel.metrics.exporter=none
-Dotel.traces.exporter=jaeger
-Dotel.exporter.jaeger.endpoint=http://127.0.0.1:14250

重点说几点

  • opentelemetry 自带metrics是开启的,我们只需要链路跟踪,所以这里屏蔽掉
  • opentelemetry-javaagent使用自家协议(OTLP)上报;这里我们用Jaeger所以需要调整
  • exporter.jaeger.endpoint是上报接收地址

** 关于opentelemetry 对 Jaeger exporter的介绍**
放一下连接:Jaeger exporter
The Jaeger exporter. This exporter uses gRPC for its communications protocol.

System propertyEnvironment variableDescription
otel.traces.exporter=jaegerOTEL_TRACES_EXPORTER=jaegerSelect the Jaeger exporter
otel.exporter.jaeger.endpointOTEL_EXPORTER_JAEGER_ENDPOINTThe Jaeger gRPC endpoint to connect to. Default is http://localhost:14250.
otel.exporter.jaeger.timeoutOTEL_EXPORTER_JAEGER_TIMEOUTThe maximum waiting time, in milliseconds, allowed to send each batch. Default is 10000.

Java项目启动完成并上报数据后,我们就可以从Jaeger-UI中看到数据了,确认好就可以配置夜莺了;
jaeger-ui
找到我们记得服务,选一个接口看看数据;
jaeger-app-Operation

夜莺部分

夜莺部分相对简单,找到我们的数据源;添加Jaeger即可;
n9e-resource
Jaeger数据源配置界面:
n9e-jaeger-setup
配置好之后,在链路追踪-即时查询中就可以看到了;
n9e-trace
点击链路也是可以看到耗时的;
n9e-trace-Operation

总结

本章将了夜莺添加链路追踪,大家都学会了吗?
注意事项:

  1. 夜莺的链路追踪仅是数据源的配置;所有数据都在Jaeger;不是实现的Jaeger的协议直接接收数据并存储;起初没理解,将应用上报数改为了夜莺的端口报错还在社区问了一下。😅😅😅
  2. 夜莺接入的链路追踪大多数的配置是在原有的apm这块;

疑问
这里看到夜莺的数据源方式接入比较好的可以接入原有的监控数据作为数据进行展示;非常的不错👍👍👍
告警这块是包含链路追踪的告警呢?❓❓❓
夜莺是否还有接入其他的数据源呢?❓❓❓
大家还有什么疑问可以去夜莺社区看一下,由什么疑问大佬会给你解答。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值