在现代微服务架构中,应用的监控和可观测性变得至关重要。Datadog 和 New Relic 是该领域的商业巨头,但高昂的价格让许多中小团队望而却步。今天介绍的开源项目 SigNoz,让你零成本拥有企业级的应用性能监控能力。
项目简介
SigNoz 是一个开源的可观测性平台,GitHub 星标超过 2.6 万。它将日志(Logs)、指标(Metrics)和链路追踪(Traces)三种数据完美融合,为开发者提供全方位的应用性能监控能力。
SigNoz 是 Datadog、New Relic 等商业监控工具的开源替代方案,使用 ClickHouse 作为底层存储(同样被 Uber、Cloudflare 等大厂采用),在大数据量场景下依然保持出色的查询性能。
主要特色功能
1. 日志管理(Logs Management)
集中式日志管理,支持全文搜索和强大的查询构建器。可以快速筛选日志、创建图表监控日志指标、设置自定义仪表盘。ClickHouse 存储引擎保证了海量日志的快速检索。
2. 应用性能监控(APM)
开箱即用的应用性能图表,包括:
– P99、P95、P50 延迟分布
– 每秒请求数(RPS)
– 错误率
– 应用性能指数(Apdex)
同时支持数据库调用和外部服务调用的监控,帮助快速定位性能瓶颈。
3. 分布式链路追踪(Distributed Tracing)
在微服务架构中追踪请求的完整路径,从前端到后端到数据库。清晰的 Span 视图展示每个环节的耗时,便于定位延迟问题来源。
4. 基础设施监控
监控服务器 CPU、内存、网络等基础设施指标,全面了解系统健康状况。
5. 告警系统
灵活的告警规则,支持邮件、Slack、PagerDuty 等多种通知渠道。当指标异常时第一时间告警。
6. OpenTelemetry 原生支持
作为 OpenTelemetry 的原生支持者,SigNoz 可以接收来自任何 OpenTelemetry instrumentation 的数据,无需特定的 SDK 绑定。
7. 开源可自托管
完全开源,可以部署在自己的基础设施上,数据完全自主掌控,无供应商锁定风险。
系统要求
最小配置(每天处理百万级数据):
– 4 核 CPU
– 8GB 内存
– 50GB 磁盘
推荐配置(每天处理上亿级数据):
– 16+ 核 CPU
– 32GB+ 内存
– 500GB+ SSD 磁盘
安装步骤
方式一:Docker Compose 安装(推荐)
确保已安装 Docker 和 Docker Compose。
git clone https://github.com/SigNoz/signoz.git
cd signoz/deploy/
docker-compose -f docker-compose.yaml up -d
安装完成后访问 http://localhost:3301 打开 SigNoz 控制台。
方式二:Kubernetes 安装
如果使用 Kubernetes 集群,可以使用 Helm Chart 部署:
helm repo add signoz https://signoz.github.io/charts
helm install my-release signoz/signoz -n signoz –create-namespace
方式三:OTEL Collector 独立安装
如果只需要收集和转发数据,可以单独部署 OpenTelemetry Collector。
使用方法
第一步:安装并访问
通过 Docker Compose 或 Kubernetes 部署完成后,打开 SigNoz 控制台,首次使用需要注册账号。
第二步:Instrument 你的应用
为了收集应用的追踪数据,需要对应用进行插桩。SigNoz 支持 OpenTelemetry 标准,以下是主要语言的插桩方式:
Go 应用:
go get go.opentelemetry.io/contrib/instrumentation/github.com/gin/ginv4/otelgin
Python 应用:
pip install opentelemetry-distro opentelemetry-exporter-otlp
otelpy install
export OTEL_EXPORTER_OTLP_ENDPOINT=”http://localhost:4317″
otelpy instrument your_app.py
Node.js 应用:
npm install @opentelemetry/sdk-node @opentelemetry/auto-instrumentations-node
Java 应用(Spring Boot):
spring-cloud-starter-sleuth 与 OpenTelemetry 结合使用。
第三步:查看 APM 数据
应用启动后几分钟内,追踪数据就会出现在 SigNoz 中。可以查看:
– 应用概览:延迟、错误率、吞吐量
– 服务地图:各服务之间的调用关系
– 详细链路:单个请求的完整调用链
第四步:配置日志收集
如果需要收集应用日志,可以在应用中使用 OpenTelemetry SDK 发送日志到 SigNoz,或者使用 FluentBit 等日志收集器转发日志。
第五步:设置告警
进入 Alerts 页面创建告警规则,例如”错误率 > 5%”或”P99 延迟 > 2s”,设置通知渠道和接收人。
第六步:构建仪表盘
根据业务需求自定义仪表盘,添加各种图表监控关键业务指标。
适用场景
微服务架构监控:追踪请求在多个服务间的流转,快速定位问题服务。
电商平台:监控下单流程、支付流程的稳定性和性能。
金融系统:监控交易延迟、错误率等关键指标。
游戏后端:监控在线人数、服务器负载、匹配延迟等。
DevOps 团队:建立统一的监控体系,提升故障响应速度。
与 Datadog 对比
成本:SigNoz 完全免费,Datadog 按数据量收费,企业版价格昂贵
数据控制:SigNoz 可完全自托管,数据留在自己服务器
功能:Datadog 功能更全面,但 SigNoz 覆盖 APM 核心需求
学习曲线:SigNoz 更适合有技术背景的团队
开源协议
SigNoz 采用 NOASSERTION(自定义开源协议,允许自由使用)。
项目地址:https://github.com/SigNoz/signoz
官网:https://signoz.io









暂无评论内容