4 Commits

Author SHA1 Message Date
c31b73f937 Merge pull request 'removed add loggerContextAttr' (#105) from devstigneev/micro-wrapper-requestid:v3 into v3
Some checks failed
codeql / analyze (go) (push) Failing after 1m54s
build / test (push) Failing after 5m17s
build / lint (push) Successful in 9m35s
Reviewed-on: #105
2024-12-06 12:38:12 +03:00
aee2908ed1 removed add loggerContextAttr
Some checks failed
automerge / automerge (pull_request) Has been skipped
dependabot-automerge / automerge (pull_request) Has been skipped
autoapprove / autoapprove (pull_request) Successful in 7s
codeql / analyze (go) (pull_request) Has been cancelled
prbuild / test (pull_request) Has been cancelled
prbuild / lint (pull_request) Has been cancelled
2024-12-06 00:29:56 +03:00
f85cbcdca2 rework
Some checks failed
build / test (push) Failing after 1m16s
codeql / analyze (go) (push) Failing after 1m37s
build / lint (push) Successful in 9m16s
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2024-04-23 22:32:49 +03:00
8edb53d141 update for latest micro
Some checks failed
build / test (push) Failing after 1m17s
codeql / analyze (go) (push) Failing after 1m37s
build / lint (push) Successful in 9m15s
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2024-04-23 10:24:09 +03:00
2 changed files with 23 additions and 22 deletions

12
.gitignore vendored
View File

@@ -1,3 +1,9 @@
# Develop tools
/.vscode/
/.idea/
.idea
.vscode
# Binaries for programs and plugins # Binaries for programs and plugins
*.exe *.exe
*.exe~ *.exe~
@@ -5,6 +11,12 @@
*.so *.so
*.dylib *.dylib
# Folders
_obj
_test
_build
.DS_Store
# Test binary, built with `go test -c` # Test binary, built with `go test -c`
*.test *.test

View File

@@ -2,26 +2,13 @@ package requestid // import "go.unistack.org/micro-wrapper-requestid/v3"
import ( import (
"context" "context"
"net/textproto"
"strings"
"go.unistack.org/micro/v3/client" "go.unistack.org/micro/v3/client"
"go.unistack.org/micro/v3/logger"
"go.unistack.org/micro/v3/metadata" "go.unistack.org/micro/v3/metadata"
"go.unistack.org/micro/v3/server" "go.unistack.org/micro/v3/server"
"go.unistack.org/micro/v3/util/id" "go.unistack.org/micro/v3/util/id"
"net/textproto"
) )
func init() {
requestIDLog := strings.ToLower(DefaultMetadataKey)
logger.DefaultContextAttrFuncs = append(logger.DefaultContextAttrFuncs, func(ctx context.Context) []interface{} {
if v, ok := ctx.Value(XRequestIDKey{}).(string); ok {
return []interface{}{requestIDLog, v}
}
return nil
})
}
type XRequestIDKey struct{} type XRequestIDKey struct{}
// DefaultMetadataKey contains metadata key // DefaultMetadataKey contains metadata key
@@ -81,11 +68,13 @@ var DefaultMetadataFunc = func(ctx context.Context) (context.Context, error) {
return ctx, nil return ctx, nil
} }
type Hook struct{} type hook struct{}
var Wrapper = &Hook{} func NewHook() *hook {
return &hook{}
}
func (w *Hook) ServerSubscriber(next server.FuncSubHandler) server.FuncSubHandler { func (w *hook) ServerSubscriber(next server.FuncSubHandler) server.FuncSubHandler {
return func(ctx context.Context, msg server.Message) error { return func(ctx context.Context, msg server.Message) error {
var err error var err error
if xid, ok := msg.Header()[DefaultMetadataKey]; ok { if xid, ok := msg.Header()[DefaultMetadataKey]; ok {
@@ -98,7 +87,7 @@ func (w *Hook) ServerSubscriber(next server.FuncSubHandler) server.FuncSubHandle
} }
} }
func (w *Hook) ServerHandler(next server.FuncHandler) server.FuncHandler { func (w *hook) ServerHandler(next server.FuncHandler) server.FuncHandler {
return func(ctx context.Context, req server.Request, rsp interface{}) error { return func(ctx context.Context, req server.Request, rsp interface{}) error {
var err error var err error
if ctx, err = DefaultMetadataFunc(ctx); err != nil { if ctx, err = DefaultMetadataFunc(ctx); err != nil {
@@ -108,7 +97,7 @@ func (w *Hook) ServerHandler(next server.FuncHandler) server.FuncHandler {
} }
} }
func (w *Hook) ClientBatchPublish(next client.FuncBatchPublish) client.FuncBatchPublish { func (w *hook) ClientBatchPublish(next client.FuncBatchPublish) client.FuncBatchPublish {
return func(ctx context.Context, msgs []client.Message, opts ...client.PublishOption) error { return func(ctx context.Context, msgs []client.Message, opts ...client.PublishOption) error {
var err error var err error
if ctx, err = DefaultMetadataFunc(ctx); err != nil { if ctx, err = DefaultMetadataFunc(ctx); err != nil {
@@ -118,7 +107,7 @@ func (w *Hook) ClientBatchPublish(next client.FuncBatchPublish) client.FuncBatch
} }
} }
func (w *Hook) ClientPublish(next client.FuncPublish) client.FuncPublish { func (w *hook) ClientPublish(next client.FuncPublish) client.FuncPublish {
return func(ctx context.Context, msg client.Message, opts ...client.PublishOption) error { return func(ctx context.Context, msg client.Message, opts ...client.PublishOption) error {
var err error var err error
if ctx, err = DefaultMetadataFunc(ctx); err != nil { if ctx, err = DefaultMetadataFunc(ctx); err != nil {
@@ -128,7 +117,7 @@ func (w *Hook) ClientPublish(next client.FuncPublish) client.FuncPublish {
} }
} }
func (w *Hook) ClientCall(next client.FuncCall) client.FuncCall { func (w *hook) ClientCall(next client.FuncCall) client.FuncCall {
return func(ctx context.Context, req client.Request, rsp interface{}, opts ...client.CallOption) error { return func(ctx context.Context, req client.Request, rsp interface{}, opts ...client.CallOption) error {
var err error var err error
if ctx, err = DefaultMetadataFunc(ctx); err != nil { if ctx, err = DefaultMetadataFunc(ctx); err != nil {
@@ -138,7 +127,7 @@ func (w *Hook) ClientCall(next client.FuncCall) client.FuncCall {
} }
} }
func (w *Hook) ClientStream(next client.FuncStream) client.FuncStream { func (w *hook) ClientStream(next client.FuncStream) client.FuncStream {
return func(ctx context.Context, req client.Request, opts ...client.CallOption) (client.Stream, error) { return func(ctx context.Context, req client.Request, opts ...client.CallOption) (client.Stream, error) {
var err error var err error
if ctx, err = DefaultMetadataFunc(ctx); err != nil { if ctx, err = DefaultMetadataFunc(ctx); err != nil {