Context-based logging with request ID (#6899)

This commit is contained in:
Aleksey Kosov
2025-06-20 16:23:53 +03:00
committed by GitHub
parent a72c442945
commit 90c128e7a6
8 changed files with 302 additions and 48 deletions

View File

@@ -3,8 +3,6 @@ package pb
import (
"context"
"fmt"
"github.com/google/uuid"
"google.golang.org/grpc/metadata"
"math/rand/v2"
"net/http"
"strconv"
@@ -12,6 +10,10 @@ import (
"sync"
"time"
"github.com/google/uuid"
"github.com/seaweedfs/seaweedfs/weed/util/request_id"
"google.golang.org/grpc/metadata"
"github.com/seaweedfs/seaweedfs/weed/glog"
"github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb"
"github.com/seaweedfs/seaweedfs/weed/util"
@@ -128,7 +130,7 @@ func requestIDUnaryInterceptor() grpc.UnaryServerInterceptor {
handler grpc.UnaryHandler,
) (interface{}, error) {
incomingMd, _ := metadata.FromIncomingContext(ctx)
idList := incomingMd.Get(util.RequestIDKey)
idList := incomingMd.Get(request_id.AmzRequestIDHeader)
var reqID string
if len(idList) > 0 {
reqID = idList[0]
@@ -139,11 +141,12 @@ func requestIDUnaryInterceptor() grpc.UnaryServerInterceptor {
ctx = metadata.NewOutgoingContext(ctx,
metadata.New(map[string]string{
util.RequestIDKey: reqID,
request_id.AmzRequestIDHeader: reqID,
}))
ctx = util.WithRequestID(ctx, reqID)
grpc.SetTrailer(ctx, metadata.Pairs(util.RequestIDKey, reqID))
ctx = request_id.Set(ctx, reqID)
grpc.SetTrailer(ctx, metadata.Pairs(request_id.AmzRequestIDHeader, reqID))
return handler(ctx, req)
}