diff --git a/backend/services/db/main.go b/backend/cmd/db/main.go similarity index 85% rename from backend/services/db/main.go rename to backend/cmd/db/main.go index 619e6816e..675c9f975 100644 --- a/backend/services/db/main.go +++ b/backend/cmd/db/main.go @@ -2,6 +2,8 @@ package main import ( "log" + "openreplay/backend/internal/datasaver" + "openreplay/backend/internal/heuristics" "time" "os" @@ -15,7 +17,6 @@ import ( "openreplay/backend/pkg/messages" "openreplay/backend/pkg/queue" "openreplay/backend/pkg/queue/types" - "openreplay/backend/services/db/heuristics" ) func main() { @@ -27,8 +28,8 @@ func main() { // Init modules heurFinder := heuristics.NewHandler() - mi := NewMessageInserter(pg) - si := NewStatsInserter(pg) + mi := datasaver.NewMessageInserter(pg) + si := datasaver.NewStatsInserter(pg) statsLogger := logger.NewQueueStats(env.Int("LOG_QUEUE_STATS_INTERVAL_SEC")) // Handler logic @@ -36,14 +37,14 @@ func main() { statsLogger.Collect(sessionID, meta) // Just insert message into db without additional checks - if err := mi.insertMessage(sessionID, msg); err != nil { + if err := mi.InsertMessage(sessionID, msg); err != nil { if !postgres.IsPkeyViolation(err) { log.Printf("Message Insertion Error %v, SessionID: %v, Message: %v", err, sessionID, msg) } return } - // Try to get session from db + // Try to get session from db for the following handlers session, err := pg.GetSession(sessionID) if err != nil { // Might happen due to the assets-related message TODO: log only if session is necessary for this kind of message @@ -52,22 +53,25 @@ func main() { } // Insert statistics - err = si.insertStats(session, msg) + err = si.InsertStats(session, msg) if err != nil { log.Printf("Stats Insertion Error %v; Session: %v, Message: %v", err, session, msg) } + // Insert heuristics heurFinder.HandleMessage(session, msg) + + // TODO: ??? heurFinder.IterateSessionReadyMessages(sessionID, func(msg messages.Message) { // TODO: DRY code (carefully with the return statement logic) - if err := mi.insertMessage(sessionID, msg); err != nil { + if err := mi.InsertMessage(sessionID, msg); err != nil { if !postgres.IsPkeyViolation(err) { log.Printf("Message Insertion Error %v; Session: %v, Message %v", err, session, msg) } return } - if err := si.insertStats(session, msg); err != nil { + if err := si.InsertStats(session, msg); err != nil { log.Printf("Stats Insertion Error %v; Session: %v, Message %v", err, session, msg) } }) diff --git a/backend/services/db/messages.go b/backend/internal/datasaver/messages.go similarity index 96% rename from backend/services/db/messages.go rename to backend/internal/datasaver/messages.go index 1a583ae6a..34a7b8dd4 100644 --- a/backend/services/db/messages.go +++ b/backend/internal/datasaver/messages.go @@ -1,4 +1,4 @@ -package main +package datasaver import ( "openreplay/backend/pkg/db/cache" @@ -13,7 +13,7 @@ func NewMessageInserter(pg *cache.PGCache) *MessageInserter { return &MessageInserter{pg: pg} } -func (mi *MessageInserter) insertMessage(sessionID uint64, msg Message) error { +func (mi *MessageInserter) InsertMessage(sessionID uint64, msg Message) error { switch m := msg.(type) { // Common case *Metadata: diff --git a/backend/services/db/stats.go b/backend/internal/datasaver/stats.go similarity index 87% rename from backend/services/db/stats.go rename to backend/internal/datasaver/stats.go index a2c2024fb..250c01775 100644 --- a/backend/services/db/stats.go +++ b/backend/internal/datasaver/stats.go @@ -1,4 +1,4 @@ -package main +package datasaver import ( "openreplay/backend/pkg/db/cache" @@ -14,7 +14,7 @@ func NewStatsInserter(pg *cache.PGCache) *StatsInserter { return &StatsInserter{pg: pg} } -func (si *StatsInserter) insertStats(session *Session, msg Message) error { +func (si *StatsInserter) InsertStats(session *Session, msg Message) error { switch m := msg.(type) { // Web case *PerformanceTrackAggr: diff --git a/backend/services/db/heuristics/anr.go b/backend/internal/heuristics/anr.go similarity index 100% rename from backend/services/db/heuristics/anr.go rename to backend/internal/heuristics/anr.go diff --git a/backend/services/db/heuristics/clickrage.go b/backend/internal/heuristics/clickrage.go similarity index 100% rename from backend/services/db/heuristics/clickrage.go rename to backend/internal/heuristics/clickrage.go diff --git a/backend/services/db/heuristics/heuristics.go b/backend/internal/heuristics/heuristics.go similarity index 100% rename from backend/services/db/heuristics/heuristics.go rename to backend/internal/heuristics/heuristics.go diff --git a/backend/services/db/heuristics/performance.go b/backend/internal/heuristics/performance.go similarity index 100% rename from backend/services/db/heuristics/performance.go rename to backend/internal/heuristics/performance.go diff --git a/backend/services/db/heuristics/readyMessageStore.go b/backend/internal/heuristics/readyMessageStore.go similarity index 100% rename from backend/services/db/heuristics/readyMessageStore.go rename to backend/internal/heuristics/readyMessageStore.go diff --git a/backend/services/db/heuristics/session.go b/backend/internal/heuristics/session.go similarity index 100% rename from backend/services/db/heuristics/session.go rename to backend/internal/heuristics/session.go diff --git a/backend/services/db/build_hack b/backend/services/db/build_hack new file mode 100644 index 000000000..e69de29bb