是否可以在数据狗中编写小部件的 APM 查询,以便它包含所有跨度?(不仅是服务入口跨度)



我的REST服务正在执行许多http查询,我想在我的面板中监视这些查询。在它的APM视图中,我可以从servlet.request操作名称或netty.client.request中进行选择。前者是主要操作,而后者是附加操作。

我所做的是,我能够在仪表板中构建一个小部件,它使用度量类型的源代码如下:default_zero(sum:trace.netty.client.request.hits.by_http_status{$env,$service,!http.status_code:200}.as_count()),它可以工作,它向我显示客户端收到的错误数量,但当我单击小部件并选择show related traces时,我看不到与netty.client.request操作相关的跟踪,而是与servlet.request相关的跟踪。其原因是它生成以下查询env:prod service:payments-braintree-gateway -@http.status_code:200,该查询不包括operation name,也不包括"0";所有跨度";(下一段对此进行了解释(

所以我去了APM中的traces视图,并尝试在那里执行我想要的查询。起初,我只能在过滤器中选择一个操作——servlet.request,但我注意到搜索栏旁边有一个标记为in的按钮,您可以在其中选择要搜索的跨度集。有两个选项:service entry spansall。。。切换到all可以创建一个我感兴趣的查询:$env $service operation_name:netty.client.request -@http.status_code:(200),它可以工作。。。所以剩下的就是在仪表板中使用它。

现在,当我回到仪表板的小部件时,我篡改了json中的查询,我试图编辑context menu links,我甚至将度量类型从"更改为";度量";到APM。。。一切如出一辙。看起来不可能在小部件中使用非service entry spans

有趣的是,我甚至从APM的服务视图错误图导出到仪表板,然后点击";显示相关痕迹";它仍然显示出不正确的东西,而";显示相关痕迹";APM中图形中的选项会将我带到跟踪中的正确视图

所以。。。是否可以修复";显示相关痕迹";DataDog面板中的按钮?

看起来唯一可行的解决方案是隐藏标准跟踪链接并创建新的自定义链接。不利的一面是,它将打开一个新的APM浏览器选项卡,而不是在屏幕右侧的模态中显示痕迹,但至少它能工作。当然,如何以不同的方式解决问题的想法仍然很受欢迎:(

最新更新