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

Is it possible to write widget's APM query in datadog so that it will include all the spans? (not only service entry spans)

我的 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,也不包括“所有跨度”(下一段解释)

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

现在,当我回到仪表板的小部件时,我摆弄了 json 中的查询,我尝试编辑 context menu links,我什至将指标类型从“指标”更改为 APM...一切都在静脉中。看起来不可能在小部件中使用非 service entry spans

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

所以...是否可以修复 DataDog 仪表板中的“显示相关跟踪”按钮?

看起来唯一可行的解​​决方案是隐藏标准痕迹 link 并创建新的自定义 link。缺点是它将打开一个新的 APM 浏览器选项卡,而不是在屏幕右侧的模态中显示痕迹,但至少它可以工作。当然,欢迎提出如何以不同方式解决它的想法:)