feat(backend): insert referrer to sessions table (#1237)

This commit is contained in:
Alexander 2023-05-05 18:22:49 +02:00 committed by GitHub
parent cdb6ab8b60
commit a0b842f13c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 0 deletions

View file

@ -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
}

View file

@ -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