大家好,我是欧盆索思(opensource),每天为你带来优秀的开源项目!

不知道大家是否知晓 Grafana,如果不知晓,请自行查阅。今天推荐的这个开源项目是 Grafana Lab 出品的另一个开源项目,发布没几天就进入了 GitHub Trending 总榜单,排行第 3。

grafana的模板复用 grafana template_grafana的模板复用

这两年,基于微服务的分布式系统很流行,但这也无形中让系统更加复杂,排查问题更加不方便。于是出现了各种分布式追踪协议、系统,比较知名的有:Jaeger,Zipkin,OpenCensus 和 OpenTelemetry 等。那 Grafana Tempo 是干什么的呢?

Grafana Tempo 简介

Grafana Tempo 是一个开放源代码,易于使用的大规模分布式跟踪后端。Tempo 成本效益高,仅需要对象存储即可运行,并且与 Grafana,Prometheus 和 Loki 深度集成。Tempo 可以与任何开源跟踪协议一起使用,包括 Jaeger,Zipkin 和 OpenTelemetry。它仅支持键/值查找,并且旨在与用于发现的日志和度量标准(示例性)协同工作。

Tempo 与 Jaeger,Zipkin,OpenCensus 和 OpenTelemetry 兼容。它以任何上述格式提取批处理,对其进行缓冲,然后将其写入 GCS,S3 或本地磁盘。因此,它坚固,便宜且易于操作!

简单说,Tempo 是一个分布式追踪系统,你可以使用 Jaeger,Zipkin,OpenCensus 和 OpenTelemetry 中的任何一个追踪协议。

关于为什么开发 Tempo 这个系统,官方给了如下说明:

在 Grafana Labs,我们希望我们的跟踪系统总是能够回答这样的问题: “为什么这个客户的查询速度很慢? ”“一个间歇性的错误又出现了。我能看到确切的痕迹吗? ”我们发现我们自己想要 100% 的抽样,但不想管理 Elasticsearch 或 Cassandra 集群来完成它。

此外,他们发现跟踪后端不需要索引跟踪。可以通过日志和样本发现痕迹。为什么要花钱索引你的痕迹、你的日志和你的指标?我们所需要的只是一台精简的、简单的、按 id 进行追踪的存储机器。所以他们创造了 Tempo。

Tempo 的架构如下:

grafana的模板复用 grafana template_grafana官方使用文档_02

查询界面:

grafana的模板复用 grafana template_grafana官方使用文档_03

Tempo 项目地址:https://github.com/grafana/tempo