网站搜索

Apache Kafka 和 SigNoz 的应用程序可观察性


SigNoz 帮助开发人员以最小的努力快速实现他们的可观察性目标。

SigNoz 是一个开源应用程序可观察性平台。 SigNoz 采用 React 和 Go 构建,是从头开始编写的,旨在让开发人员能够以最小的努力尽快开始实现他们的可观察性目标。

本文详细介绍了该软件,包括架构、基于 Kubernetes 的部署以及一些常见的 SigNoz 用途。

签名Noz架构

SigNoz 将多个组件结合在一起,创建一个易于上手的可扩展、松散耦合的系统。一些最重要的组件是:

  • 打开遥测收集器
  • 阿帕奇·卡夫卡
  • 阿帕奇德鲁伊

OpenTelemetry Collector 是跟踪或指标数据收集引擎。这使得 SigNoz 能够以行业标准格式获取数据,包括 Jaeger、Zipkin 和 OpenConsensus。然后收集的数据被转发到 Apache Kafka。

SigNoz 使用 Kafka 和流处理器实时摄取大量可观测数据。然后,这些数据被传递给 Apache Druid,它擅长存储此类数据以进行短期和长期 SQL 分析。

一旦数据被扁平化并存储在 Druid 中,SigNoz 的查询服务就可以查询数据并将其传递到 SigNoz React 前端。然后,前端创建漂亮的图表,供用户可视化可观测性数据。

(尼蒂什·蒂瓦里,CC BY-SA 4.0)

安装SigNoz

SigNoz 的组件包括 Apache Kafka 和 Druid。这些组件松散耦合并协同工作,以确保最终用户获得无缝体验。考虑到所有组件,最好在 Kubernetes 或 Docker Compose(用于本地测试)上将 SigNoz 作为微服务组合运行。

此示例使用基于 Kubernetes Helm 图表的部署在 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 发送仪器数据。

(尼蒂什·蒂瓦里,CC BY-SA 4.0)

指标

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

(尼蒂什·蒂瓦里,CC BY-SA 4.0)

追踪

跟踪页面按时间顺序列出了每个请求以及高级详细信息。一旦您识别出感兴趣的单个请求(例如,完成某件事需要比预期更长的时间),您就可以单击跟踪并查看该请求中发生的每个操作的各个范围。深入分析模式可为每个请求提供彻底的检查。

(尼蒂什·蒂瓦里,CC BY-SA 4.0)

(尼蒂什·蒂瓦里,CC BY-SA 4.0)

使用浏览器

大多数指标和跟踪数据都非常有用,但仅限于特定时期。随着时间的推移,数据在大多数情况下不再有用。这意味着规划适当的数据保留期限非常重要;否则,您将支付更多的存储费用。使用情况浏览器提供每小时、每天和每周摄取数据的概述。

(尼蒂什·蒂瓦里,CC BY-SA 4.0)

添加仪器

到目前为止,您已经查看了示例 HotROD 应用程序中的指标和跟踪。理想情况下,您需要对应用程序进行检测,以便将可观测性数据发送到 SigNoz。请按照 SigNoz 网站上的仪器概述来执行此操作。

SigNoz 支持与供应商无关的仪器库 OpenTelemetry,作为配置仪器的主要方式。 OpenTelemetry 提供各种语言的检测库,支持自动和手动检测。

了解更多

SigNoz 帮助开发人员快速开始使用指标和跟踪应用程序。要了解更多信息,您可以查阅文档、加入社区并访问 GitHub 上的源代码。

相关文章: