mirror of
https://github.com/grafana/grafana.git
synced 2025-01-26 08:16:59 -06:00
a5ace56be8
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com> Signed-off-by: bergquist <carl.bergquist@gmail.com>
29 lines
640 B
Go
29 lines
640 B
Go
package log
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
type requestStartTimeContextKey struct{}
|
|
|
|
var requestStartTime = requestStartTimeContextKey{}
|
|
|
|
// InitCounter creates a pointer on the context that can be incremented later
|
|
func InitstartTime(ctx context.Context, now time.Time) context.Context {
|
|
return context.WithValue(ctx, requestStartTime, now)
|
|
}
|
|
|
|
// TimeSinceStart returns time spend since the request started in grafana
|
|
func TimeSinceStart(ctx context.Context, now time.Time) time.Duration {
|
|
val := ctx.Value(requestStartTime)
|
|
if val != nil {
|
|
startTime, ok := val.(time.Time)
|
|
if ok {
|
|
return now.Sub(startTime)
|
|
}
|
|
}
|
|
|
|
return 0
|
|
}
|