func NewUnaryServerInterceptor(registry metrics.Registry, prefix string) grpc.UnaryServerInterceptor {
	return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) {
		monitor := newMetricsReporter(registry, prefix, Unary, info.FullMethod)
		monitor.ReceivedMessage()
		resp, err := handler(ctx, req)
		monitor.Handled(grpc.Code(err))
		if err == nil {
			monitor.SentMessage()
		}
		return resp, err
	}
}
NewUnaryServerInterceptor returns a grpc.UnaryServerInterceptor that reports
metrics to the go-metrics Registry provided. If prefix is not empty, it will
be prepended to the metrics keys
package gometrics
import (
	"fmt"
	"strings"
	"golang.org/x/net/context"
	"google.golang.org/grpc"
	"google.golang.org/grpc/codes"
	"github.com/rcrowley/go-metrics"
)
const (
	Unary        = "unary"
	ClientStream = "client_stream"
	ServerStream = "server_stream"
	BidiStream   = "bidi_stream"
)