在应用程序数据上使用高级查询
Elastic Stack Serverless
查询您的 APM 数据是一项重要的工具,它可以让您更直接地找到代码中的瓶颈。
使用查询栏(一个强大的数据查询功能),您可以将高级查询传递给您的数据,以筛选您感兴趣的特定信息。输入到查询栏中的 APM 查询会作为参数添加到 URL,因此很容易与他人共享特定的查询或视图。
查询栏带有方便的自动完成功能,可以帮助您查找字段,甚至可以提供包含这些字段的数据建议。您可以选择查询栏,然后按键盘上的向下箭头开始扫描建议。
在您键入时,您可以看到一些可用于筛选的事务字段

要了解有关 Kibana 查询语言功能的更多信息,请参阅Kibana 查询语言增强文档。
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中查询您的 APM 文档。在 Discover 中查询文档的工作方式与 Applications UI 中的查询相同,并且 Discover 支持本页显示的所有示例 APM 查询。
您可能想要使用 Discover 的一个示例是查看端点的*所有*事务,而不仅仅是样本。
使用 Applications 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 返回的结果

您现在可以探索数据,直到找到您感兴趣的特定事务。复制该事务的 transaction.id
并将其粘贴到 APM 中,以在 APM 的上下文中查看数据

