1
0
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:
Amir Raminfar
2023-11-18 19:35:24 -08:00
committed by GitHub
parent 58fef4e16a
commit c659f103f8
4 changed files with 76 additions and 19 deletions

View File

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