【问题标题】:Metric.TryGetDataSeries returning false, despite dimensions cap being respectedMetric.TryGetDataSeries 返回 false,尽管尺寸上限受到尊重
【发布时间】: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 个维度,所以我认为也没有超过任何上限(尽管我不知道在哪里可以验证这一点——“系列上限”也是如此)。

所以,问题:

  1. 这些尺寸/系列上限的确切值是多少?
  2. 假设我没有超过这些上限(根据日志,我似乎在上限内),这里是否还有其他问题?

【问题讨论】:

    标签: azure azure-application-insights metrics


    【解决方案1】:

    有人向我指出此文档(仅在 3 周前添加!)https://docs.microsoft.com/en-us/azure/azure-monitor/app/get-metric#dimension-and-time-series-capping,其中详细介绍了有关尺寸和系列上限的信息。

    根据文档:

    默认限制是每个指标不超过 1000 个总数据系列, 每个维度不超过 100 个不同的值。

    我对“独特价值”上限感到惊讶,因此我似乎实际上超过了这个上限。这一起回答了我的第一个和第二个问题。

    【讨论】:

      猜你喜欢
      • 2019-10-03
      • 2016-05-22
      • 1970-01-01
      • 2014-11-17
      • 2014-11-07
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 2018-12-28
      相关资源
      最近更新 更多