|
1 | 1 | package telemetry
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + "bytes" |
| 5 | + "encoding/json" |
4 | 6 | "github.com/google/uuid"
|
5 | 7 | "log"
|
| 8 | + "net/http" |
6 | 9 | "time"
|
7 |
| - |
8 |
| - "vizzlo.com/mixpanel" |
9 | 10 | )
|
10 | 11 |
|
11 | 12 | type MixpanelTelemetryTracker struct {
|
12 |
| - clientId string |
13 |
| - client *mixpanel.Client |
14 |
| - appName string |
15 |
| - version string |
16 |
| - runId string |
| 13 | + client *http.Client |
| 14 | + url string |
| 15 | + appName string |
| 16 | + version string |
| 17 | + runId string |
17 | 18 | }
|
18 | 19 |
|
19 | 20 | /*
|
@@ -42,20 +43,33 @@ func (m MixpanelTelemetryTracker) TrackEvent(eventContext EventContext, eventPro
|
42 | 43 | // Combine our baseline props that we send for _ALL_ events with the passed in props from the event
|
43 | 44 | trackProps := mergeMaps(baseProps, eventProps)
|
44 | 45 |
|
45 |
| - err := m.client.Track(m.runId, eventContext.EventName, trackProps) |
46 |
| - |
| 46 | + request := map[string]interface{}{ |
| 47 | + "id": m.runId, |
| 48 | + "event": eventContext.EventName, |
| 49 | + "eventProps": trackProps, |
| 50 | + } |
| 51 | + jsonStr, err := json.Marshal(request) |
| 52 | + if err != nil { |
| 53 | + log.Println(err.Error()) |
| 54 | + return |
| 55 | + } |
| 56 | + resp, err := m.client.Post(m.url, "application/json", bytes.NewBuffer(jsonStr)) |
| 57 | + if err != nil { |
| 58 | + log.Println(err.Error()) |
| 59 | + return |
| 60 | + } |
| 61 | + err = resp.Body.Close() |
47 | 62 | if err != nil {
|
48 | 63 | log.Println(err.Error())
|
49 | 64 | }
|
50 | 65 | }
|
51 | 66 |
|
52 |
| -func NewMixPanelTelemetryClient(clientId string, appName string, version string) MixpanelTelemetryTracker { |
53 |
| - mixpanelClient := mixpanel.New(clientId) |
| 67 | +func NewMixPanelTelemetryClient(url string, appName string, version string) MixpanelTelemetryTracker { |
54 | 68 | return MixpanelTelemetryTracker{
|
55 |
| - client: mixpanelClient, |
56 |
| - clientId: clientId, |
57 |
| - appName: appName, |
58 |
| - version: version, |
59 |
| - runId: uuid.New().String(), |
| 69 | + client: &http.Client{}, |
| 70 | + url: url, |
| 71 | + appName: appName, |
| 72 | + version: version, |
| 73 | + runId: uuid.New().String(), |
60 | 74 | }
|
61 | 75 | }
|
0 commit comments