// Copyright 2016-2018, Pulumi Corporation. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package rpcutil import ( "github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc" opentracing "github.com/opentracing/opentracing-go" "google.golang.org/grpc" ) // OpenTracingServerInterceptor provides a default gRPC server interceptor for emitting tracing to the global // OpenTracing tracer. func OpenTracingServerInterceptor() grpc.UnaryServerInterceptor { return otgrpc.OpenTracingServerInterceptor( // Use the globally installed tracer opentracing.GlobalTracer(), // Log full payloads along with trace spans otgrpc.LogPayloads(), ) } // OpenTracingClientInterceptor provides a default gRPC client interceptor for emitting tracing to the global // OpenTracing tracer. func OpenTracingClientInterceptor() grpc.UnaryClientInterceptor { return otgrpc.OpenTracingClientInterceptor( // Use the globally installed tracer opentracing.GlobalTracer(), // Log full payloads along with trace spans otgrpc.LogPayloads(), ) }