开源可观测性平台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等,可采用相同方案接入。
相关文章:
开源可观测性平台Signoz(四)【链路监控及数据库中间件监控篇】
转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 前文链接: 开源可观测性平台Signoz系列(一)【开篇】 开源可观测性平台Signoz&…...
【嵌入式开发 Linux 常用命令系列 4.2 -- git .gitignore 使用详细介绍】
文章目录 .gitignore 使用详细介绍.gitignore 文件的位置.gitignore 语法规则使用示例注意事项 .gitignore 使用详细介绍 .gitignore 文件是一个特殊的文本文件,它告诉 Git 哪些文件或目录是可以被忽略的,即不应该被纳入版本控制系统。这主要用于避免一…...
【熔断限流组件resilience4j和hystrix】
文章目录 🔊博主介绍🥤本文内容起因resilience4j落地实现pom.xml依赖application.yml配置接口使用 hystrix 落地实现pom.xml依赖启动类上添加注解接口上使用 📢文章总结📥博主目标 🔊博主介绍 🌟我是廖志伟…...
微服务雪崩问题及解决方案
雪崩问题 微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。 微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。 如果服务提供者A发生了故障,当前的应用的部分业务…...
008、所有权
所有权可以说是Rust中最为独特的一个功能了。正是所有权概念和相关工具的引入,Rust才能够在没有垃圾回收机制的前提下保障内存安全。 因此,正确地了解所有权概念及其在Rust中的实现方式,对于所有Rust开发者来讲都是十分重要的。在本文中&…...
千里马2023年终总结-android framework实战
背景: hi粉丝朋友们: 2023年马上就过去了,很多学员朋友也都希望马哥这边写个年终总结,因为这几个月时间都忙于新课程halsystracesurfaceflinger专题的开发,差点都忘记了这个事情了,今天特别花时间来写个bl…...
vue3中pinia的使用及持久化(详细解释)
解释一下pinia: Pinia是一个基于Vue3的状态管理库,它提供了类似Vuex的功能,但是更加轻量化和简单易用。Pinia的核心思想是将所有状态存储在单个store中,并且将store的行为和数据暴露为可响应的API,从而实现数据&#…...
安装 yarn、pnpm、功能比较
安装 yarn 官网:https://classic.yarnpkg.com/ 快速、可靠和安全的依赖性管理。 Yarn是您代码的软件包管理器。它允许您使用和共享(例如JavaScript)与来自世界各地的其他开发人员一起编写代码。Yarn是一个新的快速安全可信赖的可以替代 NP…...
计算机专业个人简历范文(8篇)
HR浏览一份简历也就25秒左右,如果你连「好简历」都没有,怎么能找到好工作呢? 如果你不懂得如何在简历上展示自己,或者觉得怎么改简历都不出彩,那请你一定仔细读完。 互联网运营个人简历范文> 男 22 本科 AI简历…...
几个实用网站
论文短语:https://www.phrasebank.manchester.ac.uk/ 翻译:https://www.deepl.com/en/translator 润色:https://quillbot.com/ 榜单:www.paperwithcode.com ****NLP民工的乐园: 几乎最全的中文NLP资源库:****https…...
Pycharm 切换interpreter---python的环境和第三方库问题
这篇回答两个问题: 1.为什么在 pycharm中打开新的project,切换interpreter 之后发现自己之前装的库消失了? 2.为什么 interpreter 切换到python3.8了, terminal 还是在 3.9?? 问题的关键:搞懂什…...
TP-LINK 路由器忘记密码 - 恢复出厂设置
TP-LINK 路由器忘记密码 - 恢复出厂设置 1. 恢复出厂设置2. 创建管理员密码3. 上网设置4. 无线设置5. TP-LINK ID6. 网络状态References 1. 恢复出厂设置 在设备通电的情况下,按住路由器背面的 Reset 按钮直到所有指示灯同时亮起后松开。 2. 创建管理员密码 3. 上网…...
关闭 Elasticsearch 集群的安全性设置
关闭 Elasticsearch 集群的安全性设置,特别是如果您正在使用 X-Pack,涉及到修改 Elasticsearch 的配置。以下是一般步骤,但请注意,这可能会使您的 Elasticsearch 集群面临安全风险,因此建议仅在开发或测试环境中执行此…...
[技术分享]一招解决 MySQL 中 DDL 被阻塞的问题
爱可生开源社区. 爱可生开源社区,提供稳定的MySQL企业级开源工具及服务,每年1024开源一款优良组件,并持续运营维护。 背景 之前碰到客户咨询定位DDL阻塞的相关问题,整理了一下方法,如何解决DDL被阻塞的问题。下面,就这个问题,整理了一下思路: 怎么判断一个 DDL 是…...
Windows搭建Emby媒体库服务器,无公网IP远程访问本地影音文件
文章目录 1.前言2. Emby网站搭建2.1. Emby下载和安装2.2 Emby网页测试 3. 本地网页发布3.1 注册并安装cpolar内网穿透3.2 Cpolar云端设置3.3 Cpolar内网穿透本地设置 4.公网访问测试5.结语 1.前言 在现代五花八门的网络应用场景中,观看视频绝对是主力应用场景之一&…...
自动化测试系列 之 Python单元测试框架unittest
一、概述 什么是单元测试 单元测试是一种软件测试方法,是测试最小的可测试单元,通常是一个函数或一个方法。 在软件开发过程中,单元测试作为一项重要的测试方法被广泛应用。 为什么需要单元测试 单元测试是软件开发中重要的一环…...
C语言朴素算法
#include <stdio.h> #include <string.h>// 朴素算法,用于字符串匹配 void naiveMatch(char* text, char* pattern) {int textLength strlen(text); // 计算文本串长度int patternLength strlen(pattern); // 计算模式串长度for …...
【力扣题解】P501-二叉搜索树中的众数-Java题解
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P501-二叉搜索树中的众数-Java题解🌏题目描述💡题解…...
Wnmp本地部署结合内网穿透实现任意浏览器远程访问本地服务
最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1…...
深信服AF防火墙配置SSL VPN
防火墙版本:8.0.85 需提前确认防火墙是是否有SSL VPN的授权,确认授权用户数量 1、确认内外网接口划分 2、网络→SSL VPN,选择内外网接口地址 3、SSL VPN→用户管理→新增一个SSL VPN的用户 4、新增L3VPN资源,类型选择Other&…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
AspectJ 在 Android 中的完整使用指南
一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
