signoz 参考架构设计

参考图

从下图可以看出signoz 主要包含的组件
collector 使用了社区的,数据存储基于clickhouse ,对于prometheus 的writer 使用了

 

 

 

query service 处理部分

  • prometheus 集成

参考图
直接嵌入了prometheus,使用了prometheus 的remote read 同时基于prometheus 的alert rule 解决报警的问题(需要集成一个alertmanager)

 

 

 

  • trace 部分

核心是利用了opentelemetry-collector,基于自己开发的clickhouse metrics writer 解决链路信息记录到clickhouse

 

 

 

一些问题

通过简单的分析signoz 的源码就可以发现,当前开源版本的signoz 包含一些问题

  • 集群问题(目前dashboar 使用了本地数据库,sqlite,当然可以调整)
  • 直接嵌入prometheus 做为一个嵌入的引擎可能会有查询问题(具体需要通过性能测试下)
  • 缺少多租户的支持(当然这部分对于metrics 的处理实际上我们可以调整扩展支持grafan 的minir 以及VictoriaMetrics,trace部分目前还真的不太好处理,可以自己调整)
  • 安全上不是很好(缺少完整的安全控制,当然需要自己扩展)
  • 目前clickhouse 的write 部分暂时没有开源(当然我们基于协议可以开发自己的)
  • 缺少日志处理(当然opentelemetry-collector 依然还在开发中,后续应该会有支持的)

说明

以上是通过阅读源码分析到的,整体signoz并不难,属于一个all-in-one 的架构设计,使用比较简单,但是目前测试以及源码分析上来看大规模使用可能会有点问题,如果后期grafan minir 支持了opentelemetry,我们基于此在结合signoz进行系统改造会是一个不错的模式

参考资料

https://github.com/open-telemetry/opentelemetry-collector
https://github.com/SigNoz/signoz

posted on 2022-04-01 22:00  荣锋亮  阅读(1039)  评论(0编辑  收藏  举报

导航