From e2cafdd481afeb5bce1e44ec7f6b120e4a4c3d1f Mon Sep 17 00:00:00 2001 From: Anirudh Oppiliappan Date: Fri, 6 Jun 2025 22:11:49 +0300 Subject: [PATCH] jetstream: configure logging dids added to in-memory filter Change-Id: yuwoytzsmkvmtsqsqnnxyvvlnyprnnut Signed-off-by: Anirudh Oppiliappan --- appview/state/state.go | 4 ++++ jetstream/jetstream.go | 9 +++++++-- knotserver/config/config.go | 1 + knotserver/server.go | 2 +- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/appview/state/state.go b/appview/state/state.go index 4658987..43e4c15 100644 --- a/appview/state/state.go +++ b/appview/state/state.go @@ -95,6 +95,10 @@ func Make(config *config.Config) (*State, error) { slog.Default(), wrapper, false, + + // in-memory filter is inapplicalble to appview so + // we'll never log dids anyway. + false, ) if err != nil { return nil, fmt.Errorf("failed to create jetstream client: %w", err) diff --git a/jetstream/jetstream.go b/jetstream/jetstream.go index 615316d..be6c048 100644 --- a/jetstream/jetstream.go +++ b/jetstream/jetstream.go @@ -29,6 +29,7 @@ type JetstreamClient struct { ident string l *slog.Logger + logDids bool wantedDids Set[string] db DB waitForDid bool @@ -43,7 +44,9 @@ func (j *JetstreamClient) AddDid(did string) { return } - j.l.Info("adding did to in-memory filter", "did", did) + if j.logDids { + j.l.Info("adding did to in-memory filter", "did", did) + } j.mu.Lock() j.wantedDids[did] = struct{}{} j.mu.Unlock() @@ -67,7 +70,7 @@ func (j *JetstreamClient) withDidFilter(processFunc processor) processor { } } -func NewJetstreamClient(endpoint, ident string, collections []string, cfg *client.ClientConfig, logger *slog.Logger, db DB, waitForDid bool) (*JetstreamClient, error) { +func NewJetstreamClient(endpoint, ident string, collections []string, cfg *client.ClientConfig, logger *slog.Logger, db DB, waitForDid, logDids bool) (*JetstreamClient, error) { if cfg == nil { cfg = client.DefaultClientConfig() cfg.WebsocketURL = endpoint @@ -81,6 +84,8 @@ func NewJetstreamClient(endpoint, ident string, collections []string, cfg *clien l: logger, wantedDids: make(map[string]struct{}), + logDids: logDids, + // This will make the goroutine in StartJetstream wait until // j.wantedDids has been populated, typically using addDids. waitForDid: waitForDid, diff --git a/knotserver/config/config.go b/knotserver/config/config.go index 073a892..bad42db 100644 --- a/knotserver/config/config.go +++ b/knotserver/config/config.go @@ -19,6 +19,7 @@ type Server struct { DBPath string `env:"DB_PATH, default=knotserver.db"` Hostname string `env:"HOSTNAME, required"` JetstreamEndpoint string `env:"JETSTREAM_ENDPOINT, default=wss://jetstream1.us-west.bsky.network/subscribe"` + LogDids bool `env:"LOG_DIDS, default=true"` // This disables signature verification so use with caution. Dev bool `env:"DEV, default=false"` diff --git a/knotserver/server.go b/knotserver/server.go index bca1caf..1bf70ed 100644 --- a/knotserver/server.go +++ b/knotserver/server.go @@ -75,7 +75,7 @@ func Run(ctx context.Context, cmd *cli.Command) error { jc, err := jetstream.NewJetstreamClient(c.Server.JetstreamEndpoint, "knotserver", []string{ tangled.PublicKeyNSID, tangled.KnotMemberNSID, - }, nil, logger, db, true) + }, nil, logger, db, true, c.Server.LogDids) if err != nil { logger.Error("failed to setup jetstream", "error", err) } -- 2.43.0