如何解决在Azure门户中进行绘制之前,请从应用程序见解中删除重复的自定义指标事件
我正在使用.NET中的TelemetryClient.TrackMetric
方法在“应用程序见解”中记录一些自定义指标,并且我注意到当在Azure门户中查看某些事件时,有时会重复某些事件。
我已经深入数据,重复事件具有相同的itemId
和timestamp
,但是如果我通过在查询中添加| extend ingestionTime = ingestion_time()
来显示提取时间,则可以看到摄入时间不同。
This GitHub issue表示这种行为是预期的,因为AI使用的是至少一次交付。
我使用总和聚合在Azure门户的图表中绘制这些指标,但是由于重复项被简单地视为两个单独的事件,因此这些重复项在图表中产生了信任问题。
在Azure门户中绘制数据之前,是否可以基于itemId
对事件进行重复数据删除?
更新
一个更具体的例子:
我正在运行由事件触发的算法,该算法会产生奖励。该算法可能一天触发数十次,奖励是正或负浮点值。每次将奖励记录作为自定义指标(称为custom-reward
)记录到Application Insights中,以及一些其他数据拆分属性。
在Azure门户中,我将通过转到Application Insights -> Metrics
并自定义图表来创建一个简单的图表。我在custom-reward
下拉列表中选择我的Metric
指标,然后选择Sum
作为汇总。我可能会也可能不会申请分割。我将图表保存到仪表板中。
这个简单的图表为我提供了一种很好的方式来监视系统,以确保没有发生意外情况,图表左下方的Sum值使我可以快速查看奖励总和是正还是负图表的范围以及幅度。
但是,有时我对结果感到惊讶(例如,过去12个小时的奖励总和令人惊讶地为负),在仔细检查后,我发现一些大的负结果已被复制。进一步的调查显示,其他事件也正在发生这种情况,但结果较小,我往往不会注意到。
我对Application Insights的高级查询并不熟悉,实际上我今天才第一次使用它来研究事件。但这听起来确实像是我可以在其中做些什么,然后创建一个我可以作图的查询,然后对结果进行重复数据删除?
更新2
由于@JohnGardner的提示,我已经设法做到这一点,因此我将其标记为答案。我通过在查询中添加以下行来对结果进行重复数据删除并绘制结果:
| summarize timestamp=any(timestamp),value=any(value),name=any(name),customDimensions=any(customDimensions) by itemId
更新3
在查询中添加以下行使我可以拆分自定义数据(在这种情况下,按算法ID进行拆分):
| extend algorithmId = tostring(customDimensions.["algorithm-id"])
添加该行后,当您在查询结果中选择“图表”时,algorithmId
现在作为拆分下拉菜单中的选项显示。之后,您可以单击“固定到仪表板”。您会丢失通过简单的“指标”图表获得的图表左下方的方便的“一段时间内的总和”指示符,但是我相信我将能够以其他方式重新创建它。
解决方法
如果您要进行自己的查询,通常会使用类似summarize
或makeseries
之类的方法来对图表进行重复数据删除。您不会通常绘制单个项目,除非您查看的时间范围很小?
所以而不是类似的
summarize count() ...
您可以做
summarize dcount(itemId) ...
或您可以在不需要查询的查询中添加“伪”摘要,可以使用 by itemId
将多行合并为一个,并使用any(x)
来获取每一行的任何单独值每个itemId的列。
,但这实际上取决于您在特定查询中的工作。如果您使用sum(itemCount)
之类的东西来处理抽样,那么您现在还有其他奇怪的情况,其中一次交货可能重复了抽样项目? (更新您的问题以添加特定的查询和假设的结果可能会导致更具体的答案)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。