Documentation

Overview

Package otelgocql instruments the github.com/gocql/gocql package.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewSessionWithTracing

func NewSessionWithTracing(ctx context.Context, cluster *gocql.ClusterConfig, options ...TracedSessionOption) (*gocql.Session, error)

NewSessionWithTracing creates a new session using the given cluster configuration enabling tracing for queries, batch queries, and connection attempts. You may use additional observers and disable specific tracing using the provided `TracedSessionOption`s.

Example
// Create a cluster
host := "localhost"
cluster := gocql.NewCluster(host)

// Create a session with tracing
_, err := NewSessionWithTracing(
	context.Background(),
	cluster,
	// Include any options here
)

if err != nil {
	log.Fatalf("failed to create session, %v", err)
}

// Begin using the session
Output:

Types

type OTelBatchObserver

type OTelBatchObserver struct {
	// contains filtered or unexported fields
}

OTelBatchObserver implements the gocql.BatchObserver interface to provide instrumentation to gocql batch queries.

func (*OTelBatchObserver) ObserveBatch

func (o *OTelBatchObserver) ObserveBatch(ctx context.Context, observedBatch gocql.ObservedBatch)

ObserveBatch is called once per batch query, and provides instrumentation for it.

type OTelConnectObserver

type OTelConnectObserver struct {
	// contains filtered or unexported fields
}

OTelConnectObserver implements the gocql.ConnectObserver interface to provide instrumentation to connection attempts made by the session.

func (*OTelConnectObserver) ObserveConnect

func (o *OTelConnectObserver) ObserveConnect(observedConnect gocql.ObservedConnect)

ObserveConnect is called once per connection attempt, and provides instrumentation for it.

type OTelQueryObserver

type OTelQueryObserver struct {
	// contains filtered or unexported fields
}

OTelQueryObserver implements the gocql.QueryObserver interface to provide instrumentation to gocql queries.

func (*OTelQueryObserver) ObserveQuery

func (o *OTelQueryObserver) ObserveQuery(ctx context.Context, observedQuery gocql.ObservedQuery)

ObserveQuery is called once per query, and provides instrumentation for it.

type TracedSessionConfig

type TracedSessionConfig struct {
	// contains filtered or unexported fields
}

TracedSessionConfig provides configuration for sessions created with NewSessionWithTracing.

type TracedSessionOption

type TracedSessionOption interface {
	Apply(*TracedSessionConfig)
}

TracedSessionOption applies a configuration option to the given TracedSessionConfig.

func WithBatchInstrumentation

func WithBatchInstrumentation(enabled bool) TracedSessionOption

WithBatchInstrumentation will enable and disable insturmentation of batch queries. Defaults to enabled.

func WithBatchObserver

func WithBatchObserver(observer gocql.BatchObserver) TracedSessionOption

WithBatchObserver sets an additional BatchObserver to the session configuration. Use this if there is an existing BatchObserver that you would like called. It will be called after the OpenTelemetry implementation, if it is not nil. Defaults to nil.

func WithConnectInstrumentation

func WithConnectInstrumentation(enabled bool) TracedSessionOption

WithConnectInstrumentation will enable and disable instrumentation of connection attempts. Defaults to enabled.

func WithConnectObserver

func WithConnectObserver(observer gocql.ConnectObserver) TracedSessionOption

WithConnectObserver sets an additional ConnectObserver to the session configuration. Use this if there is an existing ConnectObserver that you would like called. It will be called after the OpenTelemetry implementation, if it is not nil. Defaults to nil.

func WithMeterProvider

func WithMeterProvider(provider metric.MeterProvider) TracedSessionOption

WithMeterProvider will set the meter provider used to get a meter for creating instruments. Defaults to global.GetMeterProvider().

func WithQueryInstrumentation

func WithQueryInstrumentation(enabled bool) TracedSessionOption

WithQueryInstrumentation will enable and disable instrumentation of queries. Defaults to enabled.

func WithQueryObserver

func WithQueryObserver(observer gocql.QueryObserver) TracedSessionOption

WithQueryObserver sets an additional QueryObserver to the session configuration. Use this if there is an existing QueryObserver that you would like called. It will be called after the OpenTelemetry implementation, if it is not nil. Defaults to nil.

func WithTracerProvider

func WithTracerProvider(provider trace.TracerProvider) TracedSessionOption

WithTracerProvider will set the trace provider used to get a tracer for creating spans. Defaults to TracerProvider()

type TracedSessionOptionFunc

type TracedSessionOptionFunc func(*TracedSessionConfig)

TracedSessionOptionFunc is a function type that applies a particular configuration to the traced session in question.

func (TracedSessionOptionFunc) Apply

Apply will apply the TracedSessionOptionFunc to c, the given TracedSessionConfig.

Directories

Path Synopsis
example module