博客/工程

如何用Elasticsearch和Grafana在Tempo中找到踪迹

2020年12月7日3分钟

Grafana节奏,最近宣布分布式跟踪后端,依赖于与其他数据源的集成来进行跟踪发现。Tempo的工作是存储大量的跟踪,将它们放在对象存储中,并按ID检索它们。日志和其他数据源允许用户比以前更快更强大地直接跳转到跟踪。

以前我们调查发现的痕迹洛基和范例.在这篇文章中,我们将探索使用另一种日志替代方案Elasticsearch和Grafana来直接从您的日志构建到跟踪的链接。

我们开始吧

我们用a演示回购它将引导我们设置Elasticsearch和Tempo来存储我们的日志和跟踪。此外,我们将使用Grafana来可视化我们的数据源,并提供从日志中发现跟踪的简单机制。如果你也想尝试的话,主自述包中包含了逐步的说明!

还要指出的是,我远非Elasticsearch专家洛基这里是Grafabob电竞频道na实验室。如果你看到任何明显的问题,请随时使公关更新的例子!

设置从Elasticsearch到Tempo的链接的技巧是使用数据链路.在Elasticsearch数据源配置中,它看起来像这样:

有了这个配置,Grafana将查找一个名为“traceID”的Elasticsearch字段。如果找到一个,Grafana将使用这个ID构建到Tempo数据源的链接。

在我们正确设置了这个链接之后,在Explore中,我们可以直接从日志跳转到跟踪:

现在,您的Elasticsearch日志后台的所有功能都可以用于查找跟踪!

关于logfmt的说明

Elasticsearch生态系统似乎主要面向JSON日志记录,但在Grafana实验室,bob电竞频道logfmt是日志的首选格式。为了从Elasticsearch字段中获取链接,我们需要提取logfmt键/值对,并将它们作为Elasticsearch字段插入。

我们使用Filebeat和自定义管道处理器要做到这一点,但似乎也许原木藏随一个第三方处理器也许这是一条更好的道路。

通过上面的配置,下面的日志行…

level=info msg="HTTP client success" status=200 url=http://tns-db duration=2.213011ms traceID=2bd4c457541a72fa

在Elasticsearch中被解析为以下字段:

显然,如果您使用Elasticsearch作为日志记录后端,您可能已经知道如何从日志中提取值并将它们作为字段公开。所以,选择对你有效的方法吧!

最终的想法

Tempo是一种用于大量微量摄入的神奇新工具,但它依赖于外部来源来发现微量。在过去的文章中,我们研究了使用Loki和示例,但我们也知道Elasticsearch是一个非常常见的日志后端。

希望那些喜欢弹性日志的人可以使用例子和信息在这里设置自己的日志到跟踪流,并开始发现跟踪!

你可以获得免费的开放测试访问TempoGrafana云.我们有新的免费和付费Grafana云计划,以适应每一个用例-现在就免费注册

分享你的反馈Grafana松弛#tempo频道或tempo-users谷歌组,告诉我们是否有其他你想看的tempo教程或教程。一定要看我们的ObservabilityCon会议,“用Grafana简化跟踪,”深入了解Tempo的需求。