From e76dccff954965fe362aa3a4d634734ae8b3f081 Mon Sep 17 00:00:00 2001 From: Harjot Gill Date: Fri, 2 Sep 2022 10:14:22 -0700 Subject: [PATCH 1/2] rename logwriter --- pkg/distcache/olric-logwriter.go | 34 -------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 pkg/distcache/olric-logwriter.go diff --git a/pkg/distcache/olric-logwriter.go b/pkg/distcache/olric-logwriter.go deleted file mode 100644 index 78b0036be7..0000000000 --- a/pkg/distcache/olric-logwriter.go +++ /dev/null @@ -1,34 +0,0 @@ -package distcache - -import ( - "bytes" - - "github.com/fluxninja/aperture/pkg/log" -) - -// OlricLogWriter is wrapper around aperture Logger that parse the message before writing to olricConfig.LogOutput. -type OlricLogWriter struct { - Logger log.Logger -} - -// Write writes the message and logs in aperture Logger format. -func (ol *OlricLogWriter) Write(message []byte) (int, error) { - message = bytes.TrimSpace(message) - if len(message) < 2 { - ol.Logger.Info().Msg(string(message)) - } else { - switch message[1] { - case 'I': - ol.Logger.Info().Msg(string(message[7:])) - case 'W': - ol.Logger.Warn().Msg(string(message[7:])) - case 'E': - ol.Logger.Error().Msg(string(message[8:])) - case 'D': - ol.Logger.Debug().Msg(string(message[8:])) - default: - ol.Logger.Info().Msg(string(message)) - } - } - return len(message), nil -} From cb947a16d32f003e383d7752bc3356895867f8d7 Mon Sep 17 00:00:00 2001 From: Harjot Gill Date: Fri, 2 Sep 2022 10:18:01 -0700 Subject: [PATCH 2/2] rename rate tracker files --- pkg/distcache/logwriter.go | 34 +++++++++++++++++++ .../dataplane/actuators/rate/rate-limiter.go | 2 +- ...e-tracker.go => distcache-rate-tracker.go} | 30 ++++++++-------- .../rate/ratetracker/rate-tracker_test.go | 2 +- 4 files changed, 51 insertions(+), 17 deletions(-) create mode 100644 pkg/distcache/logwriter.go rename pkg/policies/dataplane/actuators/rate/ratetracker/{olric-rate-tracker.go => distcache-rate-tracker.go} (57%) diff --git a/pkg/distcache/logwriter.go b/pkg/distcache/logwriter.go new file mode 100644 index 0000000000..78b0036be7 --- /dev/null +++ b/pkg/distcache/logwriter.go @@ -0,0 +1,34 @@ +package distcache + +import ( + "bytes" + + "github.com/fluxninja/aperture/pkg/log" +) + +// OlricLogWriter is wrapper around aperture Logger that parse the message before writing to olricConfig.LogOutput. +type OlricLogWriter struct { + Logger log.Logger +} + +// Write writes the message and logs in aperture Logger format. +func (ol *OlricLogWriter) Write(message []byte) (int, error) { + message = bytes.TrimSpace(message) + if len(message) < 2 { + ol.Logger.Info().Msg(string(message)) + } else { + switch message[1] { + case 'I': + ol.Logger.Info().Msg(string(message[7:])) + case 'W': + ol.Logger.Warn().Msg(string(message[7:])) + case 'E': + ol.Logger.Error().Msg(string(message[8:])) + case 'D': + ol.Logger.Debug().Msg(string(message[8:])) + default: + ol.Logger.Info().Msg(string(message)) + } + } + return len(message), nil +} diff --git a/pkg/policies/dataplane/actuators/rate/rate-limiter.go b/pkg/policies/dataplane/actuators/rate/rate-limiter.go index 68ff263976..69dc1c8f0e 100644 --- a/pkg/policies/dataplane/actuators/rate/rate-limiter.go +++ b/pkg/policies/dataplane/actuators/rate/rate-limiter.go @@ -216,7 +216,7 @@ func (rateLimiter *rateLimiter) setup(lifecycle fx.Lifecycle) error { label := rateLimiter.rateLimiterProto.GetLabelKey() + ":" + override.GetLabelValue() rateLimiter.rateLimitChecker.AddOverride(label, override.GetLimitScaleFactor()) } - rateLimiter.rateTracker, err = ratetracker.NewOlricRateTracker(rateLimiter.rateLimitChecker, + rateLimiter.rateTracker, err = ratetracker.NewDistCacheRateTracker(rateLimiter.rateLimitChecker, rateLimiter.rateLimiterFactory.distCache, rateLimiter.name, rateLimiter.rateLimiterProto.GetLimitResetInterval().AsDuration()) diff --git a/pkg/policies/dataplane/actuators/rate/ratetracker/olric-rate-tracker.go b/pkg/policies/dataplane/actuators/rate/ratetracker/distcache-rate-tracker.go similarity index 57% rename from pkg/policies/dataplane/actuators/rate/ratetracker/olric-rate-tracker.go rename to pkg/policies/dataplane/actuators/rate/ratetracker/distcache-rate-tracker.go index 47ea70022f..b88519bf8c 100644 --- a/pkg/policies/dataplane/actuators/rate/ratetracker/olric-rate-tracker.go +++ b/pkg/policies/dataplane/actuators/rate/ratetracker/distcache-rate-tracker.go @@ -10,16 +10,16 @@ import ( "github.com/fluxninja/aperture/pkg/distcache" ) -// OlricRateTracker implements Limiter. -type OlricRateTracker struct { +// DistCacheRateTracker implements Limiter. +type DistCacheRateTracker struct { mu sync.RWMutex limitCheck RateLimitChecker dMap *olric.DMap name string } -// NewOlricRateTracker creates a new instance of OlricRateLimiter. -func NewOlricRateTracker(limitCheck RateLimitChecker, dc *distcache.DistCache, name string, ttl time.Duration) (RateTracker, error) { +// NewDistCacheRateTracker creates a new instance of DistCacheRateTracker. +func NewDistCacheRateTracker(limitCheck RateLimitChecker, dc *distcache.DistCache, name string, ttl time.Duration) (RateTracker, error) { dmapConfig := config.DMap{ TTLDuration: ttl, } @@ -33,7 +33,7 @@ func NewOlricRateTracker(limitCheck RateLimitChecker, dc *distcache.DistCache, n } dc.RemoveDMapCustomConfig(name) - ol := &OlricRateTracker{ + ol := &DistCacheRateTracker{ name: name, dMap: dMap, limitCheck: limitCheck, @@ -42,13 +42,13 @@ func NewOlricRateTracker(limitCheck RateLimitChecker, dc *distcache.DistCache, n return ol, nil } -// Name returns the name of the OlricRateLimiter. -func (ol *OlricRateTracker) Name() string { +// Name returns the name of the DistCacheRateTracker. +func (ol *DistCacheRateTracker) Name() string { return ol.name } -// Close cleans up DMap held within the OlricRateLimiter. -func (ol *OlricRateTracker) Close() error { +// Close cleans up DMap held within the DistCacheRateTracker. +func (ol *DistCacheRateTracker) Close() error { ol.mu.Lock() defer ol.mu.Unlock() err := ol.dMap.Destroy() @@ -59,13 +59,13 @@ func (ol *OlricRateTracker) Close() error { } // Take is a wrapper for TakeN(label, 1). -func (ol *OlricRateTracker) Take(label string) (bool, int, int) { +func (ol *DistCacheRateTracker) Take(label string) (bool, int, int) { return ol.TakeN(label, 1) } // TakeN increments value in label by n and returns whether n events should be allowed along with the remaining value (limit - new n) after increment and the current count for the label. // If an error occurred it returns true, 0 and 0 (fail open). -func (ol *OlricRateTracker) TakeN(label string, n int) (bool, int, int) { +func (ol *DistCacheRateTracker) TakeN(label string, n int) (bool, int, int) { ol.mu.RLock() defer ol.mu.RUnlock() newN, err := ol.dMap.Incr(label, n) @@ -76,10 +76,10 @@ func (ol *OlricRateTracker) TakeN(label string, n int) (bool, int, int) { return ok, remaining, newN } -// GetRateLimitChecker returns the RateLimitCheck of the OlricRateLimiter. -func (ol *OlricRateTracker) GetRateLimitChecker() RateLimitChecker { +// GetRateLimitChecker returns the RateLimitCheck of the DistCacheRateTracker. +func (ol *DistCacheRateTracker) GetRateLimitChecker() RateLimitChecker { return ol.limitCheck } -// Make sure OlricRateLimiter implements Limiter interface. -var _ RateTracker = (*OlricRateTracker)(nil) +// Make sure DistCacheRateTracker implements Limiter interface. +var _ RateTracker = (*DistCacheRateTracker)(nil) diff --git a/pkg/policies/dataplane/actuators/rate/ratetracker/rate-tracker_test.go b/pkg/policies/dataplane/actuators/rate/ratetracker/rate-tracker_test.go index 4853e58f05..0264bd5027 100644 --- a/pkg/policies/dataplane/actuators/rate/ratetracker/rate-tracker_test.go +++ b/pkg/policies/dataplane/actuators/rate/ratetracker/rate-tracker_test.go @@ -29,7 +29,7 @@ func newTestLimiter(t *testing.T, distCache *distcache.DistCache, limit int, ttl for label, limit := range overrides { limitCheck.AddOverride(label, limit) } - limiter, err := NewOlricRateTracker(limitCheck, distCache, "Limiter", ttl) + limiter, err := NewDistCacheRateTracker(limitCheck, distCache, "Limiter", ttl) if err != nil { t.Logf("Failed to create OlricLimiter: %v", err) return nil, err