Azure Monitor中CounterBuilder与HistogramBuilder差异及指标标签显示问题
Azure Monitor自定义指标常见问题解答
问题1:OpenTelemetry Counter与Histogram指标在Azure Monitor图表显示无差异的原因
- 指标类型映射逻辑:OpenTelemetry的
Counter是单调递增的计数指标,Azure Monitor会将其映射为累计型指标,展示从指标启动以来的累计值;而Histogram是分布型指标,Azure Monitor会自动生成3类时间序列:指标名_sum(所有样本值的总和)、指标名_count(样本数量)、指标名_bucket(分桶区间的样本数)。如果你的Histogram每个样本值都是1,那么指标名_count的累计值就和Counter的计数完全一致,图表自然无差异。 - 图表聚合方式选择:若你在Azure Monitor指标资源管理器中,对Counter和Histogram的
_count/_sum系列都选择了“总和”聚合,两者的视觉表现会高度相似——Counter的总和是累计增长的计数,Histogram的_count总和是累计的样本数量,当样本值为1时完全重合。 - 未使用Histogram的分布特征数据:Histogram的核心价值是分桶分布(
_bucket系列),如果没在图表中选择这个系列,只看sum或count,就无法体现和Counter的差异。
问题2:自定义指标的标签(属性)在Azure Monitor图表中不显示,无Grafana时的解决方法
- 确认维度上报正确性:确保OpenTelemetry代码中,
name属性是作为维度添加到指标中的。比如创建Counter时,需通过AddAttribute("name", "apple")添加,且Azure Monitor导出器配置中未禁用维度导出(默认是启用的)。若维度未正确上报,Azure Monitor不会展示该标签。 - 在指标资源管理器中添加维度筛选:
- 打开Azure Monitor指标资源管理器,选择
MyFruitCounter指标。 - 点击「添加筛选器」,在「维度」下拉菜单中选择
name(若未出现,说明维度上报失败,需检查代码和导出配置)。 - 勾选需要展示的标签值(apple、lemon),图表会自动按该维度拆分多个时间序列。
- 打开Azure Monitor指标资源管理器,选择
- 使用Log Analytics查询生成图表:如果指标资源管理器无法展示维度,可通过日志查询实现:
执行查询后,点击「保存到仪表板」即可生成带标签的图表。customMetrics | where name == "MyFruitCounter" | summarize sum(value) by bin(timestamp, 1m), name | render timechart - 检查维度限制:Azure Monitor自定义指标默认支持最多10个维度,确保
name属性未超过限制,且上报时未被截断。
内容的提问来源于stack exchange,提问作者Marcel Pagnol
相关产品推荐
相关产品推荐

