mirror of https://github.com/milvus-io/milvus.git
enhance: Adapt hyphen in grpc metadata header (#41358)
Related to #41357 Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>pull/41374/head
parent
1a35374672
commit
52c7d62012
|
@ -14,8 +14,10 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
logLevelRPCMetaKey = "log_level"
|
||||
clientRequestIDKey = "client_request_id"
|
||||
logLevelRPCMetaKeyLegacy = "log_level"
|
||||
logLevelRPCMetaKey = "log-level"
|
||||
clientRequestIDKeyLegacy = "client-request-id"
|
||||
clientRequestIDKey = "client_request_id"
|
||||
)
|
||||
|
||||
// UnaryTraceLoggerInterceptor adds a traced logger in unary rpc call ctx
|
||||
|
@ -37,7 +39,7 @@ func withLevelAndTrace(ctx context.Context) context.Context {
|
|||
newctx := ctx
|
||||
var traceID trace.TraceID
|
||||
if md, ok := metadata.FromIncomingContext(ctx); ok {
|
||||
levels := md.Get(logLevelRPCMetaKey)
|
||||
levels := GetMetadata(md, logLevelRPCMetaKey, logLevelRPCMetaKeyLegacy)
|
||||
// get log level
|
||||
if len(levels) >= 1 {
|
||||
level := zapcore.DebugLevel
|
||||
|
@ -63,12 +65,12 @@ func withLevelAndTrace(ctx context.Context) context.Context {
|
|||
newctx = metadata.AppendToOutgoingContext(newctx, logLevelRPCMetaKey, level.String())
|
||||
}
|
||||
// client request id
|
||||
requestID := md.Get(clientRequestIDKey)
|
||||
requestID := GetMetadata(md, clientRequestIDKey, clientRequestIDKeyLegacy)
|
||||
if len(requestID) >= 1 {
|
||||
// inject traceid in order to pass client request id
|
||||
newctx = metadata.AppendToOutgoingContext(newctx, clientRequestIDKey, requestID[0])
|
||||
var err error
|
||||
// if client_request_id is a valid traceID, use traceID path
|
||||
// if client-request-id is a valid traceID, use traceID path
|
||||
traceID, err = trace.TraceIDFromHex(requestID[0])
|
||||
if err != nil {
|
||||
// set request id to custom field
|
||||
|
@ -85,3 +87,13 @@ func withLevelAndTrace(ctx context.Context) context.Context {
|
|||
}
|
||||
return newctx
|
||||
}
|
||||
|
||||
func GetMetadata(md metadata.MD, keys ...string) []string {
|
||||
var result []string
|
||||
for _, key := range keys {
|
||||
if values := md.Get(key); len(values) > 0 {
|
||||
result = append(result, values...)
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue