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

news/2024/11/29 5:48:41/

链路追踪

介绍

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

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

藏经阁介绍

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

夜莺-链路追踪

相关配置

资源

  • 🔧Jaeger (Jaeger v1.43.0)https://www.jaegertracing.io
  • 🔧Agent (opentelemetry-javaagent.jar 1.23.0)opentelemetry-javaagent
  • 🔧N9e-v6最新版以是(v6.0.0-ga.6):https://flashcat.cloud/download/nightingale
  • 🔧Categraf(v0.3.2):https://flashcat.cloud/download/categraf
  • 🔧VictoriaMetrics(v1.90.0):https://github.com/VictoriaMetrics/VictoriaMetrics/releases
  • 🔧Redis(v-6.2.6,已出7版本了,我这里用的旧的):https://download.redis.io/releases/redis-6.2.6.tar.gz

相关配置

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这块;

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


http://www.ppmy.cn/news/69847.html

相关文章

Yarn安装及配置一件启停

Yarn安装及配置一件启停 数据、程序、运算资源(内存、CPU)三者组在一起,才能完成数据的计算处理过程。在单机环境下,三者之间协调配合不是太大问题。为了应对海量数据的处理场景,Hadoop软件出现并提供了分布式处理思想。但是在分…

北华大学第九届程序设计竞赛 题解

5.14和队友VP一场,第二次VP,状态明显比第一次好很多,总共A了7题,基本是能做出来的都做出来了,最后还剩下接近2小时的时间。。。。。 A "北华"有几何 思路:数图片中“北华”的数量,直…

PHP学习教程大纲

以下是PHP学习教程的大纲: 第一部分:基础知识 PHP简介 什么是PHP? PHP的历史和发展 PHP的特点和优势 开发环境的搭建 安装PHP解释器 配置开发环境 第一个PHP程序 Hello World程序 程序的结构 编译和运行程序 数据类型和变量 基…

Linux权限

文章目录 一、Linux权限管理1、文件访问者的分类2、文件类型和访问权限(事物属性)3、文件权限值的表示方法4、目录文件的 r 、 w 、 x r、w、x r、w、x代表含义 二、文件访问权限的相关设置方法1、 c h m o d chmod chmod [参数] 权限 文件名2、 c h …

什么是点对点传输?什么是点对多传输

点对点技术(peer-to-peer, 简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P网络通常用于通过Ad Hoc连接来连接节点。这类网…

算法修炼之练气篇——练气十一层

博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…

k8s集群部署 | 三节点(复用)高可用集群过程参考

文章目录 1. kubeadm 部署三节点(复用)高可用 k8s 集群1.1 环境规划阶段1.1.1 实验架构图1.1.2 系统版本说明1.1.3 环境基本信息1.1.4 k8s 网段划分 1.2 基础安装及优化阶段1.2.1 系统信息检查1.2.2 静态 IP 地址配置1.2.3 配置主机名1.2.4 配置/etc/hos…

时至今日,Linux会开源,也是一种态度

什么是开源?开源通常指开发者公开系统/应用程序源代码。通过对代码进行共享和重用,可以快速开发出高质量、低维护成本的应用程序。这意味着你不再需要花很多时间来学习新技术或编写复杂的代码。 一、Linux永远的神 就拿linux来举例子。 Linux系统的发起…