aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Borg <jakob@kastelo.net>2023-07-10 09:21:40 +0200
committerJakob Borg <jakob@kastelo.net>2023-07-10 09:21:40 +0200
commita3886f778d0b752f9b92db0c16194d1b3676e7c8 (patch)
tree9fcdd1cbe06781ec553e97579224fd80fb2a9362
parent6aecc2622cc75362d69acac34dc3d6264e9cf59d (diff)
downloadsyncthing-a3886f778d0b752f9b92db0c16194d1b3676e7c8.tar.gz
syncthing-a3886f778d0b752f9b92db0c16194d1b3676e7c8.zip
cmd/ursrv: Remove old, unused user movement code
-rw-r--r--cmd/ursrv/aggregate/aggregate.go96
-rw-r--r--cmd/ursrv/serve/serve.go53
2 files changed, 0 insertions, 149 deletions
diff --git a/cmd/ursrv/aggregate/aggregate.go b/cmd/ursrv/aggregate/aggregate.go
index 6bda3b4ab..daf2e1c3c 100644
--- a/cmd/ursrv/aggregate/aggregate.go
+++ b/cmd/ursrv/aggregate/aggregate.go
@@ -83,16 +83,6 @@ func setupDB(db *sql.DB) error {
return err
}
- _, err = db.Exec(`CREATE TABLE IF NOT EXISTS UserMovement (
- Day TIMESTAMP NOT NULL,
- Added INTEGER NOT NULL,
- Bounced INTEGER NOT NULL,
- Removed INTEGER NOT NULL
- )`)
- if err != nil {
- return err
- }
-
_, err = db.Exec(`CREATE TABLE IF NOT EXISTS Performance (
Day TIMESTAMP NOT NULL,
TotFiles INTEGER NOT NULL,
@@ -132,11 +122,6 @@ func setupDB(db *sql.DB) error {
_, _ = db.Exec(`CREATE INDEX VersionDayIndex ON VersionSummary (Day)`)
}
- row = db.QueryRow(`SELECT 'MovementDayIndex'::regclass`)
- if err := row.Scan(&t); err != nil {
- _, _ = db.Exec(`CREATE INDEX MovementDayIndex ON UserMovement (Day)`)
- }
-
row = db.QueryRow(`SELECT 'PerformanceDayIndex'::regclass`)
if err := row.Scan(&t); err != nil {
_, _ = db.Exec(`CREATE INDEX PerformanceDayIndex ON Performance (Day)`)
@@ -181,87 +166,6 @@ func aggregateVersionSummary(db *sql.DB, since time.Time) (int64, error) {
return res.RowsAffected()
}
-func aggregateUserMovement(db *sql.DB) (int64, error) {
- rows, err := db.Query(`SELECT
- DATE_TRUNC('day', Received) AS Day,
- Report->>'uniqueID'
- FROM ReportsJson
- WHERE
- Report->>'uniqueID' IS NOT NULL
- AND Received < DATE_TRUNC('day', NOW())
- AND Report->>'version' like 'v_.%'
- ORDER BY Day
- `)
- if err != nil {
- return 0, err
- }
- defer rows.Close()
-
- firstSeen := make(map[string]time.Time)
- lastSeen := make(map[string]time.Time)
- var minTs time.Time
- minTs = minTs.In(time.UTC)
-
- for rows.Next() {
- var ts time.Time
- var id string
- if err := rows.Scan(&ts, &id); err != nil {
- return 0, err
- }
-
- if minTs.IsZero() {
- minTs = ts
- }
- if _, ok := firstSeen[id]; !ok {
- firstSeen[id] = ts
- }
- lastSeen[id] = ts
- }
-
- type sumRow struct {
- day time.Time
- added int
- removed int
- bounced int
- }
- var sumRows []sumRow
- for t := minTs; t.Before(time.Now().Truncate(24 * time.Hour)); t = t.AddDate(0, 0, 1) {
- var added, removed, bounced int
- old := t.Before(time.Now().AddDate(0, 0, -30))
- for id, first := range firstSeen {
- last := lastSeen[id]
- if first.Equal(t) && last.Equal(t) && old {
- bounced++
- continue
- }
- if first.Equal(t) {
- added++
- }
- if last == t && old {
- removed++
- }
- }
- sumRows = append(sumRows, sumRow{t, added, removed, bounced})
- }
-
- tx, err := db.Begin()
- if err != nil {
- return 0, err
- }
- if _, err := tx.Exec("DELETE FROM UserMovement"); err != nil {
- tx.Rollback()
- return 0, err
- }
- for _, r := range sumRows {
- if _, err := tx.Exec("INSERT INTO UserMovement (Day, Added, Removed, Bounced) VALUES ($1, $2, $3, $4)", r.day, r.added, r.removed, r.bounced); err != nil {
- tx.Rollback()
- return 0, err
- }
- }
-
- return int64(len(sumRows)), tx.Commit()
-}
-
func aggregatePerformance(db *sql.DB, since time.Time) (int64, error) {
res, err := db.Exec(`INSERT INTO Performance (
SELECT
diff --git a/cmd/ursrv/serve/serve.go b/cmd/ursrv/serve/serve.go
index a7428f68b..343230c43 100644
--- a/cmd/ursrv/serve/serve.go
+++ b/cmd/ursrv/serve/serve.go
@@ -190,7 +190,6 @@ func (cli *CLI) Run() error {
http.HandleFunc("/", srv.rootHandler)
http.HandleFunc("/newdata", srv.newDataHandler)
http.HandleFunc("/summary.json", srv.summaryHandler)
- http.HandleFunc("/movement.json", srv.movementHandler)
http.HandleFunc("/performance.json", srv.performanceHandler)
http.HandleFunc("/blockstats.json", srv.blockStatsHandler)
http.HandleFunc("/locations.json", srv.locationsHandler)
@@ -363,25 +362,6 @@ func (s *server) summaryHandler(w http.ResponseWriter, r *http.Request) {
w.Write(bs)
}
-func (s *server) movementHandler(w http.ResponseWriter, _ *http.Request) {
- mov, err := getMovement(s.db)
- if err != nil {
- log.Println("movementHandler:", err)
- http.Error(w, "Database Error", http.StatusInternalServerError)
- return
- }
-
- bs, err := json.Marshal(mov)
- if err != nil {
- log.Println("movementHandler:", err)
- http.Error(w, "JSON Encode Error", http.StatusInternalServerError)
- return
- }
-
- w.Header().Set("Content-Type", "application/json")
- w.Write(bs)
-}
-
func (s *server) performanceHandler(w http.ResponseWriter, _ *http.Request) {
perf, err := getPerformance(s.db)
if err != nil {
@@ -1038,39 +1018,6 @@ func getSummary(db *sql.DB, min int) (summary, error) {
return s, nil
}
-func getMovement(db *sql.DB) ([][]interface{}, error) {
- rows, err := db.Query(`SELECT Day, Added, Removed, Bounced FROM UserMovement WHERE Day > now() - '3 year'::INTERVAL ORDER BY Day`)
- if err != nil {
- return nil, err
- }
- defer rows.Close()
-
- res := [][]interface{}{
- {"Day", "Joined", "Left", "Bounced"},
- }
-
- for rows.Next() {
- var day time.Time
- var added, removed, bounced int
- err := rows.Scan(&day, &added, &removed, &bounced)
- if err != nil {
- return nil, err
- }
-
- row := []interface{}{day.Format("2006-01-02"), added, -removed, bounced}
- if removed == 0 {
- row[2] = nil
- }
- if bounced == 0 {
- row[3] = nil
- }
-
- res = append(res, row)
- }
-
- return res, nil
-}
-
func getPerformance(db *sql.DB) ([][]interface{}, error) {
rows, err := db.Query(`SELECT Day, TotFiles, TotMiB, SHA256Perf, MemorySize, MemoryUsageMiB FROM Performance WHERE Day > now() - '5 year'::INTERVAL ORDER BY Day`)
if err != nil {