Files
EdgeNode/internal/utils/trackers/label.go

33 lines
643 B
Go
Raw Permalink Normal View History

2024-05-17 18:30:33 +08:00
// Copyright 2021 GoEdge goedge.cdn@gmail.com. All rights reserved.
package trackers
import "time"
type tracker struct {
label string
startTime time.Time
}
func Begin(label string) *tracker {
return &tracker{label: label, startTime: time.Now()}
}
func Run(label string, f func()) {
var tr = Begin(label)
f()
tr.End()
}
func (this *tracker) End() {
SharedManager.Add(this.label, time.Since(this.startTime).Seconds()*1000)
}
func (this *tracker) Begin(subLabel string) *tracker {
return Begin(this.label + ":" + subLabel)
}
2024-04-02 19:54:04 +08:00
func (this *tracker) Add(duration time.Duration) {
this.startTime = this.startTime.Add(-duration)
}