OpenTelemetryのnoopパッケージ
OpenTelemetry SDK for Goはgo.opentelemetry.io/otel/metric/noopパッケージを提供する。このパッケージは「何もしない」各種カウンタを実装している。
おそらく主要な使いどころは、meter.Int64Counter() などでエラーが発生した際のフォールバック先としての利用ではないかと思う。
import ( "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/metric" "go.opentelemetry.io/otel/metric/noop")
var ( meter = otel.Meter("example.com/pkg") counter metric.Int64Counter)
func init() { var err error counter, err = meter.Int64Counter("count") if err != nil { otel.Handle(err) if counter == nil { counter = noop.Int64Counter{} } }}こうしておくと、counter が nil になることを考慮しなくてもよくなる。