You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kratos/pkg/net/metadata/key.go

71 lines
1.2 KiB

6 years ago
package metadata
// metadata common key
const (
// Network
RemoteIP = "remote_ip"
RemotePort = "remote_port"
ServerAddr = "server_addr"
ClientAddr = "client_addr"
// Router
Cluster = "cluster"
Color = "color"
// Trace
Trace = "trace"
Caller = "caller"
// Timeout
Timeout = "timeout"
// Dispatch
CPUUsage = "cpu_usage"
Errors = "errors"
Requests = "requests"
// Mirror
Mirror = "mirror"
// Mid 外网账户用户id
Mid = "mid" // NOTE: !!!业务可重新修改key名!!!
// Username LDAP平台的username
Username = "username"
// Device 客户端信息
Device = "device"
// Criticality 重要性
Criticality = "criticality"
6 years ago
)
var outgoingKey = map[string]struct{}{
Color: struct{}{},
RemoteIP: struct{}{},
RemotePort: struct{}{},
Mirror: struct{}{},
Criticality: struct{}{},
}
var incomingKey = map[string]struct{}{
Caller: struct{}{},
}
// IsOutgoingKey represent this key should propagate by rpc.
func IsOutgoingKey(key string) bool {
_, ok := outgoingKey[key]
return ok
}
// IsIncomingKey represent this key should extract from rpc metadata.
func IsIncomingKey(key string) (ok bool) {
_, ok = outgoingKey[key]
if ok {
return
}
_, ok = incomingKey[key]
return
}