Req logging

This commit is contained in:
Abhishek Pandey 2023-11-02 18:48:37 -07:00
parent 09ca1b4ae9
commit e53b0303dd
4 changed files with 28 additions and 0 deletions

View File

@ -2,6 +2,7 @@ package limiters
import (
"context"
"fmt"
"sync"
"time"
@ -139,6 +140,14 @@ func (s *slidingWindow) nextInterval() {
// Slide the fixed windows if windowSize time has elapsed.
if s.currentInterval == 0 {
sum := int64(0)
for i := 0; i < int(s.numIntervals); i++ {
fmt.Printf("Curr Interval %d: %d\n", i, s.curr.count[i])
sum += s.curr.count[i]
}
fmt.Printf("Switching window: Total tokens issued: %d\n\n", sum)
s.prev = s.curr
s.curr = fixedWindow{
count: make([]int, s.numIntervals),

View File

@ -102,6 +102,10 @@ var (
driveLimiter = rate.NewLimiter(drivePerSecond, driveMaxCap)
// also used as the exchange service limiter
defaultLimiter = rate.NewLimiter(defaultPerSecond, defaultMaxCap)
// 10 min window, 1 second sliding interval, 10k capacity
//exchangeLimiter = limiters.NewLimiter(10*time.Minute, 100*time.Millisecond, 10000)
exchangeLimiter = limiters.NewLimiter(10*time.Minute, 1*time.Second, 10000)
)
type LimiterCfg struct {

View File

@ -70,3 +70,12 @@ func getRespDump(ctx context.Context, resp *http.Response, getBody bool) string
return string(respDump)
}
func getReqDump(ctx context.Context, req *http.Request) string {
reqDump, err := httputil.DumpRequest(req, true)
if err != nil {
logger.CtxErr(ctx, err).Error("dumping http response")
}
return string(reqDump)
}

View File

@ -334,6 +334,12 @@ func (mw *MetricsMiddleware) Intercept(
middlewareIndex int,
req *http.Request,
) (*http.Response, error) {
// Log request
dump := getReqDump(req.Context(), req)
logger.Ctx(req.Context()).Debugw("making graph api req: ",
"request", dump,
"requests_so_far", mw.counter.Get(count.APICallTokensConsumed))
var (
start = time.Now()
resp, err = pipeline.Next(req, middlewareIndex)