30 lines
671 B
Go
30 lines
671 B
Go
package dependencies
|
|
|
|
import (
|
|
"github.com/dgraph-io/ristretto"
|
|
"github.com/eko/gocache/cache"
|
|
"github.com/eko/gocache/metrics"
|
|
"github.com/eko/gocache/store"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func setupCache(l *zap.Logger) *cache.MetricCache {
|
|
l.Info("Setting up Cache")
|
|
ristrettoCache, err := ristretto.NewCache(&ristretto.Config{
|
|
NumCounters: 1000,
|
|
MaxCost: 100_000_000,
|
|
BufferItems: 64,
|
|
})
|
|
promMetrics := metrics.NewPrometheus("serverctl")
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
ristrettoStore := store.NewRistretto(ristrettoCache, nil)
|
|
|
|
cacheManager := cache.New(ristrettoStore)
|
|
metricsCache := cache.NewMetric(promMetrics, cacheManager)
|
|
|
|
return metricsCache
|
|
}
|