Req logging
This commit is contained in:
parent
09ca1b4ae9
commit
e53b0303dd
@ -2,6 +2,7 @@ package limiters
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -139,6 +140,14 @@ func (s *slidingWindow) nextInterval() {
|
|||||||
|
|
||||||
// Slide the fixed windows if windowSize time has elapsed.
|
// Slide the fixed windows if windowSize time has elapsed.
|
||||||
if s.currentInterval == 0 {
|
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.prev = s.curr
|
||||||
s.curr = fixedWindow{
|
s.curr = fixedWindow{
|
||||||
count: make([]int, s.numIntervals),
|
count: make([]int, s.numIntervals),
|
||||||
|
|||||||
@ -102,6 +102,10 @@ var (
|
|||||||
driveLimiter = rate.NewLimiter(drivePerSecond, driveMaxCap)
|
driveLimiter = rate.NewLimiter(drivePerSecond, driveMaxCap)
|
||||||
// also used as the exchange service limiter
|
// also used as the exchange service limiter
|
||||||
defaultLimiter = rate.NewLimiter(defaultPerSecond, defaultMaxCap)
|
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 {
|
type LimiterCfg struct {
|
||||||
|
|||||||
@ -70,3 +70,12 @@ func getRespDump(ctx context.Context, resp *http.Response, getBody bool) string
|
|||||||
|
|
||||||
return string(respDump)
|
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,
|
middlewareIndex int,
|
||||||
req *http.Request,
|
req *http.Request,
|
||||||
) (*http.Response, error) {
|
) (*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 (
|
var (
|
||||||
start = time.Now()
|
start = time.Now()
|
||||||
resp, err = pipeline.Next(req, middlewareIndex)
|
resp, err = pipeline.Next(req, middlewareIndex)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user