mirror of
https://github.com/amir20/dozzle.git
synced 2026-01-04 20:14:59 +01:00
feat: improves analytics by removing google analytics in favor of a simple ping (#2515)
This commit is contained in:
@@ -8,6 +8,8 @@ import (
|
||||
"net/http"
|
||||
"sync"
|
||||
|
||||
"github.com/amir20/dozzle/internal/analytics"
|
||||
"github.com/amir20/dozzle/internal/content"
|
||||
"github.com/amir20/dozzle/internal/docker"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
@@ -31,6 +33,18 @@ func (h *handler) streamEvents(w http.ResponseWriter, r *http.Request) {
|
||||
events := make(chan docker.ContainerEvent)
|
||||
stats := make(chan docker.ContainerStat)
|
||||
|
||||
pages, _ := content.ReadAll()
|
||||
b := analytics.BeaconEvent{
|
||||
Version: h.config.Version,
|
||||
Browser: r.Header.Get("User-Agent"),
|
||||
AuthProvider: string(h.config.Authorization.Provider),
|
||||
HasHostname: h.config.Hostname != "",
|
||||
HasCustomBase: h.config.Base != "",
|
||||
HasCustomAddress: h.config.Addr != "",
|
||||
RemoteHostLength: len(h.clients),
|
||||
HasDocumentation: len(pages) > 0,
|
||||
}
|
||||
|
||||
{
|
||||
wg := sync.WaitGroup{}
|
||||
wg.Add(len(h.clients))
|
||||
@@ -69,9 +83,18 @@ func (h *handler) streamEvents(w http.ResponseWriter, r *http.Request) {
|
||||
log.Errorf("error writing containers to event stream: %v", err)
|
||||
}
|
||||
|
||||
b.RunningContainers = len(allContainers)
|
||||
f.Flush()
|
||||
}
|
||||
|
||||
if !h.config.NoAnalytics {
|
||||
go func() {
|
||||
if err := analytics.SendBeacon(b); err != nil {
|
||||
log.Debugf("error sending beacon: %v", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
for {
|
||||
select {
|
||||
case stat := <-stats:
|
||||
|
||||
Reference in New Issue
Block a user