在应用程序数据上使用高级查询
编辑

查询您的 APM 数据是一个基本工具,它可以使查找代码中的瓶颈变得更加直接。

使用查询栏(一个强大的数据查询功能),您可以对数据传递高级查询,以筛选您感兴趣的特定信息。

查询栏带有方便的自动完成功能,可以帮助查找字段,甚至提供对它们包含的数据的建议。您可以选择查询栏,然后按键盘上的向下箭头开始扫描建议。

在应用程序 UI 中查询编辑

在应用程序 UI 中查询时,您只是在 Elasticsearch 文档中搜索和选择字段中的数据。在查询栏中输入的查询也会作为参数添加到 URL,因此可以轻松地与他人共享特定的查询或视图。

在您键入时,您会开始看到一些可用于筛选的事务字段。

Example of the Kibana Query bar in Applications UI in Kibana

要了解有关 Kibana 查询语言功能的更多信息,请参阅 Kibana 查询语言增强 文档。

应用程序 UI 查询编辑

APM 查询对于从服务事务错误指标跟踪视图中消除数据中的噪声非常有用。

例如,在服务视图中,您可以快速查看生产环境中运行的所有检测服务的列表:service.environment : production。或者,通过包含 APM 代理的名称和它运行的主机来筛选列表:service.environment : "production" and agent.name : "java" and host.name : "prod-server1"

跟踪视图中,您可能想要查看来自任何正在运行的容器的失败事务结果:transaction.result :"FAILURE" and container.id : *

事务视图中,您可能只想列出比指定时间阈值慢的事务:transaction.duration.us > 2000000。或者,通过包含服务版本和它运行的 Kubernetes Pod 来筛选列表:transaction.duration.us > 2000000 and service.version : "7.12.0" and kubernetes.pod.name : "pod-5468b47f57-pqk2m"

在 Discover 中查询编辑

或者,您可以在 Discover 中查询您的 APM 文档。Discover 中查询文档的方式与应用程序 UI 中的查询方式相同,并且 Discover 支持此页面上显示的所有应用程序 UI 查询示例。

Discover 查询编辑

您可能想要使用 Discover 的一个示例是查看端点的所有事务,而不仅仅是样本。

从 v7.6 开始,您可以在应用程序 UI 中查看每个存储桶十个样本,而不仅仅是一个样本。

使用应用程序 UI 查找您感兴趣的事务名称和时间存储桶。然后,切换到 Discover 并进行搜索

processor.event: "transaction" AND transaction.name: "<TRANSACTION_NAME_HERE>" and transaction.duration.us > 13000 and transaction.duration.us < 14000`

在此示例中,我们有兴趣查看所有在 13 到 14 毫秒之间进行的 APIRestController#customers 事务。以下是 Discover 返回的内容

View all transactions in bucket

您现在可以浏览数据,直到找到您感兴趣的特定事务。复制该事务的 transaction.id 并将其粘贴到应用程序 UI 中,以在应用程序 UI 的上下文中查看数据

View specific transaction in Applications UI
View specific transaction in Applications UI