diff --git a/go.mod b/go.mod index 55f886b..143af98 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/grafana/grafana-plugin-sdk-go v0.65.0 github.com/grafana/grafana_plugin_model v0.0.0-20180518082423-84176c64269d github.com/hashicorp/go-hclog v0.9.2 - github.com/hashicorp/go-plugin v1.2.2 + github.com/hashicorp/go-plugin v1.2.2 // indirect github.com/kr/pretty v0.1.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible github.com/pkg/errors v0.8.1 // indirect diff --git a/pkg/cache.go b/pkg/cache/cache.go similarity index 98% rename from pkg/cache.go rename to pkg/cache/cache.go index de7245c..a19cf07 100644 --- a/pkg/cache.go +++ b/pkg/cache/cache.go @@ -1,4 +1,4 @@ -package main +package cache import ( "crypto/sha1" diff --git a/pkg/cache_test.go b/pkg/cache/cache_test.go similarity index 99% rename from pkg/cache_test.go rename to pkg/cache/cache_test.go index 42b5bda..475e81b 100644 --- a/pkg/cache_test.go +++ b/pkg/cache/cache_test.go @@ -1,4 +1,4 @@ -package main +package cache import ( "testing" diff --git a/pkg/datasource.go b/pkg/datasource.go index 2aa0dec..985a730 100644 --- a/pkg/datasource.go +++ b/pkg/datasource.go @@ -7,6 +7,7 @@ import ( "fmt" "time" + "github.com/alexanderzobnin/grafana-zabbix/pkg/cache" "github.com/alexanderzobnin/grafana-zabbix/pkg/gtime" "github.com/alexanderzobnin/grafana-zabbix/pkg/zabbixapi" @@ -16,7 +17,7 @@ import ( ) type ZabbixDatasource struct { - datasourceCache *Cache + datasourceCache *cache.Cache logger log.Logger } @@ -26,7 +27,7 @@ type ZabbixDatasourceInstance struct { zabbixAPI *zabbixapi.ZabbixAPI dsInfo *backend.DataSourceInstanceSettings Settings *ZabbixDatasourceSettings - queryCache *Cache + queryCache *cache.Cache logger log.Logger } @@ -46,7 +47,7 @@ func NewZabbixDatasourceInstance(dsInfo *backend.DataSourceInstanceSettings) (*Z dsInfo: dsInfo, zabbixAPI: zabbixAPI, Settings: zabbixSettings, - queryCache: NewCache(zabbixSettings.CacheTTL, 10*time.Minute), + queryCache: cache.NewCache(zabbixSettings.CacheTTL, 10*time.Minute), logger: log.New(), }, nil } @@ -113,11 +114,11 @@ func (ds *ZabbixDatasource) GetDatasource(pluginContext backend.PluginContext) ( dsSettings := pluginContext.DataSourceInstanceSettings dsKey := fmt.Sprintf("%d-%d", pluginContext.OrgID, dsSettings.ID) // Get hash to check if settings changed - dsInfoHash := HashDatasourceInfo(dsSettings) + dsInfoHash := cache.HashDatasourceInfo(dsSettings) if cachedData, ok := ds.datasourceCache.Get(dsKey); ok { if cachedDS, ok := cachedData.(*ZabbixDatasourceInstance); ok { - cachedDSHash := HashDatasourceInfo(cachedDS.dsInfo) + cachedDSHash := cache.HashDatasourceInfo(cachedDS.dsInfo) if cachedDSHash == dsInfoHash { return cachedDS, nil } diff --git a/pkg/plugin.go b/pkg/plugin.go index 4efcee0..e74d10c 100644 --- a/pkg/plugin.go +++ b/pkg/plugin.go @@ -5,6 +5,7 @@ import ( "os" "time" + "github.com/alexanderzobnin/grafana-zabbix/pkg/cache" "github.com/grafana/grafana-plugin-sdk-go/backend" "github.com/grafana/grafana-plugin-sdk-go/backend/log" "github.com/grafana/grafana-plugin-sdk-go/backend/resource/httpadapter" @@ -43,7 +44,7 @@ func Init(logger log.Logger, mux *http.ServeMux) *ZabbixDatasource { ds := &ZabbixDatasource{ logger: logger, - datasourceCache: NewCache(10*time.Minute, 10*time.Minute), + datasourceCache: cache.NewCache(10*time.Minute, 10*time.Minute), } mux.HandleFunc("/", ds.rootHandler) diff --git a/pkg/zabbix.go b/pkg/zabbix.go index d23543f..b719fbf 100644 --- a/pkg/zabbix.go +++ b/pkg/zabbix.go @@ -6,6 +6,7 @@ import ( "regexp" "time" + "github.com/alexanderzobnin/grafana-zabbix/pkg/cache" "github.com/alexanderzobnin/grafana-zabbix/pkg/zabbix" "github.com/alexanderzobnin/grafana-zabbix/pkg/zabbixapi" simplejson "github.com/bitly/go-simplejson" @@ -28,7 +29,7 @@ var CachedMethods = map[string]bool{ func (ds *ZabbixDatasourceInstance) ZabbixQuery(ctx context.Context, apiReq *ZabbixAPIRequest) (*simplejson.Json, error) { var resultJson *simplejson.Json var err error - requestHash := HashString(apiReq.String()) + requestHash := cache.HashString(apiReq.String()) cachedResult, queryExistInCache := ds.queryCache.Get(requestHash) if !queryExistInCache {