From a0b842f13c9a721a0c91d9cb4ba4587e66a6dbb0 Mon Sep 17 00:00:00 2001 From: Alexander Date: Fri, 5 May 2023 18:22:49 +0200 Subject: [PATCH] feat(backend): insert referrer to sessions table (#1237) --- backend/pkg/db/postgres/messages-common.go | 13 +++++++++++++ backend/pkg/db/postgres/messages-web.go | 3 +++ 2 files changed, 16 insertions(+) diff --git a/backend/pkg/db/postgres/messages-common.go b/backend/pkg/db/postgres/messages-common.go index aab74dc6b..1ffdb8ddf 100644 --- a/backend/pkg/db/postgres/messages-common.go +++ b/backend/pkg/db/postgres/messages-common.go @@ -3,6 +3,7 @@ package postgres import ( "fmt" "log" + "openreplay/backend/pkg/url" "strings" "openreplay/backend/pkg/db/types" @@ -167,3 +168,15 @@ func (conn *Conn) InsertIssueEvent(sessionID uint64, projectID uint32, e *messag } return nil } + +func (conn *Conn) InsertReferrer(sessionID uint64, referrer string) error { + baseReferrer := url.DiscardURLQuery(referrer) + sqlRequest := ` + UPDATE sessions SET referrer = LEFT($1, 8000), base_referrer = LEFT($2, 8000) + WHERE session_id = $3` + conn.batchQueue(sessionID, sqlRequest, referrer, baseReferrer, sessionID) + + // Record approximate message size + conn.updateBatchSize(sessionID, len(sqlRequest)+len(referrer)+len(baseReferrer)+8) + return nil +} diff --git a/backend/pkg/db/postgres/messages-web.go b/backend/pkg/db/postgres/messages-web.go index 5b176144a..3f93ae35d 100644 --- a/backend/pkg/db/postgres/messages-web.go +++ b/backend/pkg/db/postgres/messages-web.go @@ -49,6 +49,9 @@ func (conn *Conn) InsertWebPageEvent(sessionID uint64, projectID uint32, e *Page e.SpeedIndex, e.VisuallyComplete, e.TimeToInteractive, calcResponseTime(e), calcDomBuildingTime(e)); err != nil { log.Printf("insert web page event in bulk err: %s", err) } + if err = conn.InsertReferrer(sessionID, e.Referrer); err != nil { + log.Printf("insert session referrer err: %s", err) + } // Accumulate session updates and exec inside batch with another sql commands conn.updateSessionEvents(sessionID, 1, 1) // Add new value set to autocomplete bulk