Skip to content

Commit

Permalink
updates server side of redis to support otel instr
Browse files Browse the repository at this point in the history
  • Loading branch information
afzal442 committed Jun 22, 2023
1 parent 4c0c617 commit 0bd6652
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 12 deletions.
10 changes: 5 additions & 5 deletions examples/hotrod/pkg/tracing/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,23 +45,23 @@ import (
var once sync.Once

// InitOTEL initializes OpenTelemetry SDK.
func InitOTEL(serviceName string, exporterType string, metricsFactory metrics.Factory, logger log.Factory) trace.Tracer {
_, oteltp := InitBOTH(serviceName, exporterType, metricsFactory, logger)
func InitOTEL(serviceName string, exporterType string, metricsFactory metrics.Factory, logger log.Factory) trace.TracerProvider {
_, oteltp := initBOTH(serviceName, exporterType, metricsFactory, logger)

logger.Bg().Debug("Created OTEL tracer", zap.String("service-name", serviceName))
return oteltp.Tracer(serviceName)
return oteltp
}

// Init returns OTel-OpenTracing Bridge.
func Init(serviceName string, exporterType string, metricsFactory metrics.Factory, logger log.Factory) opentracing.Tracer {
otTracer, _ := InitBOTH(serviceName, exporterType, metricsFactory, logger)
otTracer, _ := initBOTH(serviceName, exporterType, metricsFactory, logger)

logger.Bg().Debug("Created OTEL->OT bridge", zap.String("service-name", serviceName))
return otTracer
}

// initBOTH initializes OpenTelemetry SDK and uses OTel-OpenTracing Bridge
func InitBOTH(serviceName string, exporterType string, metricsFactory metrics.Factory, logger log.Factory) (opentracing.Tracer, trace.TracerProvider) {
func initBOTH(serviceName string, exporterType string, metricsFactory metrics.Factory, logger log.Factory) (opentracing.Tracer, trace.TracerProvider) {
once.Do(func() {
otel.SetTextMapPropagator(
propagation.NewCompositeTextMapPropagator(
Expand Down
6 changes: 3 additions & 3 deletions examples/hotrod/services/driver/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ import (
"context"
"time"

otgrpc "github.com/opentracing-contrib/go-grpc"
"github.com/opentracing/opentracing-go"
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
"go.uber.org/zap"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
Expand All @@ -39,9 +39,9 @@ type Client struct {
func NewClient(tracer opentracing.Tracer, logger log.Factory, hostPort string) *Client {
conn, err := grpc.Dial(hostPort, grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithUnaryInterceptor(
otelgrpc.UnaryClientInterceptor()),
otgrpc.OpenTracingClientInterceptor(tracer)),
grpc.WithStreamInterceptor(
otelgrpc.StreamClientInterceptor()))
otgrpc.OpenTracingStreamClientInterceptor(tracer)))
if err != nil {
logger.Bg().Fatal("Cannot create gRPC connection", zap.Error(err))
}
Expand Down
3 changes: 2 additions & 1 deletion examples/hotrod/services/driver/redis.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@ type Redis struct {
}

func newRedis(otelExporter string, metricsFactory metrics.Factory, logger log.Factory) *Redis {
tp := tracing.InitOTEL("redis-manual", otelExporter, metricsFactory, logger)
return &Redis{
tracer: tracing.InitOTEL("redis-manual", otelExporter, metricsFactory, logger),
tracer: tp.Tracer("redis-manual"),
logger: logger,
}
}
Expand Down
6 changes: 3 additions & 3 deletions examples/hotrod/services/driver/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import (
// Server implements jaeger-demo-frontend service
type Server struct {
hostPort string
tracer trace.TracerProvider
tracer *trace.TracerProvider
logger log.Factory
redis *Redis
server *grpc.Server
Expand All @@ -42,14 +42,14 @@ var _ DriverServiceServer = (*Server)(nil)

// NewServer creates a new driver.Server
func NewServer(hostPort string, otelExporter string, metricsFactory metrics.Factory, logger log.Factory) *Server {
_, tracer := tracing.InitBOTH("driver", otelExporter, metricsFactory, logger)
tracer := tracing.InitOTEL("driver", otelExporter, metricsFactory, logger)
server := grpc.NewServer(
grpc.UnaryInterceptor(otelgrpc.UnaryServerInterceptor(otelgrpc.WithTracerProvider(tracer))),
grpc.StreamInterceptor(otelgrpc.StreamServerInterceptor(otelgrpc.WithTracerProvider(tracer))),
)
return &Server{
hostPort: hostPort,
tracer: tracer,
tracer: &tracer,
logger: logger,
server: server,
redis: newRedis(otelExporter, metricsFactory, logger),
Expand Down

0 comments on commit 0bd6652

Please sign in to comment.