From 2db76a64f935cc7f3fce41e460e50780f174e309 Mon Sep 17 00:00:00 2001 From: Curtis Robert Date: Thu, 25 Jan 2024 04:18:12 -0800 Subject: [PATCH] [chore][exporter/alertmanagerexporter] Enable goleak check (#30710) **Description:** Enables goleak check on tests in the `alertmanager` exporter to ensure it's not leaking goroutines. This is a test only change. **Link to tracking Issue:** #30438 **Testing:** All tests are passing, goleak check is passing. --- .../alertmanager_exporter_test.go | 1 + exporter/alertmanagerexporter/go.mod | 1 + exporter/alertmanagerexporter/go.sum | 1 + exporter/alertmanagerexporter/package_test.go | 17 +++++++++++++++++ 4 files changed, 20 insertions(+) create mode 100644 exporter/alertmanagerexporter/package_test.go diff --git a/exporter/alertmanagerexporter/alertmanager_exporter_test.go b/exporter/alertmanagerexporter/alertmanager_exporter_test.go index e30b9d02f98e..73170e0ef526 100644 --- a/exporter/alertmanagerexporter/alertmanager_exporter_test.go +++ b/exporter/alertmanagerexporter/alertmanager_exporter_test.go @@ -308,6 +308,7 @@ func newMockServer(t *testing.T) *MockServer { func TestAlertManagerPostAlert(t *testing.T) { mock := newMockServer(t) + defer func() { mock.mockserver.Close() }() factory := NewFactory() cfg := factory.CreateDefaultConfig().(*Config) diff --git a/exporter/alertmanagerexporter/go.mod b/exporter/alertmanagerexporter/go.mod index f2044bfd93e5..c2d5ed7ee410 100644 --- a/exporter/alertmanagerexporter/go.mod +++ b/exporter/alertmanagerexporter/go.mod @@ -20,6 +20,7 @@ require ( go.opentelemetry.io/collector/semconv v0.93.1-0.20240124123350-9047c0e373f9 go.opentelemetry.io/otel/metric v1.22.0 go.opentelemetry.io/otel/trace v1.22.0 + go.uber.org/goleak v1.3.0 go.uber.org/zap v1.26.0 ) diff --git a/exporter/alertmanagerexporter/go.sum b/exporter/alertmanagerexporter/go.sum index d1ffb8410a39..407f1ccbb69a 100644 --- a/exporter/alertmanagerexporter/go.sum +++ b/exporter/alertmanagerexporter/go.sum @@ -325,6 +325,7 @@ go.opentelemetry.io/otel/sdk/metric v1.22.0/go.mod h1:KjQGeMIDlBNEOo6HvjhxIec1p/ go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= diff --git a/exporter/alertmanagerexporter/package_test.go b/exporter/alertmanagerexporter/package_test.go new file mode 100644 index 000000000000..2bd557e6f50e --- /dev/null +++ b/exporter/alertmanagerexporter/package_test.go @@ -0,0 +1,17 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +package alertmanagerexporter + +import ( + "testing" + + "go.uber.org/goleak" +) + +// The IgnoreTopFunction call prevents catching the leak generated by opencensus +// defaultWorker.Start which at this time is part of the package's init call. +// See https://github.com/census-instrumentation/opencensus-go/issues/1191 for more information. +func TestMain(m *testing.M) { + goleak.VerifyTestMain(m, goleak.IgnoreTopFunction("go.opencensus.io/stats/view.(*worker).start")) +}