开源的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都有一个购物车模块,其中最重要的原因就是客户需要的东西放在一起,形成一个购物清单,确认是否有问题, ...
随机推荐
- 从中间件到分布式数据库,PolarDB-X的透明之路
简介: PolarDB-X前身是淘宝内部使用的分库分表中间件TDDL(2007年,Java库的形态),早期以DRDS(2012年开始研发,2014年上线,分库分表中间件+MySQL Proxy的形态) ...
- MSE 治理中心重磅升级-流量治理、数据库治理、同 AZ 优先
简介: 本次 MSE 治理中心在限流降级.数据库治理及同 AZ 优先方面进行了重磅升级,对微服务治理的弹性.依赖中间件的稳定性及流量调度的性能进行全面增强,致力于打造云原生时代的微服务治理平台. 作者 ...
- 比Bloom Filter节省25%空间!Ribbon Filter在Lindorm中的应用
简介: 本文研究了一种新的过滤器Ribbon Filter,并将其集成到Lindorm中 作者:箫苏 朝戈 正研 1 前言 Lindorm是一个低成本高吞吐的多模数据库,目前,Lindorm是阿里内部 ...
- Quick BI新版本功能解读系列之-V3.5
前言Quick BI V3.5版本于2019年11月底正式发布啦!本次大版本在智能.开放.以及可视化等方面都有重磅上新,具体包含智能小Q.开放数据服务.主题模板.以及散点图.地图系列等一系列功能的发布 ...
- 什么是 IDA 工具
中文名:交互式反编译器 英文名:Interactive Disassembler Professional 为众多 0day 世界的成员和 ShellCode 安全分析人士不可缺少的利器! IDA P ...
- 记 dotnet 8.0.4 修复的 WPF 的触摸模块安全问题
本文记录 dotnet 8.0.4 版本修复的 WPF 的触摸模块安全问题,此问题影响所有的 .NET 版本,修复方法是更新 SDK 和运行时 宣布安全漏洞地址: https://github.com ...
- 支持 dotnet 6 的 dnSpy 神器版本
官方的 dnSpy 在 2021 时,由于某些吃瓜的原因 wtfsck 将 dnSpy 给 Archived 掉,在大佬被哄好之前,预计是不再更新.最新官方版本对 dotnet 6 的支持较弱,对于很 ...
- 2019-8-31-C#-如何引用-WshShell-类
title author date CreateTime categories C# 如何引用 WshShell 类 lindexi 2019-08-31 16:55:58 +0800 2019-3- ...
- nginx+uwsgi介绍
一.nginx+uwsgi介绍 pip list # 查看安装过的模块 rpm -q nginx # 查看是否安装某款服务 pip install django == 1.11.11 # 安装djan ...
- RK 平台安装 ubuntu 系统
一.简介 之前有介绍到 ARM 平台移植 ubuntu 的操作流程,在 RK 系列的平台同样适用,所以这里就不介绍怎么一步步的去对 ubuntu 进行移植,而是怎么将移植的过程编写成脚本,这样便可以在 ...