Welcome to mirror list, hosted at ThFree Co, Russian Federation.

trace_helper_test.go « trace2hooks « git « internal - gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 26771199095cf93386fc3a6d1faddfb58b6cc816 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package trace2hooks

import (
	"time"

	"gitlab.com/gitlab-org/gitaly/v16/internal/git/trace2"
)

func createExampleTrace(startTime time.Time) *trace2.Trace {
	//                         0s    1s    2s    3s    4s    5s    6s    7s
	// root                    |---->|---->|---->|---->|---->|---->|---->|
	// version                 |---->|     |     |     |     |     |     |
	// start                   |     |---->|     |     |     |     |     |
	// def_repo                |     |     |---->|     |     |     |     |
	// index:do_read_index     |     |     |     |---->|---->|---->|     |
	// cache_tree:read         |     |     |     |---->|     |     |     |
	// data:index:read/version |     |     |     |     |---->|     |     |
	// data:index:read/cache_nr|     |     |     |     |     |---->|     |
	// submodule:parallel/fetch|     |     |     |     |     |     |---->|
	return connectChildren(&trace2.Trace{
		Thread:     "main",
		Name:       "root",
		StartTime:  startTime,
		FinishTime: startTime.Add(7 * time.Second),
		Depth:      0,
		Children: []*trace2.Trace{
			{
				Thread:     "main",
				Name:       "version",
				StartTime:  startTime,
				FinishTime: startTime.Add(1 * time.Second), Metadata: map[string]string{"exe": "2.42.0"},
				Depth: 1,
			},
			{
				Thread:     "main",
				Name:       "start",
				StartTime:  startTime.Add(1 * time.Second),
				FinishTime: startTime.Add(2 * time.Second),
				Metadata:   map[string]string{"argv": "git fetch origin master"},
				Depth:      1,
			},
			{
				Thread:     "main",
				Name:       "def_repo",
				StartTime:  startTime.Add(2 * time.Second),
				FinishTime: startTime.Add(3 * time.Second),
				Metadata:   map[string]string{"worktree": "/Users/userx123/Documents/gitlab-development-kit"},
				Depth:      1,
			},
			connectChildren(&trace2.Trace{
				Thread:     "main",
				Name:       "index:do_read_index",
				StartTime:  startTime.Add(3 * time.Second),
				FinishTime: startTime.Add(6 * time.Second),
				Depth:      1,
				Children: []*trace2.Trace{
					{
						Thread:     "main",
						Name:       "cache_tree:read",
						ChildID:    "0",
						StartTime:  startTime.Add(3 * time.Second),
						FinishTime: startTime.Add(4 * time.Second),
						Depth:      2,
					},
					{
						Thread:     "main",
						ChildID:    "0",
						Name:       "data:index:read/version",
						StartTime:  startTime.Add(4 * time.Second),
						FinishTime: startTime.Add(5 * time.Second),
						Metadata:   map[string]string{"data": "2"},
						Depth:      2,
					},
					{
						Thread:     "main",
						ChildID:    "0",
						Name:       "data:index:read/cache_nr",
						StartTime:  startTime.Add(5 * time.Second),
						FinishTime: startTime.Add(6 * time.Second),
						Metadata:   map[string]string{"data": "1500"},
						Depth:      2,
					},
				},
			}),
			{
				Thread:     "main",
				Name:       "submodule:parallel/fetch",
				StartTime:  startTime.Add(6 * time.Second),
				FinishTime: startTime.Add(7 * time.Second),
				Depth:      1,
			},
		},
	})
}

func connectChildren(trace *trace2.Trace) *trace2.Trace {
	for _, t := range trace.Children {
		t.Parent = trace
	}
	return trace
}