mirror of
https://github.com/netbirdio/netbird.git
synced 2026-03-31 06:34:19 -04:00
[management] use xid as request id for logging (#4955)
This commit is contained in:
@@ -60,14 +60,7 @@ func (hook ContextHook) Fire(entry *logrus.Entry) error {
|
|||||||
|
|
||||||
entry.Data["context"] = source
|
entry.Data["context"] = source
|
||||||
|
|
||||||
switch source {
|
addFields(entry)
|
||||||
case HTTPSource:
|
|
||||||
addHTTPFields(entry)
|
|
||||||
case GRPCSource:
|
|
||||||
addGRPCFields(entry)
|
|
||||||
case SystemSource:
|
|
||||||
addSystemFields(entry)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -99,7 +92,7 @@ func (hook ContextHook) parseSrc(filePath string) string {
|
|||||||
return fmt.Sprintf("%s/%s", pkg, file)
|
return fmt.Sprintf("%s/%s", pkg, file)
|
||||||
}
|
}
|
||||||
|
|
||||||
func addHTTPFields(entry *logrus.Entry) {
|
func addFields(entry *logrus.Entry) {
|
||||||
if ctxReqID, ok := entry.Context.Value(context.RequestIDKey).(string); ok {
|
if ctxReqID, ok := entry.Context.Value(context.RequestIDKey).(string); ok {
|
||||||
entry.Data[context.RequestIDKey] = ctxReqID
|
entry.Data[context.RequestIDKey] = ctxReqID
|
||||||
}
|
}
|
||||||
@@ -109,30 +102,6 @@ func addHTTPFields(entry *logrus.Entry) {
|
|||||||
if ctxInitiatorID, ok := entry.Context.Value(context.UserIDKey).(string); ok {
|
if ctxInitiatorID, ok := entry.Context.Value(context.UserIDKey).(string); ok {
|
||||||
entry.Data[context.UserIDKey] = ctxInitiatorID
|
entry.Data[context.UserIDKey] = ctxInitiatorID
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
func addGRPCFields(entry *logrus.Entry) {
|
|
||||||
if ctxReqID, ok := entry.Context.Value(context.RequestIDKey).(string); ok {
|
|
||||||
entry.Data[context.RequestIDKey] = ctxReqID
|
|
||||||
}
|
|
||||||
if ctxAccountID, ok := entry.Context.Value(context.AccountIDKey).(string); ok {
|
|
||||||
entry.Data[context.AccountIDKey] = ctxAccountID
|
|
||||||
}
|
|
||||||
if ctxDeviceID, ok := entry.Context.Value(context.PeerIDKey).(string); ok {
|
|
||||||
entry.Data[context.PeerIDKey] = ctxDeviceID
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func addSystemFields(entry *logrus.Entry) {
|
|
||||||
if ctxReqID, ok := entry.Context.Value(context.RequestIDKey).(string); ok {
|
|
||||||
entry.Data[context.RequestIDKey] = ctxReqID
|
|
||||||
}
|
|
||||||
if ctxInitiatorID, ok := entry.Context.Value(context.UserIDKey).(string); ok {
|
|
||||||
entry.Data[context.UserIDKey] = ctxInitiatorID
|
|
||||||
}
|
|
||||||
if ctxAccountID, ok := entry.Context.Value(context.AccountIDKey).(string); ok {
|
|
||||||
entry.Data[context.AccountIDKey] = ctxAccountID
|
|
||||||
}
|
|
||||||
if ctxDeviceID, ok := entry.Context.Value(context.PeerIDKey).(string); ok {
|
if ctxDeviceID, ok := entry.Context.Value(context.PeerIDKey).(string); ok {
|
||||||
entry.Data[context.PeerIDKey] = ctxDeviceID
|
entry.Data[context.PeerIDKey] = ctxDeviceID
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,9 +10,9 @@ import (
|
|||||||
"slices"
|
"slices"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
|
||||||
grpcMiddleware "github.com/grpc-ecosystem/go-grpc-middleware/v2"
|
grpcMiddleware "github.com/grpc-ecosystem/go-grpc-middleware/v2"
|
||||||
"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/realip"
|
"github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/realip"
|
||||||
|
"github.com/rs/xid"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
@@ -180,7 +180,7 @@ func unaryInterceptor(
|
|||||||
info *grpc.UnaryServerInfo,
|
info *grpc.UnaryServerInfo,
|
||||||
handler grpc.UnaryHandler,
|
handler grpc.UnaryHandler,
|
||||||
) (interface{}, error) {
|
) (interface{}, error) {
|
||||||
reqID := uuid.New().String()
|
reqID := xid.New().String()
|
||||||
//nolint
|
//nolint
|
||||||
ctx = context.WithValue(ctx, hook.ExecutionContextKey, hook.GRPCSource)
|
ctx = context.WithValue(ctx, hook.ExecutionContextKey, hook.GRPCSource)
|
||||||
//nolint
|
//nolint
|
||||||
@@ -194,7 +194,7 @@ func streamInterceptor(
|
|||||||
info *grpc.StreamServerInfo,
|
info *grpc.StreamServerInfo,
|
||||||
handler grpc.StreamHandler,
|
handler grpc.StreamHandler,
|
||||||
) error {
|
) error {
|
||||||
reqID := uuid.New().String()
|
reqID := xid.New().String()
|
||||||
wrapped := grpcMiddleware.WrapServerStream(ss)
|
wrapped := grpcMiddleware.WrapServerStream(ss)
|
||||||
//nolint
|
//nolint
|
||||||
ctx := context.WithValue(ss.Context(), hook.ExecutionContextKey, hook.GRPCSource)
|
ctx := context.WithValue(ss.Context(), hook.ExecutionContextKey, hook.GRPCSource)
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/google/uuid"
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
|
"github.com/rs/xid"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
"go.opentelemetry.io/otel/attribute"
|
"go.opentelemetry.io/otel/attribute"
|
||||||
"go.opentelemetry.io/otel/metric"
|
"go.opentelemetry.io/otel/metric"
|
||||||
@@ -169,7 +169,7 @@ func (m *HTTPMiddleware) Handler(h http.Handler) http.Handler {
|
|||||||
//nolint
|
//nolint
|
||||||
ctx := context.WithValue(r.Context(), hook.ExecutionContextKey, hook.HTTPSource)
|
ctx := context.WithValue(r.Context(), hook.ExecutionContextKey, hook.HTTPSource)
|
||||||
|
|
||||||
reqID := uuid.New().String()
|
reqID := xid.New().String()
|
||||||
//nolint
|
//nolint
|
||||||
ctx = context.WithValue(ctx, nbContext.RequestIDKey, reqID)
|
ctx = context.WithValue(ctx, nbContext.RequestIDKey, reqID)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user