作者:来自 Elastic Alex Fedotyev

Elastic 把 traces 引入 Discover。看看你如何把临时数据探索和 ES|QL 的功能应用到你的 tracing 数据中。
在可观测性领域,语境为王。多年来,Elastic APM 提供了专门的视图和功能,用于理解应用和服务的健康状况。当你需要知道结账服务的表现时,你可以直接进入它的专用页面,查看延迟和吞吐量等关键指标,并直接访问相关的事务和错误。这种以实体为中心的视图对有针对性的监控和诊断来说是无价的。
但是,如果问题并不局限于某个单一服务呢?如果你需要提出更复杂的探索性问题,跨越整个数据集呢?例如:
- 给我展示所有某个用户遇到延迟超过两秒的 traces,并把它与同一时间发生的前端错误关联起来。
- 是否有仅发生在高级套餐客户上的慢数据库查询?
- 哪一个具体的 RPC 调用是三个不同微服务共同的失败来源?
过去,回答这些问题是有效的,但需要在不同的 UI 中来回切换,并手动拼凑线索,导致体验并不流畅 ------ 这是各种可观测性平台的共同挑战。
今天,我们很高兴地宣布在 trace 搜索和分析方面的重要改进。我们把 Traces 的原生支持引入 Discover,并集成了 trace 瀑布视图。现在你可以把临时数据探索和 ES|QL 的完整功能应用到你的 tracing 数据中。
从精心设计的视图到更广泛的数据探索
Discover 是 Elastic Stack 中进行数据探索的主要界面。它是一个工作台,你可以自由探索、过滤并关联所有已索引的数据。通过把 traces 集成到这个环境中,你现在可以超越 APM 的精心设计视图,进行更灵活的调查,按任意 trace 属性进行搜索。
你现在可以轻松搜索单个 spans 或错误,按 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写代码

这个简单的查询揭示了最有问题的事务(transaction)。在结果表中,单击任意 trace 就会打开一个详细的端到端 trace 瀑布视图 ------ 就在 Discover 中完成。无需切换上下文,也不需要新开浏览器标签页。

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