Metrics No-Op API Implementation
状态: 稳定
OpenTelemetry 的用户需要一种方法来禁用 API 的实际操作。No-Op OpenTelemetry API 实现(以下简称 No-Op)为用户提供了此功能。它实现了 OpenTelemetry API,因此不会产生任何遥测数据,并最大限度地减少了计算资源。
所有语言实现的 OpenTelemetry 都必须提供 No-Op。
MeterProvider
No-Op 必须允许创建多个 MeterProvider。
No-Op 创建的 MeterProvider 需要占用尽可能小的内存。因此,所有创建的 MeterProvider 都不能包含配置或操作状态。
由于所有 MeterProvider 都具有相同的空状态,因此 No-Op 可以为所有创建请求提供相同的 MeterProvider 实例。
No-Op 被 OpenTelemetry 用户用来禁用 OpenTelemetry 的计算开销并消除 OpenTelemetry 相关的输出。因此,MeterProvider 在执行任何操作时都不能返回非空错误或记录任何消息。
MeterProvider 提供的所有操作都必须是并发安全的。
Meter 创建
New Meter 实例始终使用 MeterProvider 创建。因此,MeterProvider 必须允许创建 Meter。所有创建的 Meter 都必须是 No-Op Meter 的实例。
由于所有 Meter 都将具有相同的空状态,因此 MeterProvider 可以为所有创建请求返回相同的 Meter 实例。
API 指定了创建操作需要接受的多个参数。MeterProvider 必须接受这些参数。但是,MeterProvider 不能验证它收到的任何参数。
Meter
No-Op 创建的 Meter 需要占用尽可能小的内存。因此,所有创建的 Meter 都不能包含配置或操作状态。
Meter 在执行任何操作时都不能返回非空错误或记录任何消息。
Meter 提供的所有操作都必须是并发安全的。
Counter 创建
No-Op Meter 必须为用户提供一个接口来创建 Counter instrument。
由于所有 Counter 都具有相同的空状态,因此 Meter 可以为所有创建请求返回相同的 Counter 实例。
API 指定了创建操作需要接受的多个参数。Meter 必须接受这些参数。但是,Meter 不能验证它收到的任何参数。
UpDownCounter 创建
No-Op Meter 必须为用户提供一个接口来创建 UpDownCounter instrument。
由于所有 UpDownCounter 都具有相同的空状态,因此 Meter 可以为所有创建请求返回相同的 UpDownCounter 实例。
API 指定了创建操作需要接受的多个参数。Meter 必须接受这些参数。但是,Meter 不能验证它收到的任何参数。
Histogram 创建
No-Op Meter 必须为用户提供一个接口来创建 Histogram instrument。
由于所有 Histogram 都具有相同的空状态,因此 Meter 可以为所有创建请求返回相同的 Histogram 实例。
API 指定了创建操作需要接受的多个参数。Meter 必须接受这些参数。但是,Meter 不能验证它收到的任何参数。
Asynchronous Counter 创建
No-Op Meter 必须为用户提供一个接口来创建 Asynchronous Counter instrument。
由于所有 Asynchronous Counter 都具有相同的空状态,因此 Meter 可以为所有创建请求返回相同的 Asynchronous Counter 实例。
API 指定了创建操作需要接受的多个参数。Meter 必须接受这些参数。但是,Meter 不能验证它收到的任何参数,也不能保留对传入回调的任何引用。
Asynchronous UpDownCounter 创建
No-Op Meter 必须为用户提供一个接口来创建 Asynchronous UpDownCounter instrument。
由于所有 Asynchronous UpDownCounter 都具有相同的空状态,因此 Meter 可以为所有创建请求返回相同的 Asynchronous UpDownCounter 实例。
API 指定了创建操作需要接受的多个参数。Meter 必须接受这些参数。但是,Meter 不能验证它收到的任何参数,也不能保留对传入回调的任何引用。
Asynchronous Gauge 创建
No-Op Meter 必须为用户提供一个接口来创建 Asynchronous Gauge instrument。
由于所有 Asynchronous Gauge 都具有相同的空状态,因此 Meter 可以为所有创建请求返回相同的 Asynchronous UpDownCounter 实例。
API 指定了创建操作需要接受的多个参数。Meter 必须接受这些参数。但是,Meter 不能验证它收到的任何参数,也不能保留对传入回调的任何引用。
Instruments
Instrument 用于对系统进行测量和报告遥测数据。但是,No-Op 用于禁用此遥测数据的生成。因此,No-Op 提供的所有 instrument 都不能包含任何配置或操作状态,包括遥测数据的聚合。
Counter
Counter 在执行任何操作时都不能返回非空错误或记录任何消息。
Counter 提供的所有操作都必须是并发安全的。
Counter Add
No-Op Counter 必须为用户提供一个 Add 接口,该接口实现 API。它不能验证或保留关于其收到的参数的任何状态。
UpDownCounter
UpDownCounter 在执行任何操作时都不能返回非空错误或记录任何消息。
UpDownCounter 提供的所有操作都必须是并发安全的。
UpDownCounter Add
No-Op UpDownCounter 必须为用户提供一个 Add 接口,该接口实现 API。它不能验证或保留关于其收到的参数的任何状态。
Histogram
Histogram 在执行任何操作时都不能返回非空错误或记录任何消息。
Histogram 提供的所有操作都必须是并发安全的。
Histogram Record
No-Op Histogram 必须为用户提供一个 Record 接口,该接口实现 API。它不能验证或保留关于其收到的参数的任何状态。
Asynchronous Counter
Asynchronous Counter 在执行任何操作时都不能返回非空错误或记录任何消息。
Asynchronous Counter 提供的所有操作都必须是并发安全的。
Asynchronous Counter Observations
No-Op Asynchronous Counter 不能验证或保留关于 instrument 的 observations 的任何状态。
Asynchronous UpDownCounter
Asynchronous UpDownCounter 在执行任何操作时都不能返回非空错误或记录任何消息。
Asynchronous UpDownCounter 提供的所有操作都必须是并发安全的。
Asynchronous UpDownCounter Observations
No-Op Asynchronous UpDownCounter 不能验证或保留关于 instrument 的 observations 的任何状态。
Asynchronous Gauge
Asynchronous Gauge 在执行任何操作时都不能返回非空错误或记录任何消息。
Asynchronous Gauge 提供的所有操作都必须是并发安全的。
Asynchronous Gauge Observations
No-Op Asynchronous Gauge 不能验证或保留关于 instrument 的 observations 的任何状态。