spannerotel

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 28, 2026 License: MIT

README

spannerotel

OpenTelemetry helpers for cloud.google.com/go/spanner:

  • interceptor/ — gRPC stream interceptor that decorates spans with query stats and GFE timing
  • internal/plantotrace/ — PROFILE plan node spans
  • tracing/ — TracerProvider setup for Cloud Trace or stdout export

Spanner v1.90+ emits traces via OpenTelemetry natively; an OpenCensus bridge is not required.

Usage

import (
	"cloud.google.com/go/spanner"
	"github.com/apstndb/spannerotel/interceptor"
	"github.com/apstndb/spannerotel/tracing"
	"google.golang.org/api/option"
	"google.golang.org/grpc"
)

tp, err := tracing.NewTracerProvider(tracing.Config{
	Exporter:     tracing.ExporterStdout,
	PrettyStdout: true,
})
if err != nil {
	// handle error
}
defer tracing.Shutdown(ctx, tp)

client, err := spanner.NewClientWithConfig(ctx, database, spanner.ClientConfig{
	// ...
}, option.WithGRPCDialOption(grpc.WithChainStreamInterceptor(
	interceptor.StreamInterceptor(interceptor.WithDefaultDecorators()),
)))

See example/query for a runnable PROFILE query with stdout tracing.

Directories

Path Synopsis
example
query command
Example program runs a PROFILE query with stdout trace export.
Example program runs a PROFILE query with stdout trace export.
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL