网络营销与网站推广的区别,秦皇岛哪里做网站,前端如何优化seo,小公司做网站转载说明#xff1a;如果您喜欢这篇文章并打算转载它#xff0c;请私信作者取得授权。感谢您喜爱本文#xff0c;请文明转载#xff0c;谢谢。 前文链接#xff1a;
开源可观测性平台Signoz系列#xff08;一#xff09;【开篇】
开源可观测性平台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.attributesservice.namespacetest,service.namezrtc-api,deployment.environmentpoc -Dotel.metrics.exporternone -Dotel.exporter.otlp.endpointhttp://${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但是jaegerzipkin等等也在支持的范围之内可以根据自己的需求进行配置。
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
[roottest102 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.attributesservice.namespacetest,service.namesre-test,deployment.environmentpoc -Dotel.metrics.exporternone -Dotel.exporter.otlp.endpointhttp://10.0.0.101:4317 -Xmx512m -Xms512mSPRING_PROFILES_ACTIVE: pocvolumes:- /home/otel/jar:/jar ###挂载jar包目录
[roottest102 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-testscrape_interval: 60sstatic_configs:- targets: [10.0.0.1:9216,10.0.0.2:9216,10.0.0.3:9216]- job_name: rabbitmq-testscrape_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等可采用相同方案接入。