Skip to content

Commit b86cab8

Browse files
committed
fix memory leak from global MeterProvider
1 parent f1a922c commit b86cab8

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

cmd/kubelet/app/server.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ import (
3737
"github.com/coreos/go-systemd/v22/daemon"
3838
"github.com/spf13/cobra"
3939
"github.com/spf13/pflag"
40+
"go.opentelemetry.io/otel"
41+
"go.opentelemetry.io/otel/metric/noop"
4042
"google.golang.org/grpc/codes"
4143
"google.golang.org/grpc/status"
4244
jsonpatch "gopkg.in/evanphx/json-patch.v4"
@@ -121,6 +123,9 @@ import (
121123

122124
func init() {
123125
utilruntime.Must(logsapi.AddFeatureGates(utilfeature.DefaultMutableFeatureGate))
126+
// Prevent memory leak from OTel metrics, which we don't use:
127+
// https://github.com/open-telemetry/opentelemetry-go-contrib/issues/5190
128+
otel.SetMeterProvider(noop.NewMeterProvider())
124129
}
125130

126131
const (

staging/src/k8s.io/apiserver/pkg/server/options/tracing.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ import (
2323
"net"
2424

2525
"github.com/spf13/pflag"
26+
"go.opentelemetry.io/otel"
2627
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
28+
"go.opentelemetry.io/otel/metric/noop"
2729
"go.opentelemetry.io/otel/sdk/resource"
2830
"go.opentelemetry.io/otel/semconv/v1.12.0"
2931
"google.golang.org/grpc"
@@ -48,6 +50,12 @@ var (
4850
codecs = serializer.NewCodecFactory(cfgScheme)
4951
)
5052

53+
func init() {
54+
// Prevent memory leak from OTel metrics, which we don't use:
55+
// https://github.com/open-telemetry/opentelemetry-go-contrib/issues/5190
56+
otel.SetMeterProvider(noop.NewMeterProvider())
57+
}
58+
5159
func init() {
5260
install.Install(cfgScheme)
5361
}

0 commit comments

Comments
 (0)