开源的Datadog?可观测性平台SigNoz是否名副其实?
SigNoz号称自己是开源领域的Datadog,基于OpenTelemetry做了一套可观测性方案。夜莺从V6版本开始,也希望做全栈可观测性方案,巧了,大家目标一致,今天我们一起来对SigNoz做个初步了解,看看其产品设计如何,也帮大家未来选型做参考。
1. SigNoz介绍
SigNoz is an open-source application performance monitoring tool that helps you monitor your applications and troubleshoot problems. SigNoz uses distributed tracing to gain visibility into your software stack.
SigNoz是一个开源的应用性能监控工具,帮助您监控应用程序并解决问题。SigNoz使用分布式跟踪来获得对软件堆栈的可见性。
点评:上面这个英文介绍是从其官网摘录的,从这个介绍中,我第一感受是SigNoz更侧重分布式链路追踪。
With SigNoz, you can do the following:
- Monitor application metrics such as latency, requests per second, error rates
- Monitor infrastructure metrics such as CPU utilization or memory usage
- Track user requests across services
- Set alerts on metrics
- Find the root cause of the problem by going to the exact traces which are causing the problem
- See detailed flame graphs of individual request traces
使用SigNoz,您可以做下面这些事情:
- 监控应用程序指标,如延迟、每秒请求、错误率
- 监控基础设施指标,比如CPU利用率或内存使用率
- 在多个服务之间追踪用户请求
- 在指标上设置警报
- 通过转到出问题的trace来找到问题的根本原因
- 查看单个请求trace的详细火焰图
点评:上面的介绍是SigNoz声称自己可以做到的事情,但是程度如何还未可知,不同的可观测性产品通常都说自己可以观测到软件的健康状况、可以定位根因,但真正用起来就会发现,要么数据不全,要么做得太浅,基本都只是把可观测性三大支柱的数据简单筒仓式罗列,真正好用的没几个。所以这样的宣传语看看就好,具体好不好用,还是要真正的去用一下才知道。
2. SigNoz架构

这个架构很清晰,SigNoz自身不提供采集器,完全复用 OpenTelemetry 的能力,不过 Otel Collector 这块它在架构图里冠以 SigNoz,不知道是否对社区的 Collector 做了二次开发,存储使用 ClickHouse,SigNoz 自己用 Go 开发了 Query Service 组件和 Alert Manager 组件,前端使用 React 开发。
从数据流上来讲,应用程序埋点推送监控数据给 Otel Collector,Otel Collector 对数据做初步处理,之后直接写入 ClickHouse,写入链路就算完事了。前端和 Alert Manager 对 ClickHouse 的查询会统一发给 Query Service,Query Service 会把 HTTP 请求转换为 ClickHouse 的 TCP 查询语句。
点评:链路追踪的 Span 数据存入 ClickHouse 这种列存存储,是越来越多公司的做法,长期数据扔到 S3 节省成本,也没毛病。对于日志数据,也有越来越多公司尝试存入 ClickHouse,SigNoz 显然也是把日志存入了 ClickHouse。不过,指标也存入 ClickHouse 的做法未必妥当,指标的标签是不固定的,但是 ClickHouse 是固定 Schema 的,难道直接扔到 Map 字段了?开源社区里指标的存储,笔者还是觉得 VictoriaMetrics、Thanos 是更好的选择。
3. SigNoz安装
最简单的安装方式是 Docker compose:
git clone -b main https://github.com/SigNoz/signoz.git && cd signoz/deploy/
docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d
笔者是 Macbook M1,可以正常运行:

我这只是初步测试尝试,所以直接使用 Docker compose 在笔记本运行了,生产环境运行的话,重点要关注 ClickHouse 的部署。
之后浏览器访问:http://localhost:3301/就可以看到 SigNoz 的登录页面了,随便输入用户名密码就可以登录了。第一个用户默认进来就是Admin。
4. SigNoz功能初体验

左侧菜单可以看出 SigNoz 的核心功能,我们挨个看一下。首先是 Services,即服务列表,即接入链路追踪系统的那些微服务,会展示每个服务的 P99 延迟、错误率、每秒请求数,显然是符合 RED 方法论的。上图截图就是这个页面。
Traces 菜单,是展示近期所有 Span,可以通过 Service Name、Operation、Status、Duration 等做筛选,如图:

点击某个 Span,可以跳转到相关的那个 Trace 的瀑布流图:

点评:以上功能其实都是 Trace 功能,相关竞品有 Skywalking、Zipkin、Jaeger 等。看起来 SigNoz 主打的也是 Trace,后面还有一个拓扑图的菜单,也是 Trace 相关的。只是简单看这些页面,感觉也基本够用。能够检索链路信息,也能根据 Trace 数据生成基本的 Metrics 数据,如果再能够从日志里跳转到 Trace,那就更好了(没有看到这个打通)。
Logs 菜单,是展示日志。当前效果图如下:

点击某个日志行,可以看到日志详情,日志体没有做字段拆解,可能还是需要引入 logstash 之类的组件才可以:

点评:初步体验下来,没有 ELK 的体验好,比如 Kibana 页面可以看到不同维度信息的 Top 视图,这才是可观测性产品应该提供的能力。只是提供基础数据还远远不够,把数据的特征展示出来,进而帮助用户建立观点洞察,最终形成 actionable insights,才是可观测性产品的核心价值所在。我看 SigNoz 也提供了 Cloud 产品,不知道是否做的更多一些,一些更牛的功能放到 Cloud 也是不错的商业决策。毕竟,全职研发人员有收入了才能反哺开源社区。
其他功能,比如 Dashboards、Alerts,在笔者看来还非常初级,Dashboards 还是 Grafana 做得更好一些,Alerts 这块则是 Nightingale 做得更好一些。
权限这块,SigNoz 分为 Admin、Editor、Viewer 三种角色,分别对应不同的权限,比如 Viewer 就只能看,不能操作,Editor 则可以做日常操作,Admin 则是最高权限,可以做所有操作。这块没有看到数据权限的控制,比如告警规则,没有更多分组划分,比如云平台的告警规则我想单独分组,单独一拨人管理,电商业务的告警规则单独分组,单独一拨人管理,目前看 SigNoz 是做不到的。
5. 总结
本文对 SigNoz 做了初探,不深入,导致有些评价可能有所偏颇,仅供参考。整体来看,如果使用 SigNoz 做 Trace,是可以尝试的,如果做日志方案,还是 ELK 方案更成熟,不过 ElasticSearch 日志存储成本比较高,如果只是存近期数据用于排障,ElasticSearch 是很好的选择,如果想存很久的数据,SigNoz 用 ClickHouse 存储,成本会低很多。Metrics 方面,不建议使用 SigNoz,Metrics 的成熟方案太多了,比如 Prometheus、InfluxDB、VictoriaMetrics 等,SigNoz 这块还是太初级了。不管大家用什么监控系统,最终的告警降噪、值班OnCall还是希望在一个平台解决,这块笔者还是推荐 FlashDuty。
今天就到这里,感谢大家阅读,欢迎大家留言评论,如果有公司把 SigNoz 用起来了,也欢迎分享使用感受,一起学习,交流进步。
开源的Datadog?可观测性平台SigNoz是否名副其实?的更多相关文章
- 《开源安全运维平台:OSSIM最佳实践》内容简介
<开源安全运维平台:OSSIM最佳实践 > 李晨光 著 清华大学出版社出版 内 容 简 介在传统的异构网络环境中,运维人员往往利用各种复杂的监管工具来管理网络,由于缺乏一种集成安全运维平台 ...
- 《开源安全运维平台OSSIM最佳实践》
<开源安全运维平台OSSIM最佳实践> 经多年潜心研究开源技术,历时三年创作的<开源安全运维平台OSSIM最佳实践>一书即将出版.该书用80多万字记录了,作者10多年的IT行业 ...
- Java开源生鲜电商平台-系统简介
Java开源生鲜电商平台-系统简介 1.生鲜电商平台的价值与定位. 生鲜电商平台是一家致力于打造全国餐饮行业智能化.便利化.平台化与透明化服务的创新型移动互联网平台,连接买家与卖家之间的一个平台 看以 ...
- Java开源生鲜电商平台-系统架构与技术选型(源码可下载)
Java开源生鲜电商平台-系统架构与技术选型(源码可下载) 1. 硬件环境 公司服务器 2. 软件环境 2.1 操作系统 Linux CentOS 6.8系列 2.2 反向代理/web服务器 ...
- Java开源生鲜电商平台-盈利模式详解(源码可下载)
Java开源生鲜电商平台-盈利模式详解(源码可下载) 该平台提供一个联合买家与卖家的一个平台.(类似淘宝购物,这里指的是食材的购买.) 平台有以下的盈利模式:(类似的平台有美菜网,食材网等) 1. 订 ...
- Java开源生鲜电商平台-用户表的设计(源码可下载)
Java开源生鲜电商平台-用户表的设计(源码可下载) 说明:由于该系统属于B2B平台,不设计到B2C的架构. 角色分析:买家与卖家. 由于买家与卖家所填写的资料都不一样,需要建立两站表进行维护,比如: ...
- Java开源生鲜电商平台-商品表的设计(源码可下载)
Java开源生鲜电商平台-商品表的设计(源码可下载) 任何一个电商,无论是B2C还是B2B的电商,商品表的设计关系到整个系统架构的核心. 1. 商品基本信息表:用单词:goods做为商品表 2. 商品 ...
- Java开源生鲜电商平台-订单表的设计(源码可下载)
Java开源生鲜电商平台-订单表的设计(源码可下载) 场景分析说明: 买家(餐馆)用户,通过APP进行选菜,放入购物车,然后下单,最终支付的流程,我们称为下单过程. 买家可以在张三家买茄子,李四家买萝 ...
- Java开源生鲜电商平台-支付模块的设计与架构(源码可下载)
Java开源生鲜电商平台-支付模块的设计与架构(源码可下载) 开源生鲜电商平台支付目前支持支付宝与微信.针对的是APP端(android or IOS) 1. 数据库表设计. 说明:无论是支付宝还 ...
- Java开源生鲜电商平台-购物车模块的设计与架构(源码可下载)
ava开源生鲜电商平台-购物车模块的设计与架构(源码可下载) 说明:任何一个电商无论是B2C还是B2B都有一个购物车模块,其中最重要的原因就是客户需要的东西放在一起,形成一个购物清单,确认是否有问题, ...
随机推荐
- BizWorks助力企业应用的高效开发与复用
简介: BizWorks作为企业级云原生应用数字工作台,能很好地支撑企业数字中台建设.云原生应用开发.企业资产运营管理等场景.本文不会全面介绍BizWorks平台的能力,而是着重介绍BizWorks在 ...
- 动态尺寸模型优化实践之Shape Constraint IR Part II
简介: 在本系列分享中我们将介绍BladeDISC在动态shape语义下做性能优化的一些实践和思考.本次分享的是我们最近开展的有关shape constraint IR的工作,Part II 中我们将 ...
- 性能提升 57% ,SMC-R 透明加速 TCP 实战解析 | 龙蜥技术
简介:SMC-R 是如何加速 TCP 应用? 编者按:TCP 协议作为当前使用最为广泛的网络协议,场景遍布移动通信.数据中心等.对于数据中心场景,通过弹性 RDMA 实现高性能网络协议 SMC-R, ...
- 快速界定故障:Socket Tracer网络监控实践
简介: Socket Tracer定位是传输层(Socket&TCP)的指标采集工具,通过补齐网络监控的这部分盲区,来达到快速界定网络问题的目标. 作者 | 四忌 来源 | 阿里技术公 ...
- [GPT] php查询mongo,触发了 operation exceeded time limit
"operation exceeded time limit"错误通常意味着查询所需的时间超过了MongoDB实例配置的操作超时限制. 这可以是由于查询需要处理大量数据或没有正 ...
- 使用 Uno Islands 在现有 WPF 里面嵌入 Uno 框架
随着 2022 9 月份 Uno 发布了 4.5 版本,现有的 WPF 应用多了一个新的开发模式,那就是通过 Uno Islands 技术,在现有的 WPF 应用里面嵌入 Uno 应用.通过此方式可以 ...
- dotnet 在国产 UOS 系统利用 dotnet tool 工具做文件传输
我在一台设备上安装了 UOS 系统,但是我如何在我的主开发设备上和 UOS 系统传输文件?通过 dotnet tool 工具可以完成大部分的工作,当然,使用 dotnet tool 不仅做文件传输,还 ...
- 一步步教你在 Windows 上构建 dotnet 系应用的 UOS 软件安装包
本文将详细指导大家如何逐步为 dotnet 系列应用创建满足 UOS 统信系统软件安装包的要求.在这里,我们所说的 dotnet 系列应用是指那些能够在 Linux 平台上构建 UI 框架的应用,包括 ...
- vue3.0 用vue ui 新建项目
安装步骤: 1.打开安装界面 打开cmd vue ui 2.选择要安装的位置 3.设置详情 4.设置预设 5.设置功能 选择Babel / Router / Linter/Formatter / 使用 ...
- 一篇文章掌握Python中多种表达式的使用:算术表达式、字符串表达式、列表推导式、字典推导式、_集合推导式、_生成器表达式、逻辑表达式、函数调用表达式
Python 中的表达式可以包含各种元素,如变量.常量.运算符.函数调用等.以下是 Python 表达式的一些分类及其详细例子: 1. 算术表达式 算术表达式涉及基本的数学运算,如加.减.乘.除等. ...