在应用程序数据上使用高级查询
编辑在应用程序数据上使用高级查询
编辑查询您的 APM 数据是一个基本工具,它可以使查找代码中的瓶颈变得更加直接。
使用查询栏(一个强大的数据查询功能),您可以对数据传递高级查询,以筛选您感兴趣的特定信息。
查询栏带有方便的自动完成功能,可以帮助查找字段,甚至提供对它们包含的数据的建议。您可以选择查询栏,然后按键盘上的向下箭头开始扫描建议。
在应用程序 UI 中查询时,您只是在 Elasticsearch 文档中搜索和选择字段中的数据。在查询栏中输入的查询也会作为参数添加到 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 中查询文档的方式与应用程序 UI 中的查询方式相同,并且 Discover 支持此页面上显示的所有应用程序 UI 查询示例。
您可能想要使用 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 返回的内容
您现在可以浏览数据,直到找到您感兴趣的特定事务。复制该事务的 transaction.id
并将其粘贴到应用程序 UI 中,以在应用程序 UI 的上下文中查看数据