1
0
mirror of https://github.com/amir20/dozzle.git synced 2025-12-21 13:23:07 +01:00
Files
dozzle/internal/support/cli/analytics.go
2025-02-03 12:42:09 -08:00

42 lines
1.1 KiB
Go

package cli
import (
"github.com/amir20/dozzle/internal/analytics"
"github.com/amir20/dozzle/internal/container"
"github.com/amir20/dozzle/types"
"github.com/rs/zerolog/log"
)
func StartEvent(args Args, mode string, client container.Client, subCommand string) {
if args.NoAnalytics {
return
}
event := types.BeaconEvent{
Name: "start",
Version: args.Version(),
Mode: mode,
RemoteAgents: len(args.RemoteAgent),
RemoteClients: len(args.RemoteHost),
SubCommand: subCommand,
HasActions: args.EnableActions,
HasCustomAddress: args.Addr != ":8080",
HasCustomBase: args.Base != "/",
HasHostname: args.Hostname != "",
FilterLength: len(args.Filter),
}
if client != nil {
host := client.Host()
event.ServerID = host.ID
event.ServerVersion = host.DockerVersion
event.IsSwarmMode = host.Swarm
} else {
event.ServerID = "n/a"
}
log.Trace().Interface("event", event).Msg("Sending analytics event")
if err := analytics.SendBeacon(event); err != nil {
log.Debug().Err(err).Msg("Failed to send analytics event")
}
}