grafana/pkg/infra/log/requestTiming.go
Carl Bergquist a5ace56be8
Plugins: Add username to datasource plugin logging (#59893)
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2022-12-07 13:15:42 +01:00

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
}