Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: fix grpc trace #978

Merged
merged 29 commits into from
Aug 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
06fc4b1
move s3.pb to s3 directory
wenxuwan Aug 8, 2022
bdbecf2
Merge remote-tracking branch 'upstream/main'
wenxuwan Sep 8, 2022
fce3f5f
Merge remote-tracking branch 'upstream/main'
wenxuwan Sep 17, 2022
91aa28b
Merge remote-tracking branch 'upstream/main'
wenxuwan Oct 10, 2022
0d1a281
go mod tidy
wenxuwan Oct 10, 2022
d685bdf
Merge remote-tracking branch 'upstream/main'
wenxuwan Oct 26, 2022
271e77c
add contentLenth
wenxuwan Oct 26, 2022
c2214b9
remove blank
wenxuwan Oct 26, 2022
49cd4dc
Merge remote-tracking branch 'upstream/main'
wenxuwan Nov 7, 2022
71aee7f
Merge remote-tracking branch 'upstream/main'
wenxuwan Dec 22, 2022
b80b544
Merge remote-tracking branch 'upstream/main'
wenxuwan Jan 4, 2023
e054cdf
Merge remote-tracking branch 'upstream/main'
wenxuwan Feb 10, 2023
97cc528
Merge remote-tracking branch 'upstream/main'
wenxuwan Feb 16, 2023
cf5b839
Merge remote-tracking branch 'upstream/main'
wenxuwan Mar 13, 2023
5a1596b
Merge remote-tracking branch 'upstream/main'
wenxuwan Mar 27, 2023
1de3fbf
Merge remote-tracking branch 'upstream/main'
wenxuwan Mar 29, 2023
c65bf4a
Merge remote-tracking branch 'upstream/main'
wenxuwan May 11, 2023
4a41300
Merge remote-tracking branch 'upstream/main'
wenxuwan May 17, 2023
ee14118
Merge remote-tracking branch 'upstream/main'
wenxuwan May 29, 2023
b05d5bd
Merge remote-tracking branch 'upstream/main'
wenxuwan May 31, 2023
a723030
Merge remote-tracking branch 'upstream/main'
wenxuwan Jun 5, 2023
c734e88
Merge remote-tracking branch 'upstream/main'
wenxuwan Jun 7, 2023
5935433
Merge remote-tracking branch 'upstream/main'
wenxuwan Jun 15, 2023
71ce5e5
Merge remote-tracking branch 'upstream/main'
wenxuwan Jun 27, 2023
ff0d837
Merge remote-tracking branch 'upstream/main'
wenxuwan Jun 29, 2023
63bee0a
Merge remote-tracking branch 'upstream/main'
wenxuwan Jul 7, 2023
b7c28db
Merge remote-tracking branch 'upstream/main'
wenxuwan Jul 14, 2023
ac95f55
Merge remote-tracking branch 'upstream/main'
wenxuwan Jul 26, 2023
e333205
fix concurrent error
wenxuwan Aug 2, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion components/trace/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ var (

// Generator is used to get or generate traceId/spanId/context
type Generator interface {
Init(ctx context.Context)
GetTraceId(ctx context.Context) string
GetSpanId(ctx context.Context) string
GenerateNewContext(ctx context.Context, span api.Span) context.Context
Expand Down
1 change: 0 additions & 1 deletion components/trace/generator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
type MockGenerator struct {
}

func (m *MockGenerator) Init(ctx context.Context) {}
func (m *MockGenerator) GetTraceId(ctx context.Context) string {
return "mock"
}
Expand Down
23 changes: 10 additions & 13 deletions diagnostics/genetator.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,12 @@ func init() {

// OpenGenerator is the default implementation of Generator
type OpenGenerator struct {
md metadata.MD
}

func (o *OpenGenerator) Init(ctx context.Context) {
o.md = map[string][]string{}
if md, ok := metadata.FromIncomingContext(ctx); ok {
o.md = md
}
}
func (o *OpenGenerator) GetTraceId(ctx context.Context) string {
var traceId string
if v, ok := o.md[strings.ToLower(sofa.TRACER_ID_KEY)]; ok {
md, _ := metadata.FromIncomingContext(ctx)
if v, ok := md[strings.ToLower(sofa.TRACER_ID_KEY)]; ok {
traceId = v[0]
} else {
traceId = mtrace.IdGen().GenerateTraceId()
Expand All @@ -42,7 +36,8 @@ func (o *OpenGenerator) GetTraceId(ctx context.Context) string {

func (o *OpenGenerator) GetSpanId(ctx context.Context) string {
var spanId string
if v, ok := o.md[strings.ToLower(sofa.RPC_ID_KEY)]; ok {
md, _ := metadata.FromIncomingContext(ctx)
if v, ok := md[strings.ToLower(sofa.RPC_ID_KEY)]; ok {
spanId = v[0]
} else {
spanId = "0"
Expand All @@ -55,7 +50,8 @@ func (o *OpenGenerator) GetSpanId(ctx context.Context) string {
func (o *OpenGenerator) GetParentSpanId(ctx context.Context) string {
// TODO: need some design to get the parent id
var spanId string
if v, ok := o.md[strings.ToLower(sofa.RPC_ID_KEY)]; ok {
md, _ := metadata.FromIncomingContext(ctx)
if v, ok := md[strings.ToLower(sofa.RPC_ID_KEY)]; ok {
spanId = v[0]
} else {
spanId = "0"
Expand All @@ -64,13 +60,14 @@ func (o *OpenGenerator) GetParentSpanId(ctx context.Context) string {
}

func (o *OpenGenerator) GenerateNewContext(ctx context.Context, span api.Span) context.Context {
newMd := o.md.Copy()
md, _ := metadata.FromIncomingContext(ctx)
newMd := md.Copy()
newMd[strings.ToLower(sofa.TRACER_ID_KEY)] = []string{span.TraceId()}
newMd[strings.ToLower(sofa.RPC_ID_KEY)] = []string{span.SpanId()}
if v, ok := o.md[strings.ToLower(sofa.APP_NAME_KEY)]; ok && len(v) > 0 {
if v, ok := md[strings.ToLower(sofa.APP_NAME_KEY)]; ok && len(v) > 0 {
span.SetTag(trace.LAYOTTO_APP_NAME, v[0])
}
if v, ok := o.md[strings.ToLower(sofa.SOFA_TRACE_BAGGAGE_DATA)]; ok && len(v) > 0 {
if v, ok := md[strings.ToLower(sofa.SOFA_TRACE_BAGGAGE_DATA)]; ok && len(v) > 0 {
span.SetTag(trace.LAYOTTO_ATTRS_CONTENT, v[0])
}
ctx = metadata.NewIncomingContext(ctx, newMd)
Expand Down
2 changes: 0 additions & 2 deletions diagnostics/tracing.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ func NewSpan(ctx context.Context, startTime time.Time, config map[string]interfa
log.DefaultLogger.Errorf("not support trace type: %+v", generatorName)
return nil
}
ge.Init(ctx)
// use generator to extract the span/trace/parentSpan IDs
spanId := ge.GetSpanId(ctx)
traceId := ge.GetTraceId(ctx)
Expand All @@ -85,7 +84,6 @@ func GetNewContext(ctx context.Context, span api.Span) context.Context {
if ge == nil {
return ctx
}
ge.Init(ctx)
newCtx := ge.GenerateNewContext(ctx, span)
return newCtx
}
Loading