diff --git a/go.mod b/go.mod index 887fca9..343ab6d 100644 --- a/go.mod +++ b/go.mod @@ -24,6 +24,7 @@ require ( golang.org/x/crypto v0.1.0 golang.org/x/exp v0.0.0-20221106115401-f9659909a136 golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c + vizzlo.com/mixpanel v1.2.0 ) require ( @@ -118,5 +119,4 @@ require ( k8s.io/utils v0.0.0-20201110183641-67b214c5f920 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.0.3 // indirect sigs.k8s.io/yaml v1.2.0 // indirect - vizzlo.com/mixpanel v1.2.0 // indirect ) diff --git a/telemetry/mixpanel.go b/telemetry/mixpanel.go index f8e7dc6..827bfb5 100644 --- a/telemetry/mixpanel.go +++ b/telemetry/mixpanel.go @@ -1,6 +1,7 @@ package telemetry import ( + "github.com/google/uuid" "log" "time" @@ -12,6 +13,7 @@ type MixpanelTelemetryTracker struct { client *mixpanel.Client appName string version string + runId string } /* @@ -33,14 +35,14 @@ func (m MixpanelTelemetryTracker) TrackEvent(eventContext EventContext, eventPro baseProps := map[string]interface{}{ "timestamp": time.Now().Unix(), "context": m.appName, - "command": eventContext.command, + "command": eventContext.Command, "version": m.version, } // Combine our baseline props that we send for _ALL_ events with the passed in props from the event trackProps := mergeMaps(baseProps, eventProps) - err := m.client.Track(m.clientId, eventContext.eventName, trackProps) + err := m.client.Track(m.runId, eventContext.EventName, trackProps) if err != nil { log.Fatal(err) @@ -49,5 +51,11 @@ func (m MixpanelTelemetryTracker) TrackEvent(eventContext EventContext, eventPro func NewMixPanelTelemetryClient(clientId string, appName string, version string) MixpanelTelemetryTracker { mixpanelClient := mixpanel.New(clientId) - return MixpanelTelemetryTracker{client: mixpanelClient, clientId: clientId, appName: appName, version: version} + return MixpanelTelemetryTracker{ + client: mixpanelClient, + clientId: clientId, + appName: appName, + version: version, + runId: uuid.New().String(), + } } diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go index 319ce10..43dd041 100644 --- a/telemetry/telemetry.go +++ b/telemetry/telemetry.go @@ -5,6 +5,6 @@ type telemetryTracker interface { } type EventContext struct { - command string - eventName string + Command string + EventName string }