加载中

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

查询 APM 数据是一项必不可少的工具,可以使查找代码中的瓶颈更加直接。

通过使用查询栏(一个强大的数据查询功能),您可以在数据上运行高级查询,以筛选您感兴趣的具体信息。输入到查询栏中的 APM 查询会作为参数添加到 URL 中,因此可以轻松与他人分享特定的查询或视图。

查询栏附带便捷的自动完成功能,有助于查找字段,甚至提供对其包含的数据的建议。您可以选择查询栏并按键盘上的向下箭头开始浏览推荐内容。

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

Example of the Kibana Query bar in Applications UI in Kibana
提示

要详细了解 Kibana 查询语言的功能,请参阅 Kibana 查询语言增强文档。

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

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

Traces 视图中,您可能希望查看来自任何运行中容器的失败事务结果:transaction.result :"FAILURE" and container.id : *

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

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

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

使用应用程序 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 并将其粘贴到 APM 中,以在 APM 的上下文中查看数据

View specific transaction in Applications UI View specific transaction in Applications UI
© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.