在 Elastic Observability 中使用 Discover 的追踪获取更深入的应用洞察

作者:来自 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 CloudOpenTelemetry demo 上试试吧。期待你在探索 Discover 中的 traces 时分享反馈!

原文:www.elastic.co/observabili...

相关推荐
Elastic 中国社区官方博客31 分钟前
如何使用 LogsDB 降低 Elasticsearch 日志存储成本
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索·可用性测试
A__tao36 分钟前
一键实现 SQL 转 Elasticsearch Mapping(支持字段注释 + meta 描述)
数据库·sql·elasticsearch
老纪的技术唠嗑局21 小时前
告别OpenClaw配置丢失——Mindkeeper内测版邀测
大数据·elasticsearch·搜索引擎
Elasticsearch21 小时前
使用 Elasticsearch + Jina embeddings 进行无监督文档聚类
elasticsearch
勇哥的编程江湖1 天前
flinkcdc streaming 同步数据到es记录过程
大数据·elasticsearch·flink·flinkcdc
曾阿伦1 天前
Elasticsearch 7.x 常用命令备忘录
大数据·elasticsearch·搜索引擎
斯特凡今天也很帅1 天前
Elasticsearch数据库专栏(二)DSL语句总结(更新中)
大数据·elasticsearch·搜索引擎
要记得喝水1 天前
适用于 Git Bash 的脚本,批量提交和推送多个仓库的修改
git·elasticsearch·bash
二十七剑1 天前
Elasticsearch的索引问题
大数据·elasticsearch·搜索引擎
A__tao1 天前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch