diff --git a/server/internal/services/metricsweep.go b/server/internal/services/metricsweep.go index 5e44be9..90df9ee 100644 --- a/server/internal/services/metricsweep.go +++ b/server/internal/services/metricsweep.go @@ -23,6 +23,15 @@ func EnsureMonitorServerStateIndexes() error { if err != nil { log.Printf("warning: monitor_server_states indexes: %v", err) } + // Every heartbeat ping looks its monitor up by token hash. Sparse because + // only heartbeat monitors carry one. + _, err = db.Col("monitors").Indexes().CreateOne(context.Background(), mongo.IndexModel{ + Keys: bson.D{{Key: "heartbeat_token_hash", Value: 1}}, + Options: options.Index().SetSparse(true), + }) + if err != nil { + log.Printf("warning: monitors heartbeat_token_hash index: %v", err) + } return nil }