OpenTelemetry 指标测量全解析
在使用 OpenTelemetry 进行指标测量时,我们需要了解多个关键概念,包括仪器的唯一标识、重复注册问题、同步与异步仪器、单调性、仪器类型以及指标 SDK 等。以下将详细介绍这些内容。
1. 仪器的唯一标识
仪器通过特定字段进行唯一标识,还可选择包含语言级特性,如数字类型(浮点型或整型)。不过,OpenTelemetry 规范并未明确在同一仪器范围(即仪表属性)下,请求具有相同标识字段的多个仪器时,何时返回相同或不同的仪器实例。例如,Java 实现每次调用都会返回不同的仪器实例,但它们共享相同的底层存储和聚合,以便所有测量值都能在相同的指标数据点下收集。
2. 重复仪器注册
若在相同名称和仪器范围下注册多个不同的仪器,SDK 会输出“重复仪器注册”警告。虽会返回一个可用的仪器,但这种冲突可能导致指标包含语义错误。
实现可以尝试解决这些冲突。例如,若两个计数器以相同名称注册,但描述或单位不同,实现可以聚合这两个指标,选择较长的描述或进行单位转换(如从 MB 到 KB),但这并非强制要求。在 Java 中,这些会被视为不同的计数器,不会进行聚合,从而产生两个同名的指标。
为避免语义错误,需确保在同一仪器范围内使用相同的仪器属性来测量特定概念,并留意 SDK 产生的任何重复注册警告。
不同的仪器注册示例如下:
Instrument={
InstrumentationScope={name=my-meter, version=1.0.0},
name=my-counter
超级会员免费看
订阅专栏 解锁全文
61

被折叠的 条评论
为什么被折叠?



