我已经使用Prometheus存储performance metrics并将结果查询为百分位数(例如,第95个百分位数的响应时间)。我用prometheus-net发出它们。

Azure AppInsights中的等效项是什么?

我在AppInsights / Kusto中​​看到了percentile functions,但是当我使用GetMetric(“blah”)。TrackValue(42)时,它存储了Count,Min,Max,Sum和StdDev,这不是我习惯的直方图存储方法在普罗米修斯。

for(int i=0; i < 500; i++) {
  //Write some metrics
  telemetryClient.GetMetric("blah").TrackValue(42); //real data isn't constant
}
customMetrics
| where name == "blah"
//| summarize avg(value), percentiles(value, 50, 95)  by bin(timestamp, 2m)

这是我使用随机值记录的一些数据。值列是总和,这是不正确的,因此我看不到如何正确地对这些数据进行百分位数处理。
azure - 如何在Azure AppInsights中对自定义指标执行百分位数?-LMLPHP

最佳答案

当将GetMetric().TrackValue() API与默认聚合一起使用时,不会存储每个单独的值,在1分钟后生成一个值,并将该值以sum / count / min / max / ...分布发送给AI。因此,以后无法在Google Analytics(分析)中绘制原始数据点的百分位数。

目前,只有少数几种可用于GetMetric().TrackValue() API的聚合,而直方图/ tdigest不是其中一种。您可以在AI SDK GitHub repository上提交功能请求(或贡献)。

目前的解决方法是使用较旧的API,默认情况下,该API提交时间点度量标准,但不使用ogit_code或TrackMetric()中的一系列度量。这将增加发送的遥测项目的数量(每个度量标准将单独发送,而没有1分钟的值聚合),但这将为您提供每个值,以便在必要时在Analytics(分析)中执行百分位数聚合。

关于azure - 如何在Azure AppInsights中对自定义指标执行百分位数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58124268/

10-13 06:13