Documentation
¶
Overview ¶
Package data is used to test the trace service.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var VerifyFn = func(innerGm gm.Gomega, sharedContext helpers.SharedContext, args helpers.Args) { i, err := inputFS.ReadFile("input/" + args.Input + ".yml") innerGm.Expect(err).NotTo(gm.HaveOccurred()) query := &tracev1.QueryRequest{} helpers.UnmarshalYAML(i, query) if !args.WantErr { verifyQLWithRequest(innerGm, args, query, sharedContext.Connection) } query.TimeRange = helpers.TimeRange(args, sharedContext) query.Stages = args.Stages c := tracev1.NewTraceServiceClient(sharedContext.Connection) ctx := context.Background() resp, err := c.Query(ctx, query) if args.WantErr { if err == nil { g.Fail("expect error") } return } innerGm.Expect(err).NotTo(gm.HaveOccurred(), query.String()) if args.WantEmpty { innerGm.Expect(resp.Traces).To(gm.BeEmpty(), func() string { var j []byte j, err = marshalToJSONWithStringBytes(resp) if err != nil { return err.Error() } var y []byte y, err = yaml.JSONToYAML(j) if err != nil { return err.Error() } return string(y) }) return } if args.Want == "" { args.Want = args.Input } ww, err := wantFS.ReadFile("want/" + args.Want + ".yml") innerGm.Expect(err).NotTo(gm.HaveOccurred()) want := &tracev1.QueryResponse{} unmarshalYAMLWithSpanEncoding(ww, want) for i := range want.Traces { slices.SortFunc(want.Traces[i].Spans, func(a, b *tracev1.Span) int { return bytes.Compare(a.Span, b.Span) }) } for i := range resp.Traces { slices.SortFunc(resp.Traces[i].Spans, func(a, b *tracev1.Span) int { return bytes.Compare(a.Span, b.Span) }) } if args.DisOrder { slices.SortFunc(want.Traces, func(a, b *tracev1.Trace) int { if len(a.Spans) > 0 && len(b.Spans) > 0 && len(a.Spans[0].Tags) > 0 && len(b.Spans[0].Tags) > 0 { return strings.Compare(a.Spans[0].Tags[0].Value.GetStr().GetValue(), b.Spans[0].Tags[0].Value.GetStr().GetValue()) } return 0 }) slices.SortFunc(resp.Traces, func(a, b *tracev1.Trace) int { if len(a.Spans) > 0 && len(b.Spans) > 0 && len(a.Spans[0].Tags) > 0 && len(b.Spans[0].Tags) > 0 { return strings.Compare(a.Spans[0].Tags[0].Value.GetStr().GetValue(), b.Spans[0].Tags[0].Value.GetStr().GetValue()) } return 0 }) for _, trace := range want.Traces { slices.SortFunc(trace.Spans, func(a, b *tracev1.Span) int { if len(a.Tags) > 0 && len(b.Tags) > 0 { return strings.Compare(a.Tags[0].Value.GetStr().GetValue(), b.Tags[0].Value.GetStr().GetValue()) } return 0 }) } for _, trace := range resp.Traces { slices.SortFunc(trace.Spans, func(a, b *tracev1.Span) int { if len(a.Tags) > 0 && len(b.Tags) > 0 { return strings.Compare(a.Tags[0].Value.GetStr().GetValue(), b.Tags[0].Value.GetStr().GetValue()) } return 0 }) } } var extra []cmp.Option extra = append(extra, protocmp.IgnoreUnknown(), protocmp.Transform()) success := innerGm.Expect(cmp.Equal(resp, want, extra...)). To(gm.BeTrue(), func() string { var j []byte j, err = marshalToJSONWithStringBytes(resp) if err != nil { return err.Error() } var y []byte y, err = yaml.JSONToYAML(j) if err != nil { return err.Error() } return string(y) }) if !success { return } query.Trace = true resp, err = c.Query(ctx, query) innerGm.Expect(err).NotTo(gm.HaveOccurred()) innerGm.Expect(resp.TraceQueryResult).NotTo(gm.BeNil()) innerGm.Expect(resp.TraceQueryResult.GetSpans()).NotTo(gm.BeEmpty()) }
VerifyFn verify whether the query response matches the wanted result.
Functions ¶
func GetSpanDataAsString ¶
GetSpanDataAsString extracts the span data as a string from a Span. This converts the raw bytes back to the original string value like "trace_001_span_1".
func WriteToGroup ¶
func WriteToGroup(conn *grpclib.ClientConn, name, group, fileName string, baseTime time.Time, interval time.Duration)
WriteToGroup writes trace data to a specific group.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.