SigNoz 是一个开源应用程序可观测性平台。SigNoz 使用 React 和 Go 构建,从头开始编写,旨在让开发者能够尽快且轻松地开始实现他们的可观测性目标。
本文详细介绍了该软件,包括架构、基于 Kubernetes 的部署以及一些常见的 SigNoz 用例。
SigNoz 架构
SigNoz 将多个组件结合在一起,创建了一个可扩展、松耦合的系统,易于上手。其中一些最重要的组件包括
- OpenTelemetry Collector
- Apache Kafka
- Apache Druid
OpenTelemetry Collector 是跟踪或指标数据收集引擎。这使 SigNoz 能够摄取行业标准格式的数据,包括 Jaeger、Zipkin 和 OpenConsensus。然后,收集的数据被转发到 Apache Kafka。
SigNoz 使用 Kafka 和流处理器来实时摄取大量可观测性数据。然后将这些数据传递给 Apache Druid,后者擅长存储此类数据以进行短期和长期 SQL 分析。
一旦数据被展平并存储在 Druid 中,SigNoz 的查询服务就可以查询数据并将其传递给 SigNoz React 前端。然后,前端创建漂亮的图表,供用户可视化可观测性数据。

(Nitish Tiwari,CC BY-SA 4.0)
安装 SigNoz
SigNoz 的组件包括 Apache Kafka 和 Druid。这些组件松散耦合,协同工作,以确保最终用户获得无缝体验。考虑到所有组件,最好将 SigNoz 作为微服务的组合在 Kubernetes 或 Docker Compose(用于本地测试)上运行。
此示例使用基于 Kubernetes Helm chart 的部署在 Kubernetes 上安装 SigNoz。作为前提条件,您需要一个 Kubernetes 集群。如果您没有可用的 Kubernetes 集群,可以使用 MiniKube 或 Kind 等工具在本地机器上创建一个测试集群。请注意,机器应至少有 4GB 可用空间才能正常工作。
在您拥有可用的集群并配置 kubectl 与集群通信后,运行
$ git clone https://github.com/SigNoz/signoz.git && cd signoz
$ helm dependency update deploy/kubernetes/platform
$ kubectl create ns platform
$ helm -n platform install signoz deploy/kubernetes/platform
$ kubectl -n platform apply -Rf deploy/kubernetes/jobs
$ kubectl -n platform apply -f deploy/kubernetes/otel-collector
这将在集群上安装 SigNoz 和相关容器。要访问用户界面 (UI),请运行 kubectl port-forward
命令;例如
$ kubectl -n platform port-forward svc/signoz-frontend 3000:3000
现在您应该可以使用本地浏览器通过地址 http://localhost:3000
访问您的 SigNoz 仪表板。
现在您的可观测性平台已启动,您需要一个生成可观测性数据的应用程序来进行可视化和跟踪。对于此示例,您可以使用 HotROD,这是 Jaegar 团队开发的示例应用程序。
要安装它,请运行
$ kubectl create ns sample-application
$ kubectl -n sample-application apply -Rf sample-apps/hotrod/
探索功能
现在您应该有一个示例应用程序,其中在演示设置中正确地进行了检测。查看 SigNoz 仪表板以获取指标和跟踪数据。当您进入仪表板主页时,您将看到所有已配置的应用程序的列表,这些应用程序正在向 SigNoz 发送检测数据。

(Nitish Tiwari,CC BY-SA 4.0)
指标
当您单击特定应用程序时,您将进入应用程序的主页。“指标”页面显示最近 15 分钟(此数字可配置)的信息,例如应用程序延迟、平均吞吐量、错误率以及应用程序正在访问的热门端点。这使您可以鸟瞰应用程序的状态。错误、延迟或负载的任何峰值都立即可见。

(Nitish Tiwari,CC BY-SA 4.0)
跟踪
“跟踪”页面按时间顺序列出每个请求,并提供高级详细信息。一旦您确定了感兴趣的单个请求(例如,某些完成时间超出预期的请求),您可以单击跟踪并查看该请求内发生的每个操作的各个 span。向下钻取模式为每个请求提供全面的检查。

(Nitish Tiwari,CC BY-SA 4.0)

(Nitish Tiwari,CC BY-SA 4.0)
使用情况浏览器
大多数指标和跟踪数据都非常有用,但仅在一定时期内有用。随着时间的推移,在大多数情况下,数据不再有用。这意味着规划适当的数据保留期限非常重要;否则,您将为存储支付更多费用。“使用情况浏览器”提供了按小时、天和周摄取的数据的概览。

(Nitish Tiwari,CC BY-SA 4.0)
添加检测
到目前为止,您一直在查看示例 HotROD 应用程序的指标和跟踪。理想情况下,您需要检测您的应用程序,以便它将可观测性数据发送到 SigNoz。请按照 SigNoz 网站上的检测概述进行操作。
SigNoz 支持供应商无关的检测库 OpenTelemetry 作为配置检测的主要方式。OpenTelemetry 为各种语言提供检测库,并支持自动和手动检测。
了解更多
SigNoz 帮助开发者快速开始使用指标和跟踪应用程序。要了解更多信息,您可以查阅文档,加入社区,并访问 GitHub 上的源代码。
评论已关闭。