mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
7008ac01fa
As per https://github.com/etcd-io/etcd/blob/fa57f7fbc787b4/Gopkg.lock List of packages required by subset of etcd used is provided by: go list -f '{{join .Deps "\n"}}' \ github.com/docker/docker/vendor/github.com/coreos/etcd/... \ | grep -F . | grep -v coreos/etcd | sort | uniq Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
// Copyright 2016 Michal Witkowski. All Rights Reserved.
|
|
// See LICENSE for licensing terms.
|
|
|
|
package grpc_prometheus
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/codes"
|
|
)
|
|
|
|
type grpcType string
|
|
|
|
const (
|
|
Unary grpcType = "unary"
|
|
ClientStream grpcType = "client_stream"
|
|
ServerStream grpcType = "server_stream"
|
|
BidiStream grpcType = "bidi_stream"
|
|
)
|
|
|
|
var (
|
|
allCodes = []codes.Code{
|
|
codes.OK, codes.Canceled, codes.Unknown, codes.InvalidArgument, codes.DeadlineExceeded, codes.NotFound,
|
|
codes.AlreadyExists, codes.PermissionDenied, codes.Unauthenticated, codes.ResourceExhausted,
|
|
codes.FailedPrecondition, codes.Aborted, codes.OutOfRange, codes.Unimplemented, codes.Internal,
|
|
codes.Unavailable, codes.DataLoss,
|
|
}
|
|
)
|
|
|
|
func splitMethodName(fullMethodName string) (string, string) {
|
|
fullMethodName = strings.TrimPrefix(fullMethodName, "/") // remove leading slash
|
|
if i := strings.Index(fullMethodName, "/"); i >= 0 {
|
|
return fullMethodName[:i], fullMethodName[i+1:]
|
|
}
|
|
return "unknown", "unknown"
|
|
}
|
|
|
|
func typeFromMethodInfo(mInfo *grpc.MethodInfo) grpcType {
|
|
if !mInfo.IsClientStream && !mInfo.IsServerStream {
|
|
return Unary
|
|
}
|
|
if mInfo.IsClientStream && !mInfo.IsServerStream {
|
|
return ClientStream
|
|
}
|
|
if !mInfo.IsClientStream && mInfo.IsServerStream {
|
|
return ServerStream
|
|
}
|
|
return BidiStream
|
|
}
|