开源可观测性平台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.0
    container_name: sre-test
    restart: always
    privileged: true
    environment:
      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 -Xms512m
      SPRING_PROFILES_ACTIVE: poc
    volumes:
      - /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-metrics
          scrape_interval: 60s
          static_configs:
            - targets:
                - localhost:8888
              labels:
                job_name: otel-collector-metrics
        # SigNoz span metrics
        - job_name: signozspanmetrics-collector
          scrape_interval: 60s
          static_configs:
            - targets:
              - otel-collector:8889
###############新增配置开始###############
        - job_name: "mongo-test"
          scrape_interval: 60s
          static_configs:
            - targets: ["10.0.0.1:9216","10.0.0.2:9216","10.0.0.3:9216"]
        - job_name: "rabbitmq-test"
          scrape_interval: 60s
          static_configs:
            - targets: ["10.0.0.1:15692","10.0.0.2:15692","10.0.0.3:15692"]
###############新增配置结束###############         
processors:
  batch:
    send_batch_size: 10000
    send_batch_max_size: 11000
    timeout: 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等,可采用相同方案接入。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

40道MyBatis面试题带答案(很全)

1. 什么是MyBatis (1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接…

前端vue uni-app使用Vue和ECharts构建交互式树形结构图

题目:使用Vue和ECharts构建交互式树形结构图 摘要:本文介绍了如何使用Vue.js和ECharts构建一个交互式的树形结构图。通过整合ECharts的强大可视化功能,我们创建了一个可拖拽移动、点击展开和收缩的树形结构图,并实现了无限添加子…

ROS学习记录:用C++实现对wpr_simulation软件包中机器人的运动控制

一、在工作空间下输入catkin_make进行编译 二、在工作空间中输入source ./devel/setup.bash后回车 三、机器人的运动控制在wpr_simulation中有一个例子程序,在工作空间中输入: roslaunch wpr_simulation wpb_simple.launch后回车 四、就会启动一个仿真环…

计算机毕业设计 基于HTML5+CSS3的在线英语阅读分级平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

【Maven】下载及配置

文章目录 1. 定义2. 下载3. 解压4. 配置环境变量5. 验证6. 特性 1. 定义 Maven 是一个跨平台的项目管理工具。作为 Apache 组织的一个颇为成功的开源项目,其主要服务于基于 Java 平台的项目创建,依赖管理和项目信息管理,是一个自动化构建工具…

HTML---利用CSS3制作网页动画

文章目录 目录 文章目录 本章目标 一.CSS3概述 CSS函数概述 二.CSS3变形 transform属性 translate():平移函数 scale():缩放函数 rotate():旋转函数 skew():倾斜函数 三.CSS3过渡 四.CSS动画 练习 旋转按钮 本章目标 会使用…

AJAX: 整理2:学习原生的AJAX,这边借助express框架

1. npm install express 终端直接安装 2. 测试案例:Hello World! 新建一个express.js的文件,写入下方的内容 // 1. 引入express const express require(express)// 2. 创建服务器 const app express()// 3.创建路由规则 // request 是对请…

2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题)

2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题) 2023年全国网络安全行业职业技能大赛数据安全管理员操作技能赛题(样题) 第一部分:数据安全防护(30%) 第二部分:数据安全管理(30%) 第三部分:数据安全处置(40%) 项目介绍…

Python 中的 Iterable 和 Iterator(Iterable and Iterator in Python)

Python 中的 Iterable 和 Iterator(Iterable and Iterator in Python) 文章目录 Python 中的 Iterable 和 Iterator(Iterable and Iterator in Python)Introduction 导言Iterable VS Iterator为什么 Python 有这种特殊的设计special design?如何获取迭代器Iterator&#xff1f…

SpringCloud 和 Linux 八股文第三期五问五答

SpringCloud 和 Linux 八股文第三期五问五答 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的! ⭐点赞⭐收藏⭐不迷路!⭐ 1)Linux常用命令 2)如何查看测试项目的日志 一…

Docker (compose、安装、常用命令整理、compose编排) -day06

一、概念 Docker-Compose就是容器编排,负责实现对Docker容器集群的快速编排 Compose允许用户通过一个单独的docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)。 可以很容易地用一…

Python数值型字符串校验

从键盘输入一行字符串,编写Python代码判定字符串是python“合法”数值。 (笔记模板由python脚本于2023年12月25日 18:00:52创建,本篇笔记适合熟悉Python符串基本数据类型的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.py…

2023年终总结 —— 我和CSDN相遇的第一年之“技术学习和个人成长的回顾与展望”

​ ​ 🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 🎊对2023的总结与回顾🎊 🏅获奖记录 📚学…

1、gdb基本功能

文章目录 1、gdb1.1、运行1.1.1、程序入参 1.2、断点及观察点1.2.1、设置断点1.2.2、禁用、删除断点1.2.3、观察点 1.3、打印1.3.1、设定打印参数1.3.2、打印数据1.3.3、自动打印1.3.4、按照地址打印 linux下我现在接触到的常用调试工具如下. gbdgdbguicmake-tools gdb是最为通…

SLAM学习入门--传统图像处理

文章目录 传统图像处理颜色空间高斯滤波腐蚀和膨胀开运算和闭运算如何求一张图片的均值?线性插值双线性插值仿射变换透视变换常见的边缘检测算子Sobel 算法Canny 算法Hough 变换原理(直线和圆检测)找轮廓(findCountours&#xff0…

【网络安全 | Misc】Aesop_secret(ISCC)

正文 动态gif,使用工具进行分解: https://tu.sioe.cn/gj/fenjie/ 得到ISCC字样 由Winhex看到密文: U2FsdGVkX19QwGkcgD0fTjZxgijRzQOGbCWALh4sRDec2w6xsY/ux53Vuj/AMZBDJ87qyZL5kAf1fmAH4Oe13Iu435bfRBuZgHpnRjTBn5xsDHONiR3t0Oa8yG/tOKJMN…

故障诊断模型 | Maltab实现PSO-BP粒子群算法优化BP神经网络的故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现PSO-BP粒子群算法优化BP神经网络的故障诊断 模型描述 在机器学习领域,我们常常需要通过训练数据来学习一个函数模型,以便在未知的数据上进行预测或分类。传统的神经网络模型需…

【大模型的前世今生】从自然语言处理说起

自然语言处理(Natural Language Processing,简称NLP)被誉为人工智能皇冠上的明珠,是计算机科学和人工智能领域的一个重要方向。它主要研究人与计算机之间,使用自然语言进行有效通信的各种理论和方法。简单来说&#xf…

基于 CefSharp 实现一个文件小工具

I’m not saying you can’t be financially successful I’m saying have a greater purpose in life well beyond the pursuit of financial success Your soul is screaming for you to answer your true calling You can change today if you redefine what success is to …

网络安全—认证技术

文章目录 加密认证对称密钥体制公钥密码体制公钥的加密公钥身份认证和加密 鉴别码认证MAC鉴别码 报文摘要认证认证 加密只认证数字签名 通过了解以前前辈们使用的消息认证慢慢渐进到现代的完整的认证体系。所以在学习的时候也很蒙圈,因为前期的很多技术都是有很严重…