
Tempo
是Grafana Labs在ObservabilityCON 2020
大会上新开源的一个用于做分布式式追踪的后端服务。它和Cortex、Loki一样,Tempo也是一个兼备高扩展
和低成本
效应的系统。之前小白有提到Grafana Labs的云原生Observability宇宙只剩下trace部分,那么今天就拿Loki的分布式追踪来体验下这Observability的最后一环吧。
关于Tempo
Tempo本质上来说还是一个存储系统,它兼容一些开源的trace协议(包含Jaeger、Zipkin和OpenCensus等),将他们存在廉价的S3存储中,并利用TraceID与其他监控系统(比如Loki、Prometheus)进行协同工作。


可以看到Tempo的架构仍然分为distributor
、ingester
、querier
、tempo-query
、compactor
这几个架构,熟悉Loki和Cortex的朋友可能光看名字就知道他们大概是做什么的。不熟悉的同学也没关系,下面简单说下各模块的作用:
- distributor
启动多个端口,分别接受来自Jaeger、Zipkin和OpenCensus协议的数据,按照TraceID进行哈希并映射到哈希环上,并交由ingester进行存储处理。当前distributor支持的trace协议如下:

- ingester
具体负责trace数据的块存储(memcache、GCS、S3)、缓存(Memcache)和索引的处理
- querier
负责从ingester和后端存储里面捞取trace数据&#