8
8
"fmt"
9
9
"internal/trace"
10
10
"internal/trace/traceviewer"
11
- tracev2 "internal/trace/v2"
12
11
"strings"
13
12
)
14
13
@@ -18,21 +17,21 @@ import (
18
17
type generator interface {
19
18
// Global parts.
20
19
Sync () // Notifies the generator of an EventSync event.
21
- StackSample (ctx * traceContext , ev * tracev2 .Event )
22
- GlobalRange (ctx * traceContext , ev * tracev2 .Event )
23
- GlobalMetric (ctx * traceContext , ev * tracev2 .Event )
20
+ StackSample (ctx * traceContext , ev * trace .Event )
21
+ GlobalRange (ctx * traceContext , ev * trace .Event )
22
+ GlobalMetric (ctx * traceContext , ev * trace .Event )
24
23
25
24
// Goroutine parts.
26
- GoroutineLabel (ctx * traceContext , ev * tracev2 .Event )
27
- GoroutineRange (ctx * traceContext , ev * tracev2 .Event )
28
- GoroutineTransition (ctx * traceContext , ev * tracev2 .Event )
25
+ GoroutineLabel (ctx * traceContext , ev * trace .Event )
26
+ GoroutineRange (ctx * traceContext , ev * trace .Event )
27
+ GoroutineTransition (ctx * traceContext , ev * trace .Event )
29
28
30
29
// Proc parts.
31
- ProcRange (ctx * traceContext , ev * tracev2 .Event )
32
- ProcTransition (ctx * traceContext , ev * tracev2 .Event )
30
+ ProcRange (ctx * traceContext , ev * trace .Event )
31
+ ProcTransition (ctx * traceContext , ev * trace .Event )
33
32
34
33
// User annotations.
35
- Log (ctx * traceContext , ev * tracev2 .Event )
34
+ Log (ctx * traceContext , ev * trace .Event )
36
35
37
36
// Finish indicates the end of the trace and finalizes generation.
38
37
Finish (ctx * traceContext )
@@ -44,35 +43,35 @@ func runGenerator(ctx *traceContext, g generator, parsed *parsedTrace, opts *gen
44
43
ev := & parsed .events [i ]
45
44
46
45
switch ev .Kind () {
47
- case tracev2 .EventSync :
46
+ case trace .EventSync :
48
47
g .Sync ()
49
- case tracev2 .EventStackSample :
48
+ case trace .EventStackSample :
50
49
g .StackSample (ctx , ev )
51
- case tracev2 .EventRangeBegin , tracev2 .EventRangeActive , tracev2 .EventRangeEnd :
50
+ case trace .EventRangeBegin , trace .EventRangeActive , trace .EventRangeEnd :
52
51
r := ev .Range ()
53
52
switch r .Scope .Kind {
54
- case tracev2 .ResourceGoroutine :
53
+ case trace .ResourceGoroutine :
55
54
g .GoroutineRange (ctx , ev )
56
- case tracev2 .ResourceProc :
55
+ case trace .ResourceProc :
57
56
g .ProcRange (ctx , ev )
58
- case tracev2 .ResourceNone :
57
+ case trace .ResourceNone :
59
58
g .GlobalRange (ctx , ev )
60
59
}
61
- case tracev2 .EventMetric :
60
+ case trace .EventMetric :
62
61
g .GlobalMetric (ctx , ev )
63
- case tracev2 .EventLabel :
62
+ case trace .EventLabel :
64
63
l := ev .Label ()
65
- if l .Resource .Kind == tracev2 .ResourceGoroutine {
64
+ if l .Resource .Kind == trace .ResourceGoroutine {
66
65
g .GoroutineLabel (ctx , ev )
67
66
}
68
- case tracev2 .EventStateTransition :
67
+ case trace .EventStateTransition :
69
68
switch ev .StateTransition ().Resource .Kind {
70
- case tracev2 .ResourceProc :
69
+ case trace .ResourceProc :
71
70
g .ProcTransition (ctx , ev )
72
- case tracev2 .ResourceGoroutine :
71
+ case trace .ResourceGoroutine :
73
72
g .GoroutineTransition (ctx , ev )
74
73
}
75
- case tracev2 .EventLog :
74
+ case trace .EventLog :
76
75
g .Log (ctx , ev )
77
76
}
78
77
}
@@ -93,8 +92,8 @@ func runGenerator(ctx *traceContext, g generator, parsed *parsedTrace, opts *gen
93
92
// lowest first.
94
93
func emitTask (ctx * traceContext , task * trace.UserTaskSummary , sortIndex int ) {
95
94
// Collect information about the task.
96
- var startStack , endStack tracev2 .Stack
97
- var startG , endG tracev2 .GoID
95
+ var startStack , endStack trace .Stack
96
+ var startG , endG trace .GoID
98
97
startTime , endTime := ctx .startTime , ctx .endTime
99
98
if task .Start != nil {
100
99
startStack = task .Start .Stack ()
@@ -128,7 +127,7 @@ func emitTask(ctx *traceContext, task *trace.UserTaskSummary, sortIndex int) {
128
127
Arg : arg ,
129
128
})
130
129
// Emit an arrow from the parent to the child.
131
- if task .Parent != nil && task .Start != nil && task .Start .Kind () == tracev2 .EventTaskBegin {
130
+ if task .Parent != nil && task .Start != nil && task .Start .Kind () == trace .EventTaskBegin {
132
131
ctx .TaskArrow (traceviewer.ArrowEvent {
133
132
Name : "newTask" ,
134
133
Start : ctx .elapsed (task .Start .Time ()),
@@ -151,8 +150,8 @@ func emitRegion(ctx *traceContext, region *trace.UserRegionSummary) {
151
150
return
152
151
}
153
152
// Collect information about the region.
154
- var startStack , endStack tracev2 .Stack
155
- goroutine := tracev2 .NoGoroutine
153
+ var startStack , endStack trace .Stack
154
+ goroutine := trace .NoGoroutine
156
155
startTime , endTime := ctx .startTime , ctx .endTime
157
156
if region .Start != nil {
158
157
startStack = region .Start .Stack ()
@@ -164,7 +163,7 @@ func emitRegion(ctx *traceContext, region *trace.UserRegionSummary) {
164
163
endTime = region .End .Time ()
165
164
goroutine = region .End .Goroutine ()
166
165
}
167
- if goroutine == tracev2 .NoGoroutine {
166
+ if goroutine == trace .NoGoroutine {
168
167
return
169
168
}
170
169
arg := struct {
@@ -194,11 +193,11 @@ func emitRegion(ctx *traceContext, region *trace.UserRegionSummary) {
194
193
// The provided resource is the resource the stack sample should count against.
195
194
type stackSampleGenerator [R resource ] struct {
196
195
// getResource is a function to extract a resource ID from a stack sample event.
197
- getResource func (* tracev2 .Event ) R
196
+ getResource func (* trace .Event ) R
198
197
}
199
198
200
199
// StackSample implements a stack sample event handler. It expects ev to be one such event.
201
- func (g * stackSampleGenerator [R ]) StackSample (ctx * traceContext , ev * tracev2 .Event ) {
200
+ func (g * stackSampleGenerator [R ]) StackSample (ctx * traceContext , ev * trace .Event ) {
202
201
id := g .getResource (ev )
203
202
if id == R (noResource ) {
204
203
// We have nowhere to put this in the UI.
@@ -213,7 +212,7 @@ func (g *stackSampleGenerator[R]) StackSample(ctx *traceContext, ev *tracev2.Eve
213
212
}
214
213
215
214
// globalRangeGenerator implements a generic handler for EventRange* events that pertain
216
- // to tracev2 .ResourceNone (the global scope).
215
+ // to trace .ResourceNone (the global scope).
217
216
type globalRangeGenerator struct {
218
217
ranges map [string ]activeRange
219
218
seenSync bool
@@ -226,21 +225,21 @@ func (g *globalRangeGenerator) Sync() {
226
225
227
226
// GlobalRange implements a handler for EventRange* events whose Scope.Kind is ResourceNone.
228
227
// It expects ev to be one such event.
229
- func (g * globalRangeGenerator ) GlobalRange (ctx * traceContext , ev * tracev2 .Event ) {
228
+ func (g * globalRangeGenerator ) GlobalRange (ctx * traceContext , ev * trace .Event ) {
230
229
if g .ranges == nil {
231
230
g .ranges = make (map [string ]activeRange )
232
231
}
233
232
r := ev .Range ()
234
233
switch ev .Kind () {
235
- case tracev2 .EventRangeBegin :
234
+ case trace .EventRangeBegin :
236
235
g .ranges [r .Name ] = activeRange {ev .Time (), ev .Stack ()}
237
- case tracev2 .EventRangeActive :
236
+ case trace .EventRangeActive :
238
237
// If we've seen a Sync event, then Active events are always redundant.
239
238
if ! g .seenSync {
240
239
// Otherwise, they extend back to the start of the trace.
241
240
g .ranges [r .Name ] = activeRange {ctx .startTime , ev .Stack ()}
242
241
}
243
- case tracev2 .EventRangeEnd :
242
+ case trace .EventRangeEnd :
244
243
// Only emit GC events, because we have nowhere to
245
244
// put other events.
246
245
ar := g .ranges [r .Name ]
@@ -279,7 +278,7 @@ type globalMetricGenerator struct {
279
278
}
280
279
281
280
// GlobalMetric implements an event handler for EventMetric events. ev must be one such event.
282
- func (g * globalMetricGenerator ) GlobalMetric (ctx * traceContext , ev * tracev2 .Event ) {
281
+ func (g * globalMetricGenerator ) GlobalMetric (ctx * traceContext , ev * trace .Event ) {
283
282
m := ev .Metric ()
284
283
switch m .Name {
285
284
case "/memory/classes/heap/objects:bytes" :
@@ -294,7 +293,7 @@ func (g *globalMetricGenerator) GlobalMetric(ctx *traceContext, ev *tracev2.Even
294
293
// procRangeGenerator implements a generic handler for EventRange* events whose Scope.Kind is
295
294
// ResourceProc.
296
295
type procRangeGenerator struct {
297
- ranges map [tracev2 .Range ]activeRange
296
+ ranges map [trace .Range ]activeRange
298
297
seenSync bool
299
298
}
300
299
@@ -305,21 +304,21 @@ func (g *procRangeGenerator) Sync() {
305
304
306
305
// ProcRange implements a handler for EventRange* events whose Scope.Kind is ResourceProc.
307
306
// It expects ev to be one such event.
308
- func (g * procRangeGenerator ) ProcRange (ctx * traceContext , ev * tracev2 .Event ) {
307
+ func (g * procRangeGenerator ) ProcRange (ctx * traceContext , ev * trace .Event ) {
309
308
if g .ranges == nil {
310
- g .ranges = make (map [tracev2 .Range ]activeRange )
309
+ g .ranges = make (map [trace .Range ]activeRange )
311
310
}
312
311
r := ev .Range ()
313
312
switch ev .Kind () {
314
- case tracev2 .EventRangeBegin :
313
+ case trace .EventRangeBegin :
315
314
g .ranges [r ] = activeRange {ev .Time (), ev .Stack ()}
316
- case tracev2 .EventRangeActive :
315
+ case trace .EventRangeActive :
317
316
// If we've seen a Sync event, then Active events are always redundant.
318
317
if ! g .seenSync {
319
318
// Otherwise, they extend back to the start of the trace.
320
319
g .ranges [r ] = activeRange {ctx .startTime , ev .Stack ()}
321
320
}
322
- case tracev2 .EventRangeEnd :
321
+ case trace .EventRangeEnd :
323
322
// Emit proc-based ranges.
324
323
ar := g .ranges [r ]
325
324
ctx .Slice (traceviewer.SliceEvent {
@@ -349,27 +348,27 @@ func (g *procRangeGenerator) Finish(ctx *traceContext) {
349
348
350
349
// activeRange represents an active EventRange* range.
351
350
type activeRange struct {
352
- time tracev2 .Time
353
- stack tracev2 .Stack
351
+ time trace .Time
352
+ stack trace .Stack
354
353
}
355
354
356
355
// completedRange represents a completed EventRange* range.
357
356
type completedRange struct {
358
357
name string
359
- startTime tracev2 .Time
360
- endTime tracev2 .Time
361
- startStack tracev2 .Stack
362
- endStack tracev2 .Stack
358
+ startTime trace .Time
359
+ endTime trace .Time
360
+ startStack trace .Stack
361
+ endStack trace .Stack
363
362
arg any
364
363
}
365
364
366
365
type logEventGenerator [R resource ] struct {
367
366
// getResource is a function to extract a resource ID from a Log event.
368
- getResource func (* tracev2 .Event ) R
367
+ getResource func (* trace .Event ) R
369
368
}
370
369
371
370
// Log implements a log event handler. It expects ev to be one such event.
372
- func (g * logEventGenerator [R ]) Log (ctx * traceContext , ev * tracev2 .Event ) {
371
+ func (g * logEventGenerator [R ]) Log (ctx * traceContext , ev * trace .Event ) {
373
372
id := g .getResource (ev )
374
373
if id == R (noResource ) {
375
374
// We have nowhere to put this in the UI.
0 commit comments