Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ jobs:
cd "${GITHUB_WORKSPACE}"
for MOD_FILE in $(find . -name 'go.mod' | grep -Ev '^\./go\.mod'); do
pushd "$(dirname ${MOD_FILE})"
go test ${{ matrix.testflags }} -timeout 2m ./...
go test ${{ matrix.testflags }} -cpu 1,4 -timeout 2m ./...
popd
done

Expand Down
1 change: 1 addition & 0 deletions gcp/observability/observability.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,5 @@ func Start(ctx context.Context) error {
// Note: this method should only be invoked once.
func End() {
defaultLogger.Close()
stopOpenCensus()
}
7 changes: 0 additions & 7 deletions gcp/observability/observability_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
grpclogrecordpb "google.golang.org/grpc/gcp/observability/internal/logging"
"google.golang.org/grpc/internal"
iblog "google.golang.org/grpc/internal/binarylog"
"google.golang.org/grpc/internal/grpctest"
"google.golang.org/grpc/internal/leakcheck"
Expand Down Expand Up @@ -875,12 +874,6 @@ func (s) TestCustomTagsTracingMetrics(t *testing.T) {
cleanup, err := createTmpConfigInFileSystem(configJSON)
defer cleanup()

// To clear globally registered tracing and metrics exporters.
defer func() {
internal.ClearExtraDialOptions()
internal.ClearExtraServerOptions()
}()

ctx, cancel := context.WithTimeout(context.Background(), defaultTestTimeout)
defer cancel()
err = Start(ctx)
Expand Down
24 changes: 23 additions & 1 deletion gcp/observability/opencensus.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ type tracingMetricsExporter interface {
view.Exporter
}

var exporter tracingMetricsExporter

// global to stub out in tests
var newExporter = newStackdriverExporter

Expand Down Expand Up @@ -87,7 +89,8 @@ func startOpenCensus(config *config) error {
return nil
}

exporter, err := newExporter(config)
var err error
exporter, err = newExporter(config)
if err != nil {
return err
}
Expand Down Expand Up @@ -118,3 +121,22 @@ func startOpenCensus(config *config) error {

return nil
}

// stopOpenCensus flushes the exporter's and cleans up globals across all
// packages if exporter was created.
func stopOpenCensus() {
if exporter != nil {
if sdExporter, ok := exporter.(*stackdriver.Exporter); ok {
sdExporter.Flush()
sdExporter.Close()
}

// Call these unconditionally, doesn't matter if not registered, will be
// a noop if not registered.
trace.UnregisterExporter(exporter)
view.UnregisterExporter(exporter)

internal.ClearExtraDialOptions()
internal.ClearExtraServerOptions()
}
}