【发布时间】:2020-05-18 22:10:15
【问题描述】:
我正在尝试使用 Metric.TryGetDataSeries 方法(记录在此:https://docs.microsoft.com/en-us/dotnet/api/microsoft.applicationinsights.metric.trygetdataseries?view=azure-dotnet#Microsoft_ApplicationInsights_Metric_TryGetDataSeries_Microsoft_ApplicationInsights_Metrics_MetricSeries__System_Boolean_System_String___)来获取一个 MetricSeries,然后可以使用它来发送如下指标:
MetricSeries series;
bool canTrack = metric.TryGetDataSeries(out series, true, dimensionValuesWithCanvasId.ToArray());
if (canTrack)
{
series.TrackValue(value);
}
else
{
throw new Exception($"Failed to track value for metric with dimensions: {string.Join(",", this.dimensionNames)}");
}
但是,我们的日志记录显示我们一直在看到异常。示例日志:无法创建具有以下维度的指标 DownloadReadDurationInMs:文件名、StreamSzInKB、DataSourceId。下面的日志屏幕截图以获得良好的衡量标准:
换句话说,我们看到 TryGetDataSeries 在某些情况下返回 false。根据文档,函数返回如下:
如果 MetricSeries 由指定的维度名称指示,则为真 可以检索或创建;如果指示的系列不能,则为 False 被检索或创建,因为 createIfNotExists 为 false 或因为 已达到尺寸上限或公制系列上限。
显然createIfNotExists == true,所以一定是“达到了维度上限或公制系列上限”。但是,如果我们查看我们的日志,则有 3 个维度,所以我认为也没有超过任何上限(尽管我不知道在哪里可以验证这一点——“系列上限”也是如此)。
所以,问题:
- 这些尺寸/系列上限的确切值是多少?
- 假设我没有超过这些上限(根据日志,我似乎在上限内),这里是否还有其他问题?
【问题讨论】:
标签: azure azure-application-insights metrics