在应用程序数据上使用高级查询
编辑在应用程序数据上使用高级查询
编辑查询 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 的上下文中查看数据。