我正在尝试使用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)}");
}
但是,我们的日志记录显示我们始终看到异常。日志示例:无法创建尺寸为:文件名,StreamSzInKB,DataSourceId的度量DownloadReadDurationInMs。]>下面的日志屏幕截图可以很好地解决此问题:
换句话说,在某些情况下,我们看到TryGetDataSeries返回false。根据文档,该函数返回如下:
如果指定的尺寸名称指示MetricSeries,则为真可以检索或创建;如果指示的序列不能,则为假由于createIfNotExists为false或因为达到了尺寸上限或公制系列上限。
显然createIfNotExists == true,因此必须是“已达到尺寸上限或指标系列上限”。但是,如果我们查看日志,则有3个维度,因此我也不认为超出了任何上限(尽管我不知道在哪里可以验证这一点-“系列上限”也是如此)。
所以,问题:
我正在尝试使用Metric.TryGetDataSeries方法(在此处记录:https://docs.microsoft.com/zh-cn/dotnet/api/microsoft.applicationinsights.metric.trygetdataseries?view=azure-dotnet#。 。
有人指出我该文档(仅在3周前添加!)https://docs.microsoft.com/en-us/azure/azure-monitor/app/get-metric#dimension-and-time-series-capping,其中详细说明了有关尺寸和系列盖的信息。