fix: report GA event with value to indicate failure

This commit is contained in:
debugtalk
2022-01-08 12:35:54 +08:00
parent d1b80bb164
commit d3c97800f0
3 changed files with 13 additions and 7 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ func TestSendEvents(t *testing.T) {
event := EventTracking{ event := EventTracking{
Category: "unittest", Category: "unittest",
Action: "SendEvents", Action: "SendEvents",
Value: "123", Value: 123,
} }
err := gaClient.SendEvent(event) err := gaClient.SendEvent(event)
if err != nil { if err != nil {
@@ -21,7 +21,7 @@ func TestStructToUrlValues(t *testing.T) {
Category: "unittest", Category: "unittest",
Action: "convert", Action: "convert",
Label: "v0.3.0", Label: "v0.3.0",
Value: "123", Value: 123,
} }
val := structToUrlValues(event) val := structToUrlValues(event)
if val.Encode() != "ea=convert&ec=unittest&el=v0.3.0&ev=123" { if val.Encode() != "ea=convert&ec=unittest&el=v0.3.0&ev=123" {
+1 -1
View File
@@ -17,7 +17,7 @@ type EventTracking struct {
Category string `form:"ec"` // Required. Event Category. Category string `form:"ec"` // Required. Event Category.
Action string `form:"ea"` // Required. Event Action. Action string `form:"ea"` // Required. Event Action.
Label string `form:"el"` // Optional. Event label, used as version. Label string `form:"el"` // Optional. Event label, used as version.
Value string `form:"ev"` // Optional. Event value, must be digits, "123" Value int `form:"ev"` // Optional. Event value, must be non-negative integer
} }
func (e EventTracking) StartTiming(variable string) UserTimingTracking { func (e EventTracking) StartTiming(variable string) UserTimingTracking {
+10 -4
View File
@@ -35,10 +35,16 @@ func (p *parser) loadPlugin(path string) error {
} }
// report event for loading go plugin // report event for loading go plugin
go ga.SendEvent(ga.EventTracking{ defer func() {
Category: "LoadGoPlugin", event := ga.EventTracking{
Action: "plugin.Open", Category: "LoadGoPlugin",
}) Action: "plugin.Open",
}
if err != nil {
event.Value = 1 // failed
}
go ga.SendEvent(event)
}()
// load plugin // load plugin
plugins, err := plugin.Open(pluginPath) plugins, err := plugin.Open(pluginPath)