作者:来自 Elastic Alex Fedotyev

Elastic 将跟踪数据引入 Discover。看看你如何将即席数据探索和 ES|QL 的功能应用到你的跟踪数据中。
在可观测性领域,上下文至关重要。多年来,Elastic APM 提供了专门的视图和功能,用于了解应用和服务的健康状况。当你需要了解结账服务的性能时,可以直接访问其专用页面,查看关键指标如延迟和吞吐量,并直接访问相关事务和错误。这种以实体为中心的视图对有针对性的监控和诊断非常宝贵。
但当问题不局限于单个服务时,会发生什么?如果你需要提出更复杂的探索性问题,跨越整个数据集,该怎么办?比如:
-
显示所有某个用户体验延迟超过两秒的跟踪,并将其与同时发生的前端错误关联起来。
-
是否有仅针对高级套餐客户的慢数据库查询?
-
哪个特定的 RPC 调用是三个不同微服务中共同的失败来源?
历史上,回答这些问题是可行的,但需要在不同 UI 之间切换并手动拼凑线索,体验不够流畅,这是各类可观测性平台的常见挑战。
今天,我们很高兴宣布跟踪搜索和分析的一项关键改进。我们将跟踪数据原生引入 Discover,并配备集成的跟踪瀑布视图。你现在可以将即席数据探索和 ES|QL 的全部功能应用到跟踪数据上。
从精选视图到更广泛的数据探索
Discover 是 Elastic Stack 中数据探索的主要界面。它是一个工作台,你可以自由探索、过滤和关联所有索引的数据。通过将跟踪数据整合到此环境中,你现在可以超越 APM 的精选视图,进行更灵活的调查,按任意跟踪属性搜索。
你现在可以轻松搜索单个 span 或错误,按 OpenTelemetry 资源属性和 span 属性过滤,并分析复杂场景,而无需离开你熟悉的 Discover 界面。
一个实际场景:解开慢速 API 的问题
假设一个用于下单的关键前端 API 出现间歇性变慢。你的团队可以通过 APM 服务视图确认高延迟,但根本原因尚不明显。慢速问题似乎发生在复杂微服务调用链的深处。
这就是新的 Discover 功能特别有用的地方。
你现在可以直接在 Discover 中启动调查,通过一个广泛的 ES|QL 查询查找该特定端点的最慢事务。下面的示例使用 OpenTelemetry demo,你也可以在 OpenTelemetry demo 中自己尝试。
ES|QL
sql
`
1. FROM traces-*
2. | WHERE span.name == "oteldemo.CheckoutService/PlaceOrder"
3. | SORT span.duration.us DESC
`AI写代码

这个简单的查询显示了最有问题的事务。在结果表中,点击任意跟踪即可在 Discover 中直接打开详细的端到端跟踪瀑布图 ------ 无需切换上下文,也无需新开浏览器标签页。

瀑布图显示,下游的货币服务响应时间过长。但为什么会这样?你现在可以优化你的 ES|QL 查询,提出更复杂的问题,深入 span 属性,找出导致瓶颈的具体下游服务调用:
ES|QL
sql
`1. FROM traces-*
2. | WHERE service.name == "currency" and span.name == "Currency/Convert"
3. | SORT span.duration.us DESC`AI写代码
通过这个查询,你可以立即找到影响下单 API 的货币服务中的精确 span。你可以查看所有 span 的详细信息和属性、持续时间,以及提供完整事务上下文的 trace.id。
整个工作流程现在只需一个工具 Discover,就能进行迭代的发现和优化。
统一体验的好处
这些新功能简化了原本难以实现的复杂工作流程:
-
关联一切:将跟踪过滤与日志信息、基础设施指标或 Elasticsearch 中的其他数据结合。找到慢速跟踪后,可以立即在单一视图中查看受影响 pod 的对应日志。
-
增强灵活性:超越预定义过滤器。使用 ES|QL 的全部功能,根据任意属性对跟踪数据进行分组、聚合和过滤,提供全面的数据分析选项。
-
集成体验:从高层 ES|QL 查询直接进入详细的跟踪瀑布图,无需中断调查流程。
展望未来:在 Discover 中进行调查
Discover 中的跟踪,由 ES|QL 提供支持,提供了灵活且强大的调查工具。这只是开始,未来还将包括改进的 span、日志和异常之间的关联,更多 ES|QL 命令以及强大的 UI,使复杂跟踪分析更加容易。
我们邀请你亲自体验。带上你最复杂的问题和最棘手的 bug,现在你可以在 Discover 中更直接地找到答案。此功能已在 Serverless 上可用。自行托管 Elastic 的现有用户需要升级到 8.19+ 或 9.1+ 才能访问。
今天就在 Elastic Cloud 或 OpenTelemetry demo上试用吧。我们期待你在 Discover 中探索跟踪时的反馈!