Req logging
This commit is contained in:
parent
09ca1b4ae9
commit
e53b0303dd
@ -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),
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user