@@ -13,7 +13,6 @@ import (
13
13
"internal/trace/traceviewer"
14
14
tracev2 "internal/trace/v2"
15
15
"net/http"
16
- "net/url"
17
16
"slices"
18
17
"strconv"
19
18
"strings"
@@ -344,92 +343,3 @@ func pcsForStack(stack tracev2.Stack, pcs *[pprofMaxStack]uint64) {
344
343
return i < len (pcs )
345
344
})
346
345
}
347
-
348
- func regionInterval (t * parsedTrace , s * trace.UserRegionSummary ) interval {
349
- var i interval
350
- if s .Start != nil {
351
- i .start = s .Start .Time ()
352
- } else {
353
- i .start = t .startTime ()
354
- }
355
- if s .End != nil {
356
- i .end = s .End .Time ()
357
- } else {
358
- i .end = t .endTime ()
359
- }
360
- return i
361
- }
362
-
363
- // regionFilter represents a region filter specified by a user of cmd/trace.
364
- type regionFilter struct {
365
- name string
366
- params url.Values
367
- cond []func (* parsedTrace , * trace.UserRegionSummary ) bool
368
- }
369
-
370
- // match returns true if a region, described by its ID and summary, matches
371
- // the filter.
372
- func (f * regionFilter ) match (t * parsedTrace , s * trace.UserRegionSummary ) bool {
373
- for _ , c := range f .cond {
374
- if ! c (t , s ) {
375
- return false
376
- }
377
- }
378
- return true
379
- }
380
-
381
- // newRegionFilter creates a new region filter from URL query variables.
382
- func newRegionFilter (r * http.Request ) (* regionFilter , error ) {
383
- if err := r .ParseForm (); err != nil {
384
- return nil , err
385
- }
386
-
387
- var name []string
388
- var conditions []func (* parsedTrace , * trace.UserRegionSummary ) bool
389
- filterParams := make (url.Values )
390
-
391
- param := r .Form
392
- if typ , ok := param ["type" ]; ok && len (typ ) > 0 {
393
- name = append (name , "type=" + typ [0 ])
394
- conditions = append (conditions , func (_ * parsedTrace , r * trace.UserRegionSummary ) bool {
395
- return r .Name == typ [0 ]
396
- })
397
- filterParams .Add ("type" , typ [0 ])
398
- }
399
- if pc , err := strconv .ParseUint (r .FormValue ("pc" ), 16 , 64 ); err == nil {
400
- encPC := fmt .Sprintf ("%x" , pc )
401
- name = append (name , "pc=" + encPC )
402
- conditions = append (conditions , func (_ * parsedTrace , r * trace.UserRegionSummary ) bool {
403
- var regionPC uint64
404
- if r .Start != nil && r .Start .Stack () != tracev2 .NoStack {
405
- r .Start .Stack ().Frames (func (f tracev2.StackFrame ) bool {
406
- regionPC = f .PC
407
- return false
408
- })
409
- }
410
- return regionPC == pc
411
- })
412
- filterParams .Add ("pc" , encPC )
413
- }
414
-
415
- if lat , err := time .ParseDuration (r .FormValue ("latmin" )); err == nil {
416
- name = append (name , fmt .Sprintf ("latency >= %s" , lat ))
417
- conditions = append (conditions , func (t * parsedTrace , r * trace.UserRegionSummary ) bool {
418
- return regionInterval (t , r ).duration () >= lat
419
- })
420
- filterParams .Add ("latmin" , lat .String ())
421
- }
422
- if lat , err := time .ParseDuration (r .FormValue ("latmax" )); err == nil {
423
- name = append (name , fmt .Sprintf ("latency <= %s" , lat ))
424
- conditions = append (conditions , func (t * parsedTrace , r * trace.UserRegionSummary ) bool {
425
- return regionInterval (t , r ).duration () <= lat
426
- })
427
- filterParams .Add ("latmax" , lat .String ())
428
- }
429
-
430
- return & regionFilter {
431
- name : strings .Join (name , "," ),
432
- cond : conditions ,
433
- params : filterParams ,
434
- }, nil
435
- }
0 commit comments