共计 1732 个字符,预计需要花费 5 分钟才能阅读完成。
前言
我已经在我的 OpenTelemetry
系列文章中介绍了应用 OpenTelemetry
社区提供的一系列工具和来实现可观测性的能力。然而从理论的应用角度来说,每一个环节都不是简略的配置就可能释怀在生产环境应用的。包含数据的大量产生后的并发解决,collector
的多实例部署,数据的存储问题等等。这些都没法间接在 OpenTelemetry
社区找到现成的解决方案。对于应用的人来说须要的是一个残缺的解决方案,而不是一个一个的开源我的项目。明天就在这里介绍一个开源的性能监控平台SigNoz
。
SigNoz 介绍
SigNoz
是一个开源的性能监控工具,能够用来监控应用程序。SigNoz
应用分布式跟踪取得可见性。
SigNoz
在很多中央是基于 OpenTelemetry
体系的,他的 collector
是基于 OpenTelemetry Collector
的,他的客户端采样形式也是基于OpenTelemetry
。
从架构图咱们能够看到 SigNoz
基于 OpenTelemetry Collector
研发了本人的 collector
,这个collector
能够接管 app 的数据上报,也能接管 OpenTelemetry Collector
的二次散发。SigNoz
的存储应用的 ClickHouse
,后端 API 和告警服务应用的Golang
开发,前端则应用的是React
。
SigNoz 应用
为了体验 SigNoz
提供的能力,咱们就先来本地进行一下装置。
本地装置
本地装置有多种形式,然而在此处倡议应用 docker
来进行装置。装置前须要确保 3301 4317 4318
三个端口是可用的。
首先,执行:
git clone -b main https://github.com/SigNoz/signoz.git && cd signoz/deploy/
将 signoz
我的项目 clone 下来并进入 deploy
目录。
而后执行:
docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d
装置实现后能够看到如下的一系列镜像:
拜访 http://localhost:3301/
就可能看到页面,之后发动注册
实现登陆:
应用
SigNoz
体系曾经搭建实现,当初咱们就可能开始进行应用了。首先咱们须要接入 OpenTelemetry
的 SDK,这个在我的 OpenTelemetry
系列文章中有提到过,这里就不赘述了。大家能够选用本人的语言匹配的 SDK。在此处我应用的是 OpenTelemetry Java Instrumentation
即 Java Agent 模式。
我在此应用了两个基于 SpringBoot
的测试利用:spring-provider
和 spring-receiver
。这两个利用仅仅蕴含了一般的申请和OpenFeign
申请。
在 Trace
看板中,咱们自定义筛选条件,自定义图标的选项来查看不同维度的 Trace
数据,在下方的列表页中抉择一行点进去会跳转到 Trace
的详情页,在详情页中能够看到链路的具体调用信息,Span 等维度的数据。
从 Service
中找到一个具体的服务进入其详情页就能看到一些 Metrics
的数据:
在 metrics 的图表中会有 99 线,95 线等维度。
在 Logs
中能够查看服务的日志信息,目前 Logging
维度在 OpenTelemetry
中还未齐全的 GA,配套的 collector
等都还在疾速迭代中,因而 SigNoz
的这部分也还是在 Beta
中。
在 ServiceMap
中能够看到服务的调用图谱
SigNoz
也提供了告警的能力,在 Alert
面板中能够配置不同类型的告警
在这里配置一个 Trace 的告警须要有如下的三个步骤:
- 应用数据库查问语句定义度量指标
- 定义告警条件
- 其余告警配置
配置结束后保留就可能看到配置的告警了。
总结
总的来说相比本人搭建 OpenTelemetry
的整个采集体系,而后别离用 jaeger
来查看 trace,用 prometheus
来查问 metrics,SigNoz
整合了 Trace
,Metrics
,Logging
等的一些列的聚合,展现与治理。他是一个可观测体系平台的汇合,有着丰盛的能力。在本片中介绍到的仅仅是他的能力的一部分,有趣味的敌人能够本人去本地装一下体验一下。