add some logging so it is easier to see what grpc rate limits are set (#1045)

Co-authored-by: Sean Reilly <sean@hatchet.run>
This commit is contained in:
Sean Reilly
2024-11-15 06:20:15 -08:00
committed by GitHub
parent 11ec54a18d
commit d7d80393c3

View File

@@ -44,6 +44,7 @@ func (rl *HatchetRateLimiter) GetOrCreateTenantRateLimiter(rateLimitToken string
}
func NewHatchetRateLimiter(r rate.Limit, b int, l *zerolog.Logger) *HatchetRateLimiter {
l.Info().Msgf("grpc rate limit set to %v per second with a burst of %v (10X rate for Dispatcher)", r, b)
return &HatchetRateLimiter{
rateLimiters: make(map[string]*HatchetApiTokenRateLimiter),
rate: r,
@@ -69,19 +70,19 @@ func (r *HatchetRateLimiter) Limit(ctx context.Context) error {
case "dispatcher":
if !r.GetOrCreateTenantRateLimiter(rateLimitToken).dispatcherLimiter.Allow() {
r.l.Info().Msg("dispatcher rate limit exceeded")
r.l.Info().Msgf("dispatcher rate limit (%v per second) exceeded", r.GetOrCreateTenantRateLimiter(rateLimitToken).dispatcherLimiter.Limit())
return status.Errorf(codes.ResourceExhausted, "dispatcher rate limit exceeded")
}
case "events":
if !r.GetOrCreateTenantRateLimiter(rateLimitToken).eventsLimiter.Allow() {
r.l.Info().Msg("ingest rate limit exceeded")
r.l.Info().Msgf("ingest rate limit (%v per second) exceeded", r.GetOrCreateTenantRateLimiter(rateLimitToken).eventsLimiter.Limit())
return status.Errorf(codes.ResourceExhausted, "ingest rate limit exceeded")
}
case "workflow":
if !r.GetOrCreateTenantRateLimiter(rateLimitToken).workflowLimiter.Allow() {
r.l.Info().Msg("workflow rate limit exceeded")
r.l.Info().Msgf("workflow rate limit (%v per second) exceeded", r.GetOrCreateTenantRateLimiter(rateLimitToken).workflowLimiter.Limit())
return status.Errorf(codes.ResourceExhausted, "admin rate limit exceeded")
}