开源可观测性平台Signoz(四)【链路监控及数据库中间件监控篇】

开源可观测性平台Signoz(三)【服务器主机监控篇】_轻量化监控工具

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


前文链接:

​​开源可观测性平台Signoz系列(一)【开篇】​​

​​开源可观测性平台Signoz(二)【日志采集篇】​​

​​开源可观测性平台Signoz(三)【服务器主机监控篇】​​

在前文中,分享了signoz的安装、基础配置、日志采集、主机监控添加,本文则分享signoz中链路监控、数据库、中间件接入过程。

1. java链路监控

1.1 接入方案

java链路监控接入方式类似skywalking监控接入方式,通过agent,将相关指标接入signoz。

客户端jar包:opentelemetry-javaagent.jar

客户端jar包下载:

wget https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar

java启动参数加入: 

-javaagent:/${path}/opentelemetry-javaagent.jar -Dotel.resource.attributes=service.namespace=test,service.name=zrtc-api,deployment.environment=poc -Dotel.metrics.exporter=none -Dotel.exporter.otlp.endpoint=http://${IP of signoz}:4317

参数详解:

-javaagent:/${path}/opentelemetry-javaagent.jar:配置jar包的路径

-Dotel.resource.attributes:配置应用的基本信息,如namespace、servicename、environment等,根据当前环境适当增减参数,如非k8s的应用,可去掉namespace配置

otel.metrics.exporter:这个是metrics的配置,在此处必须要特地提醒一下,在旧版本中这个值默认为none,即不开启。但是在较新的版本中这个值默认变成了otlp,因此需要提醒下如果不需要metrics的能力,需要在新版本中将这个值手动设置为none

otel.traces.exporter:用来配置数据输出的exporter,默认是otlp,但是jaeger,zipkin等等也在支持的范围之内,可以根据自己的需求进行配置。

otel.exporter.otlp.trace.endpoint:用来配置具体的采集端点地址,注意此配置仅生效于otlp,如果是jaeger等其他,需要自行使用其他配置。一般来说的话:gRPC协议使用4317端口,http协议使用4318端口(建议使用gRPC)

1.2 例子

以某docker-compose方式部署的java应用sre-test为例,记录java应用接入signoz过程。

先将agent包上传到服务器某个目录,这里是将opentelemetry-javaagent.jar所在目录挂载到了容器里测试接入:

图片

修改docker-compose.yaml部署文件,添加signoz agent:

[root@test102 sre-test]# cat sre-test.yaml
version: "3"
services:zrtc-api:image: www.harbor.com/sre/sre-test:1.0.0container_name: sre-testrestart: alwaysprivileged: trueenvironment:TZ: Asia/Shanghai### 修改SERVICE_STARTUP_CONFIG,添加opentelemetry-javaagent.jar启动相关参数SERVICE_STARTUP_CONFIG: -javaagent:/jar/opentelemetry-javaagent.jar -Dotel.resource.attributes=service.namespace=test,service.name=sre-test,deployment.environment=poc -Dotel.metrics.exporter=none -Dotel.exporter.otlp.endpoint=http://10.0.0.101:4317 -Xmx512m -Xms512mSPRING_PROFILES_ACTIVE: pocvolumes:- /home/otel/jar:/jar  ###挂载jar包目录
[root@test102 sre-test]#

启动sre-test应用:

docker-cmpose -f sre-test.yaml start

在应用启动后,signoz界面的链路板块,就能看到相关的监控信息了:

图片

2. 数据库与中间件接入

2.1 接入方案

signoz支持Prometheus指标采集,因此数据库和中间件可通过exporter客户端导出数据到Prometheus,然后在signoz配置Prometheus target,即可完成监控数据接入。

2.2 例子

以MongoDB和RabbitMQ为例,记录数据库和中间件的监控接入。

2.2.1exporter安装

MongoDB安装exporter

mongodb_exporter下载链接:https://github.com/percona/mongodb_exporter

步骤:

1)先在mongodb创建监控专用用户,这里创建的用户为prometheus

2)然后启动mongodb_exporter:

nohup  ./mongodb_exporter --mongodb.uri mongodb://prometheus:prometheus@{IP OF MONGODB}:27017/admin  --collector.diagnosticdata  --collector.replicasetstatus --collector.dbstats  --collector.topmetrics  --collector.indexstats  --collector.collstats  --metrics.overridedescendingindex  --collect-all  &

mongodb_exporter启动的端口为9216,这个端口要配置到otel-collector-metrics-config.yaml中。

RabbitMQ开启rabbitmq_prometheus

rabbitmq-plugins enable rabbitmq_prometheus
2.2.2 修改signoz配置文件,接入监控

在Prometheus模块加入以上需要监控的应用target:

..... #前面省略若干行prometheus:config:scrape_configs:# otel-collector-metrics internal metrics- job_name: otel-collector-metricsscrape_interval: 60sstatic_configs:- targets:- localhost:8888labels:job_name: otel-collector-metrics# SigNoz span metrics- job_name: signozspanmetrics-collectorscrape_interval: 60sstatic_configs:- targets:- otel-collector:8889
###############新增配置开始###############- job_name: "mongo-test"scrape_interval: 60sstatic_configs:- targets: ["10.0.0.1:9216","10.0.0.2:9216","10.0.0.3:9216"]- job_name: "rabbitmq-test"scrape_interval: 60sstatic_configs:- targets: ["10.0.0.1:15692","10.0.0.2:15692","10.0.0.3:15692"]
###############新增配置结束###############         
processors:batch:send_batch_size: 10000send_batch_max_size: 11000timeout: 10s
......  #后面省略若干行

重启otel-collector-metrics并确认otel-collector-metrics日志无报错信息

docker-compose -f docker-compose.yaml  restart otel-collector-metrics
2.2.3 创建Dashboard和Alert

告警接入后,就可以创建Dashboard看板和告警信息了,方法同《​​开源可观测性平台Signoz(三)【服务器主机监控篇】​​》。

其余如mysql、PostgreSQL、redis等,可采用相同方案接入。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式之初始设计模式和UML图

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

S7.Net与西门子PLC通讯

开发环境准备 同时由于设备还未采购,没有设备进行测试开发,会安装一个仿真模拟器进行调试。(真心的,谁想到还能仿真模拟设备) 需要安装的软件包括 ◦TIA Portal V14 ◦S7-PLCSIM V14 ◦NetToPLCsim-S7o-v-1-2-2-0 TIA Portal 西门子官方管理设备数据块的客户端,每一…

25、WEB攻防——通用漏洞SQL读写注入MYSQLMSSQLPostgreSQL

文章目录 Mysql-root高权限读写注入PostgreSQL——dba高权限读写注入Mssql-sa高权限读写注入 Access无高权限注入点——只能猜解,而且是暴力猜解; MYSQL,PostgreSQL,MSSQL(SQL server)高权限注入点——可升级读写(文件…

记录DevEco Studio 模拟器启动失败问题

启动模拟器报错 解决步骤 1、“启用或关闭windows功能"勾选"hyper-v”、“windows虚拟机监控程序平台”、“虚拟机平台” 2、打开cpu虚拟化 打开bios,打开Intel Virtualization Technology 这样就可以了 在任务管理器可以看到已开启,编辑器…

Java基层医院信息化管理系统云HIS源码

医院信息系统(HIS)经历了从手工到单机再到局域网的两个阶段,随着云计算、大数据新技术迅猛发展,基于云计算的医院信息系统将逐步取代传统局域网HIS,以适应人们对医疗卫生服务越来越高的要求。 云HIS分系统功能 一、医疗业务子系统…

常用设计模式全面总结版(JavaKotlin)

这篇文章主要是针对之前博客的下列文章的总结版本: 《设计模式系列学习笔记》《Kotlin核心编程》笔记:设计模式【Android知识笔记】FrameWork中的设计模式主要为了在学习了 Kotlin 之后,将 Java 的设计模式实现与 Kotin 的实现放在一起做一个对比。 一、创建型模式 单例模…

word中MathType公式编号

直接上效果图: 步骤如下: 安装MathTypeword中安装MathType选项卡。设置MathType选项卡添加分隔符插入公式,自动生成右编码 接下来介绍每一步。 文章目录 1. 安装MathType2. Word中安装MathType选项卡3. 配置MathType选项4. 添加分隔符5. 插…

fiddler菜单汉化补丁

【Fiddler汉化补丁下载地址】 一、手机应用市场下载“头条搜索极速版”app 二、头条搜索极速版中搜索“葫芦娃指南”获取 三、汉化过程完整过程 1、安装Fiddler英文版 2、比如我将Fiddler安装在:D:\Programs\Fiddler 3、将【fiddler汉化】文件夹中的FiddlerT…

【Image】超硬核数学推导——WGAN的先“破”后“立”

GAN的实现 上一篇文章中我们说到了GAN的数学解释 min ⁡ G max ⁡ D V ( D , G ) E x ∼ p data ( x ) [ log ⁡ D ( x ) ] E z ∼ p z ( z ) [ log ⁡ ( 1 − D ( G ( z ) ) ) ] − log ⁡ 4 2 J S D ( p data ∥ p g ) ≥ − log ⁡ 4 , where [ p d a t a p g ] \mi…

SpringMVC源码解析——DispatcherServlet的逻辑处理

DispatcherServlet类相关的结构图如下: 其中jakarta.servlet.http.HttpServlet的父类是jakarta.servlet.GenericServlet,实现接口jakarta.servlet.Servlet。我们先看一下jakarta.servlet.Servlet接口的源码如下: /*** 定义所有servlet必须实…

cargo设置国内源 windows+linux

cargo默认的源比pip的源好多了,但是有时候速度还是很慢 一、部分国内源(排名不分先后) 这些源的格式用在具体的配置文件中 中国科学技术大学 [source.crates-io] replace-with ustc[source.ustc] registry "git://mirrors.ustc.ed…

【ARMv8M Cortex-M33 系列 2.3 -- SEGGER JFlash 烧写命令介绍】

请阅读【嵌入式开发学习必备专栏 之Cortex-M33 专栏】 文章目录 SEGGER JFlash 烧写命令介绍JFlash 配置文件 固件烧写地址介绍确定烧写地址 SEGGER JFlash 烧写命令介绍 本文以介绍烧写 Renesas RA4M2 为例,对 JFlash 进行简单介绍。它是 ARM Cortex-M33 微控制器…