From 7ddd1d2470d1acb3a1977d27b99c691f5dc6b231 Mon Sep 17 00:00:00 2001 From: Marsel Mavletkulov Date: Wed, 1 Jan 2020 10:00:03 +0700 Subject: [PATCH] Clarify rate limiter expressions in addsvc example (#943) Rate limiting examples might be a bit confusing when Every method is used https://github.com/go-kit/kit/issues/698. One could expect to see throttling expressed as a number of requests per unit of time whereas another would see it as an interval between requests. --- examples/addsvc/pkg/addendpoint/set.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/addsvc/pkg/addendpoint/set.go b/examples/addsvc/pkg/addendpoint/set.go index 8ae3e568d..8f8dd644b 100644 --- a/examples/addsvc/pkg/addendpoint/set.go +++ b/examples/addsvc/pkg/addendpoint/set.go @@ -35,6 +35,8 @@ func New(svc addservice.Service, logger log.Logger, duration metrics.Histogram, var sumEndpoint endpoint.Endpoint { sumEndpoint = MakeSumEndpoint(svc) + // Sum is limited to 1 request per second with burst of 1 request. + // Note, rate is defined as a time interval between requests. sumEndpoint = ratelimit.NewErroringLimiter(rate.NewLimiter(rate.Every(time.Second), 1))(sumEndpoint) sumEndpoint = circuitbreaker.Gobreaker(gobreaker.NewCircuitBreaker(gobreaker.Settings{}))(sumEndpoint) sumEndpoint = opentracing.TraceServer(otTracer, "Sum")(sumEndpoint) @@ -47,7 +49,9 @@ func New(svc addservice.Service, logger log.Logger, duration metrics.Histogram, var concatEndpoint endpoint.Endpoint { concatEndpoint = MakeConcatEndpoint(svc) - concatEndpoint = ratelimit.NewErroringLimiter(rate.NewLimiter(rate.Every(time.Second), 100))(concatEndpoint) + // Concat is limited to 1 request per second with burst of 100 requests. + // Note, rate is defined as a number of requests per second. + concatEndpoint = ratelimit.NewErroringLimiter(rate.NewLimiter(rate.Limit(1), 100))(concatEndpoint) concatEndpoint = circuitbreaker.Gobreaker(gobreaker.NewCircuitBreaker(gobreaker.Settings{}))(concatEndpoint) concatEndpoint = opentracing.TraceServer(otTracer, "Concat")(concatEndpoint) if zipkinTracer != nil {