diff --git a/pkg/streamd/memoize/memoize.go b/pkg/streamd/memoize/memoize.go index b4ca3af..c3dff46 100644 --- a/pkg/streamd/memoize/memoize.go +++ b/pkg/streamd/memoize/memoize.go @@ -39,6 +39,7 @@ func Memoize[REQ any, REPLY any, T func(context.Context, REQ) (REPLY, error)]( defer logger.Tracef(ctx, "/memoize %T:%#+v", req, req) if IsNoCache(ctx) { + logger.Tracef(ctx, "forcing no cache") cacheDuration = 0 } @@ -48,6 +49,7 @@ func Memoize[REQ any, REPLY any, T func(context.Context, REQ) (REPLY, error)]( return fn(ctx, req) } ctx = belt.WithField(ctx, "cache_key", string(key[:])) + ctx = belt.WithField(ctx, "cache_dur", cacheDuration) logger.Tracef(ctx, "req: %T:%#+v", req, req) d.CacheMetaLock.Lock() @@ -80,7 +82,8 @@ func Memoize[REQ any, REPLY any, T func(context.Context, REQ) (REPLY, error)]( if ok { if v, ok := cachedResult.(cacheItem); ok { - cutoffTS := time.Now().Add(-cacheDuration) + now := time.Now() + cutoffTS := now.Add(-cacheDuration) if cacheDuration > 0 && !v.SavedAt.Before(cutoffTS) { d.CacheMetaLock.Unlock() logger.Tracef(ctx, "grpc.CacheMetaLock.Unlock()-ed") @@ -92,9 +95,10 @@ func Memoize[REQ any, REPLY any, T func(context.Context, REQ) (REPLY, error)]( } logger.Tracef( ctx, - "the cached value expired: %s < %s", + "the cached value expired: %s < %s (%s - %s)", v.SavedAt.Format(timeFormat), cutoffTS.Format(timeFormat), + now.Format(timeFormat), cacheDuration, ) delete(cache, key) } else { diff --git a/pkg/streamd/streamd.go b/pkg/streamd/streamd.go index 567fd52..024b958 100644 --- a/pkg/streamd/streamd.go +++ b/pkg/streamd/streamd.go @@ -937,10 +937,14 @@ func (d *StreamD) streamController( } return result, nil } + func (d *StreamD) GetStreamStatus( ctx context.Context, platID streamcontrol.PlatformName, -) (*streamcontrol.StreamStatus, error) { +) (_ret *streamcontrol.StreamStatus, _err error) { + ctx = belt.WithField(ctx, "plat_id", platID) + logger.Tracef(ctx, "GetStreamStatus(ctx, '%s')", platID) + defer func() { logger.Tracef(ctx, "/GetStreamStatus(ctx, '%s'): %#+v %v", platID, _ret, _err) }() cacheDuration := 5 * time.Second switch platID { case obs.ID: