Documentation
¶
Overview ¶
Package redis provides tracing functions for tracing the go-redis/redis package (https://github.com/go-redis/redis). This package supports versions up to go-redis 6.15.
Example ¶
To start tracing Redis, simply create a new client using the library and continue using as you normally would.
ctx := context.Background()
// create a new Client
opts := &redis.Options{Addr: "127.0.0.1", Password: "", DB: 0}
c := redistrace.NewClient(opts)
// any action emits a span
c.Set(ctx, "test_key", "test_value", 0)
// optionally, create a new root span
root, ctx := tracer.StartSpanFromContext(context.Background(), "parent.request",
tracer.SpanType(ext.SpanTypeRedis),
tracer.ServiceName("web"),
tracer.ResourceName("/home"),
)
// commit further commands, which will inherit from the parent in the context.
c.Set(ctx, "food", "cheese", 0)
root.Finish()
Example (Pipeliner) ¶
You can also trace Redis Pipelines. Simply use as usual and the traces will be automatically picked up by the underlying implementation.
ctx := context.Background()
// create a client
opts := &redis.Options{Addr: "127.0.0.1", Password: "", DB: 0}
c := redistrace.NewClient(opts, redistrace.WithServiceName("my-redis-service"))
// open the pipeline
pipe := c.Pipeline()
// submit some commands
pipe.Incr(ctx, "pipeline_counter")
pipe.Expire(ctx, "pipeline_counter", time.Hour)
// execute with trace
pipe.Exec(ctx)
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewClient ¶
func NewClient(opt *redis.Options, opts ...ClientOption) redis.UniversalClient
NewClient returns a new Client that is traced with the default tracer under the service name "redis".
func WrapClient ¶
func WrapClient(client redis.UniversalClient, opts ...ClientOption)
WrapClient adds a hook to the given client that traces with the default tracer under the service name "redis".
Types ¶
type ClientOption ¶
type ClientOption func(*clientConfig)
ClientOption represents an option that can be used to create or wrap a client.
func WithAnalytics ¶
func WithAnalytics(on bool) ClientOption
WithAnalytics enables Trace Analytics for all started spans.
func WithAnalyticsRate ¶
func WithAnalyticsRate(rate float64) ClientOption
WithAnalyticsRate sets the sampling rate for Trace Analytics events correlated to started spans.
func WithServiceName ¶
func WithServiceName(name string) ClientOption
WithServiceName sets the given service name for the client.