Updated dependencies and filter referer statistic for my own domain.

This commit is contained in:
Marvin Blum
2020-08-12 21:54:50 +02:00
committed by Marvin Blum
parent f7b8ab44c9
commit a387a5adda
4 changed files with 21 additions and 18 deletions

3
go.mod
View File

@@ -7,11 +7,10 @@ require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/emvi/api-go v0.2.2
github.com/emvi/logbuch v1.1.1
github.com/emvi/pirsch v1.2.0
github.com/emvi/pirsch v1.3.0
github.com/go-sql-driver/mysql v1.5.0 // indirect
github.com/gorilla/mux v1.7.4
github.com/gosimple/slug v1.9.0
github.com/jmoiron/sqlx v1.2.0
github.com/kr/pretty v0.1.0 // indirect
github.com/lib/pq v1.8.0
github.com/rs/cors v1.7.0

8
go.sum
View File

@@ -7,12 +7,10 @@ github.com/emvi/api-go v0.2.2 h1:NrZNl0o0xAbgfK1dFsRt/BKLesHLVjC4OKXHKTZsIis=
github.com/emvi/api-go v0.2.2/go.mod h1:g9RdDC3s5ebCknAHQQ5PjoM2vRFSyyGoOUX3QkDKU+o=
github.com/emvi/logbuch v1.1.1 h1:poBGNbHy/nB95oNoqLKAaJoBrcKxTO0W9DhMijKEkkU=
github.com/emvi/logbuch v1.1.1/go.mod h1:J2Wgbr3BuSc1JO+D2MBVh6q3WPVSK5GzktwWz8pvkKw=
github.com/emvi/pirsch v1.1.0 h1:uMnxWqbcKLpt1iBNP52aocCkgpfZAisvKcF0VzpVHv8=
github.com/emvi/pirsch v1.1.0/go.mod h1:+YmBbltJ3feZz9L/QQyqwywltYvQKBfzrGD51TPKl5g=
github.com/emvi/pirsch v1.1.1 h1:memw5fHl6ZY1dcB4Ic5tTtsbQkU9wTCjBlXi4G8D20o=
github.com/emvi/pirsch v1.1.1/go.mod h1:GDijqLHM331iWtmDmc7th19RxDrZadRkKoNvd9/kDX8=
github.com/emvi/pirsch v1.2.0 h1:k5OJwgE8/Zdq7raQNRF4aNHxWxPq7En51gWMMEFzinA=
github.com/emvi/pirsch v1.2.0/go.mod h1:GDijqLHM331iWtmDmc7th19RxDrZadRkKoNvd9/kDX8=
github.com/emvi/pirsch v1.3.0 h1:csgIvQKMMWF9EG4Dkfd4dFux6kfzOFC8PuNPWvsj7zM=
github.com/emvi/pirsch v1.3.0/go.mod h1:GDijqLHM331iWtmDmc7th19RxDrZadRkKoNvd9/kDX8=
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
@@ -29,8 +27,6 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.7.0 h1:h93mCPfUSkaul3Ka/VG8uZdmW1uMHDGxzu0NWHuJmHY=
github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/lib/pq v1.8.0 h1:9xohqzkUwzR4Ga4ivdTcawVS89YSDVxXMa3xJX3cGzg=
github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/mattn/go-sqlite3 v1.9.0 h1:pDRiWfl+++eC2FEFRy6jXmQlvp4Yh3z1MJKg4UeYM/4=

View File

@@ -209,7 +209,7 @@ func configureCors(router *mux.Router) http.Handler {
return c.Handler(router)
}
func start(handler http.Handler) {
func start(handler http.Handler, trackingCancel context.CancelFunc) {
logbuch.Info("Starting server...")
var server http.Server
server.Handler = handler
@@ -220,6 +220,7 @@ func start(handler http.Handler) {
signal.Notify(sigint, os.Interrupt)
<-sigint
logbuch.Info("Shutting down server...")
trackingCancel()
tracker.Stop()
ctx, _ := context.WithTimeout(context.Background(), shutdownTimeout)
@@ -238,10 +239,11 @@ func start(handler http.Handler) {
func main() {
configureLog()
logEnvConfig()
tracker = tracking.NewTracker()
var trackingCancel context.CancelFunc
tracker, trackingCancel = tracking.NewTracker()
tplCache = tpl.NewCache()
blogInstance = blog.NewBlog(tplCache)
router := setupRouter()
corsConfig := configureCors(router)
start(corsConfig)
start(corsConfig, trackingCancel)
}

View File

@@ -1,6 +1,7 @@
package tracking
import (
"context"
"database/sql"
"fmt"
"github.com/emvi/logbuch"
@@ -12,6 +13,7 @@ import (
const (
connectionString = `host=%s port=%s user=%s password=%s dbname=%s sslmode=%s sslcert=%s sslkey=%s sslrootcert=%s connectTimeout=%s timezone=%s`
domain = "marvinblum.de"
)
var (
@@ -19,7 +21,7 @@ var (
analyzer *pirsch.Analyzer
)
func NewTracker() *pirsch.Tracker {
func NewTracker() (*pirsch.Tracker, context.CancelFunc) {
logbuch.Info("Connecting to database...")
host := os.Getenv("MB_DB_HOST")
port := os.Getenv("MB_DB_PORT")
@@ -38,23 +40,27 @@ func NewTracker() *pirsch.Tracker {
if err != nil {
logbuch.Fatal("Error connecting to database", logbuch.Fields{"err": err})
return nil
return nil, nil
}
if err := conn.Ping(); err != nil {
logbuch.Fatal("Error pinging database", logbuch.Fields{"err": err})
return nil
return nil, nil
}
store = pirsch.NewPostgresStore(conn)
tracker := pirsch.NewTracker(store, os.Getenv("MB_TRACKING_SALT"), nil)
tracker := pirsch.NewTracker(store, os.Getenv("MB_TRACKING_SALT"), &pirsch.TrackerConfig{
// I don't care about traffic from my own website
RefererDomainBlacklist: []string{domain},
RefererDomainBlacklistIncludesSubdomains: true,
})
analyzer = pirsch.NewAnalyzer(store)
processor := pirsch.NewProcessor(store)
processor := pirsch.NewProcessor(store, nil)
processTrackingData(processor)
pirsch.RunAtMidnight(func() {
cancel := pirsch.RunAtMidnight(func() {
processTrackingData(processor)
})
return tracker
return tracker, cancel
}
func processTrackingData(processor *pirsch.Processor) {