writes traces to the given instance along with search data. returns ids expected to be returned from a tag search and strings expected to be returned from a tag value search nolint:revive,unparam
(t *testing.T, i *instance, spanName, tagKey, tagValue string, postFixValue bool, includeEventLink bool)
| 694 | // be returned from a tag value search |
| 695 | // nolint:revive,unparam |
| 696 | func writeTracesForSearch(t *testing.T, i *instance, spanName, tagKey, tagValue string, postFixValue bool, includeEventLink bool) ([][]byte, []string, []string, []string) { |
| 697 | numTraces := 5 |
| 698 | ids := make([][]byte, 0, numTraces) |
| 699 | expectedTagValues := make([]string, 0, numTraces) |
| 700 | expectedEventTagValues := make([]string, 0, numTraces) |
| 701 | expectedLinkTagValues := make([]string, 0, numTraces) |
| 702 | |
| 703 | now := time.Now() |
| 704 | for j := 0; j < numTraces; j++ { |
| 705 | id := make([]byte, 16) |
| 706 | _, err := crand.Read(id) |
| 707 | require.NoError(t, err) |
| 708 | |
| 709 | tv := tagValue |
| 710 | if postFixValue { |
| 711 | tv += strconv.Itoa(j) |
| 712 | } |
| 713 | kv := &v1.KeyValue{Key: tagKey, Value: &v1.AnyValue{Value: &v1.AnyValue_StringValue{StringValue: tv}}} |
| 714 | eTv := "event-" + tv |
| 715 | lTv := "link-" + tv |
| 716 | eventKv := &v1.KeyValue{Key: tagKey, Value: &v1.AnyValue{Value: &v1.AnyValue_StringValue{StringValue: eTv}}} |
| 717 | linkKv := &v1.KeyValue{Key: tagKey, Value: &v1.AnyValue{Value: &v1.AnyValue_StringValue{StringValue: lTv}}} |
| 718 | expectedTagValues = append(expectedTagValues, tv) |
| 719 | if includeEventLink { |
| 720 | expectedEventTagValues = append(expectedEventTagValues, eTv) |
| 721 | expectedLinkTagValues = append(expectedLinkTagValues, lTv) |
| 722 | } |
| 723 | ids = append(ids, id) |
| 724 | |
| 725 | testTrace := test.MakeTrace(10, id) |
| 726 | // add the time |
| 727 | for _, batch := range testTrace.ResourceSpans { |
| 728 | for _, ils := range batch.ScopeSpans { |
| 729 | ils.Scope = &v1.InstrumentationScope{ |
| 730 | Name: "scope-name", |
| 731 | Version: "scope-version", |
| 732 | Attributes: []*v1.KeyValue{kv}, |
| 733 | } |
| 734 | for _, span := range ils.Spans { |
| 735 | span.Name = spanName |
| 736 | span.StartTimeUnixNano = uint64(now.UnixNano()) |
| 737 | span.EndTimeUnixNano = uint64(now.UnixNano()) |
| 738 | } |
| 739 | } |
| 740 | } |
| 741 | testTrace.ResourceSpans[0].ScopeSpans[0].Spans[0].Attributes = append(testTrace.ResourceSpans[0].ScopeSpans[0].Spans[0].Attributes, kv) |
| 742 | // add link and event |
| 743 | event := &trace_v1.Span_Event{Name: "event-name", Attributes: []*v1.KeyValue{eventKv}} |
| 744 | link := &trace_v1.Span_Link{TraceId: id, SpanId: id, Attributes: []*v1.KeyValue{linkKv}} |
| 745 | testTrace.ResourceSpans[0].ScopeSpans[0].Spans[0].Events = append(testTrace.ResourceSpans[0].ScopeSpans[0].Spans[0].Events, event) |
| 746 | testTrace.ResourceSpans[0].ScopeSpans[0].Spans[0].Links = append(testTrace.ResourceSpans[0].ScopeSpans[0].Spans[0].Links, link) |
| 747 | |
| 748 | trace.SortTrace(testTrace) |
| 749 | |
| 750 | traceBytes, err := testTrace.Marshal() |
| 751 | require.NoError(t, err) |
| 752 | |
| 753 | // Create a push request for livestore |
no test coverage detected