From 7e89ef052a25e4daa6f7f7313c6ffd85fe7b0d08 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Fri, 15 Jul 2022 12:24:17 +0200 Subject: [PATCH] Datasources: Allow configuration of the TTL (#52161) (#52317) (cherry picked from commit 91fd0223a4e1211ba383b33044ada4df11ebd560) Co-authored-by: George Robinson --- pkg/services/datasources/service/cache_service.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkg/services/datasources/service/cache_service.go b/pkg/services/datasources/service/cache_service.go index b40c29f219f..bab7216f8b5 100644 --- a/pkg/services/datasources/service/cache_service.go +++ b/pkg/services/datasources/service/cache_service.go @@ -11,9 +11,14 @@ import ( "github.com/grafana/grafana/pkg/services/sqlstore" ) +const ( + DefaultCacheTTL = 5 * time.Second +) + func ProvideCacheService(cacheService *localcache.CacheService, sqlStore *sqlstore.SQLStore) *CacheServiceImpl { return &CacheServiceImpl{ logger: log.New("datasources"), + cacheTTL: DefaultCacheTTL, CacheService: cacheService, SQLStore: sqlStore, } @@ -21,6 +26,7 @@ func ProvideCacheService(cacheService *localcache.CacheService, sqlStore *sqlsto type CacheServiceImpl struct { logger log.Logger + cacheTTL time.Duration CacheService *localcache.CacheService SQLStore *sqlstore.SQLStore } @@ -55,7 +61,7 @@ func (dc *CacheServiceImpl) GetDatasource( if ds.Uid != "" { dc.CacheService.Set(uidKey(ds.OrgId, ds.Uid), ds, time.Second*5) } - dc.CacheService.Set(cacheKey, ds, time.Second*5) + dc.CacheService.Set(cacheKey, ds, dc.cacheTTL) return ds, nil } @@ -91,8 +97,8 @@ func (dc *CacheServiceImpl) GetDatasourceByUID( ds := query.Result - dc.CacheService.Set(uidCacheKey, ds, time.Second*5) - dc.CacheService.Set(idKey(ds.Id), ds, time.Second*5) + dc.CacheService.Set(uidCacheKey, ds, dc.cacheTTL) + dc.CacheService.Set(idKey(ds.Id), ds, dc.cacheTTL) return ds, nil }