[#140] Use gRPC interceptor from observability package
All checks were successful
/ DCO (pull_request) Successful in 1m8s
/ Builds (1.19) (pull_request) Successful in 3m8s
/ Builds (1.20) (pull_request) Successful in 2m44s
/ Lint (pull_request) Successful in 4m50s
/ Tests (1.19) (pull_request) Successful in 9m28s
/ Tests (1.20) (pull_request) Successful in 10m32s
/ Vulncheck (pull_request) Successful in 1m16s

Previous SDK implementation had implicit gRPC interceptor
for tracing. Now pool constructors allow any dial options,
so gateway should manually pass tracing interceptors from
observability package.

Signed-off-by: Alex Vanin <a.vanin@yadro.com>
This commit is contained in:
Alexey Vanin 2023-06-14 11:50:22 +03:00
parent 8fcaf76f41
commit 67bf8ee8b6

View file

@ -14,6 +14,7 @@ import (
"time" "time"
"git.frostfs.info/TrueCloudLab/frostfs-observability/tracing" "git.frostfs.info/TrueCloudLab/frostfs-observability/tracing"
grpctracing "git.frostfs.info/TrueCloudLab/frostfs-observability/tracing/grpc"
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api" "git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api"
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/auth" "git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/auth"
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/cache" "git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/cache"
@ -311,6 +312,19 @@ func getPools(ctx context.Context, logger *zap.Logger, cfg *viper.Viper) (*pool.
prm.SetLogger(logger) prm.SetLogger(logger)
prmTree.SetLogger(logger) prmTree.SetLogger(logger)
var apiGRPCDialOpts []grpc.DialOption
var treeGRPCDialOpts = []grpc.DialOption{grpc.WithTransportCredentials(insecure.NewCredentials())}
if cfg.GetBool(cfgTracingEnabled) {
interceptors := []grpc.DialOption{
grpc.WithUnaryInterceptor(grpctracing.NewUnaryClientInteceptor()),
grpc.WithStreamInterceptor(grpctracing.NewStreamClientInterceptor()),
}
treeGRPCDialOpts = append(treeGRPCDialOpts, interceptors...)
apiGRPCDialOpts = append(apiGRPCDialOpts, interceptors...)
}
prm.SetGRPCDialOptions(apiGRPCDialOpts...)
prmTree.SetGRPCDialOptions(treeGRPCDialOpts...)
p, err := pool.NewPool(prm) p, err := pool.NewPool(prm)
if err != nil { if err != nil {
logger.Fatal("failed to create connection pool", zap.Error(err)) logger.Fatal("failed to create connection pool", zap.Error(err))
@ -320,7 +334,6 @@ func getPools(ctx context.Context, logger *zap.Logger, cfg *viper.Viper) (*pool.
logger.Fatal("failed to dial connection pool", zap.Error(err)) logger.Fatal("failed to dial connection pool", zap.Error(err))
} }
prmTree.SetGRPCDialOptions(grpc.WithTransportCredentials(insecure.NewCredentials()))
treePool, err := treepool.NewPool(prmTree) treePool, err := treepool.NewPool(prmTree)
if err != nil { if err != nil {
logger.Fatal("failed to create tree pool", zap.Error(err)) logger.Fatal("failed to create tree pool", zap.Error(err))