Loading go-packages/meep-metric-store/convert.go +16 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,22 @@ func JsonNumToInt32(num json.Number) (val int32) { } func JsonNumToFloat64(num json.Number) (val float64) { if intVal, err := num.Float64(); err == nil { val = intVal if floatVal, err := num.Float64(); err == nil { val = floatVal } return val } func StrToInt32(str string) (val int32) { if intVal, err := strconv.Atoi(str); err == nil { val = int32(intVal) } return val } func StrToFloat64(str string) (val float64) { if floatVal, err := strconv.ParseFloat(str, 64); err == nil { val = floatVal } return val } go-packages/meep-metric-store/events.go +26 −34 Original line number Diff line number Diff line Loading @@ -22,42 +22,24 @@ import ( log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger" ) const metricEvent = "events" const EvMetName = "events" const EvMetType = "type" const EvMetEvent = "event" // SetEventMetric func (ms *MetricStore) SetEventMetric(eventType string, eventStr string) error { tags := map[string]string{"type": eventType} fields := map[string]interface{}{"event": eventStr} return ms.SetMetric(metricEvent, tags, fields) } // GetLastEventMetric func (ms *MetricStore) GetLastEventMetric(eventType string) (event string, err error) { // Make sure we have set a store if ms.name == "" { err := errors.New("Store name not specified") return event, err } // Get latest Net metric tags := map[string]string{"type": eventType} fields := []string{"event"} valuesArray, err := ms.GetMetric(metricEvent, tags, fields, "", 1) if err != nil { log.Error("Failed to retrieve metrics with error: ", err.Error()) return event, err type EventMetric struct { time interface{} event string } // Take first & only values values := valuesArray[0] if val, ok := values["event"].(string); ok { event = val } return event, nil // SetEventMetric func (ms *MetricStore) SetEventMetric(eventType string, metric EventMetric) error { tags := map[string]string{EvMetType: eventType} fields := map[string]interface{}{EvMetEvent: metric.event} return ms.SetInfluxMetric(EvMetName, tags, fields) } // GetEventMetrics func (ms *MetricStore) GetEventMetrics(eventType string, duration string, count int) (metrics []map[string]interface{}, err error) { // GetEventMetric func (ms *MetricStore) GetEventMetric(eventType string, duration string, count int) (metrics []EventMetric, err error) { // Make sure we have set a store if ms.name == "" { err = errors.New("Store name not specified") Loading @@ -65,12 +47,22 @@ func (ms *MetricStore) GetEventMetrics(eventType string, duration string, count } // Get Traffic metrics tags := map[string]string{"type": eventType} fields := []string{"event"} metrics, err = ms.GetMetric(metricEvent, tags, fields, duration, count) tags := map[string]string{EvMetType: eventType} fields := []string{EvMetEvent} var valuesArray []map[string]interface{} valuesArray, err = ms.GetInfluxMetric(EvMetName, tags, fields, duration, count) if err != nil { log.Error("Failed to retrieve metrics with error: ", err.Error()) return } // Format event metrics metrics = make([]EventMetric, len(valuesArray)) for index, values := range valuesArray { metrics[index].time = values[NetMetTime] if val, ok := values[EvMetEvent].(string); ok { metrics[index].event = val } } return } go-packages/meep-metric-store/events_test.go +42 −42 Original line number Diff line number Diff line Loading @@ -23,15 +23,16 @@ import ( log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger" ) const eventsStoreName string = "eventsStore" const eventsStoreAddr string = "http://localhost:30986" const eventStoreName string = "eventStore" const eventStoreInfluxAddr string = "http://localhost:30986" const eventStoreRedisAddr string = "localhost:30380" func TestEventsMetricsGetSet(t *testing.T) { fmt.Println("--- ", t.Name()) log.MeepTextLogInit(t.Name()) fmt.Println("Create valid Metric Store") ms, err := NewMetricStore(eventsStoreName, eventsStoreAddr) ms, err := NewMetricStore(eventStoreName, eventStoreInfluxAddr, eventStoreRedisAddr) if err != nil { t.Errorf("Unable to create Metric Store") } Loading @@ -40,78 +41,77 @@ func TestEventsMetricsGetSet(t *testing.T) { ms.Flush() fmt.Println("Set event metric") err = ms.SetEventMetric("MOBILITY", "event1") err = ms.SetEventMetric("MOBILITY", EventMetric{nil, "event1"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", "event2") err = ms.SetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", EventMetric{nil, "event2"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("POAS-IN-RANGE", "event3") err = ms.SetEventMetric("POAS-IN-RANGE", EventMetric{nil, "event3"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("MOBILITY", "event4") err = ms.SetEventMetric("MOBILITY", EventMetric{nil, "event4"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", "event5") err = ms.SetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", EventMetric{nil, "event5"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("POAS-IN-RANGE", "event6") err = ms.SetEventMetric("POAS-IN-RANGE", EventMetric{nil, "event6"}) if err != nil { t.Errorf("Unable to set event metric") } fmt.Println("Get event metrics") event, err := ms.GetLastEventMetric("MOBILITY") if err != nil { t.Errorf("Event metric should exist") } else if event != "event4" { t.Errorf("Invalid metric values") _, err = ms.GetEventMetric("MOBILITY", "1ms", 0) if err == nil { t.Errorf("No metrics should be found in the last 1 ms") } event, err = ms.GetLastEventMetric("NETWORK-CHARACTERISTIC-UPDATE") if err != nil { t.Errorf("Event metric should exist") } else if event != "event5" { t.Errorf("Invalid metric values") eml, err := ms.GetEventMetric("MOBILITY", "", 1) if err != nil || len(eml) != 1 { t.Errorf("Failed to get metric") } event, err = ms.GetLastEventMetric("POAS-IN-RANGE") if err != nil { t.Errorf("Event metric should exist") } else if event != "event6" { t.Errorf("Invalid metric values") if !validateEventsMetric(eml[0], "event4") { t.Errorf("Invalid event metric") } fmt.Println("Get event metrics") _, err = ms.GetEventMetrics("MOBILITY", "1ms", 0) if err == nil { t.Errorf("No metrics should be found in the last 1 ms") eml, err = ms.GetEventMetric("MOBILITY", "", 0) if err != nil || len(eml) != 2 { t.Errorf("Failed to get metric") } result, err := ms.GetEventMetrics("MOBILITY", "", 1) if err != nil || len(result) != 1 { if !validateEventsMetric(eml[0], "event4") { t.Errorf("Invalid event metric") } if !validateEventsMetric(eml[1], "event1") { t.Errorf("Invalid event metric") } eml, err = ms.GetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", "", 0) if err != nil || len(eml) != 2 { t.Errorf("Failed to get metric") } if !validateEventsMetric(result[0], "event4") { t.Errorf("Invalid result") if !validateEventsMetric(eml[0], "event5") { t.Errorf("Invalid event metric") } if !validateEventsMetric(eml[1], "event2") { t.Errorf("Invalid event metric") } result, err = ms.GetEventMetrics("MOBILITY", "", 0) if err != nil || len(result) != 2 { eml, err = ms.GetEventMetric("POAS-IN-RANGE", "", 0) if err != nil || len(eml) != 2 { t.Errorf("Failed to get metric") } if !validateEventsMetric(result[0], "event4") { t.Errorf("Invalid result") if !validateEventsMetric(eml[0], "event6") { t.Errorf("Invalid event metric") } if !validateEventsMetric(result[1], "event1") { t.Errorf("Invalid result") if !validateEventsMetric(eml[1], "event3") { t.Errorf("Invalid event metric") } // t.Errorf("DONE") } func validateEventsMetric(result map[string]interface{}, v1 string) bool { return !(result["event"] != v1) func validateEventsMetric(em EventMetric, event string) bool { return em.event == event } go-packages/meep-metric-store/go.mod +5 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,11 @@ go 1.12 require ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis v0.0.0 github.com/influxdata/influxdb1-client v0.0.0-20190809212627-fc22c7df067e ) replace github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger => ../../go-packages/meep-logger replace ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger => ../../go-packages/meep-logger github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis => ../../go-packages/meep-redis ) go-packages/meep-metric-store/go.sum +20 −1 Original line number Diff line number Diff line github.com/KromDaniel/jonson v0.0.0-20180630143114-d2f9c3c389db/go.mod h1:RU+6d0CNIRSp6yo1mXLIIrnFa/3LHhvcDVLVJyovptM= github.com/KromDaniel/rejonson v0.0.0-20180822072824-00b5bcf2b351 h1:1u1XrfCBnY+GijnyU6O1k4odp5TnqZQTsp5v7+n/E4Y= github.com/KromDaniel/rejonson v0.0.0-20180822072824-00b5bcf2b351/go.mod h1:HxwfbuElTuGf+/uKZfjJrCnv0BmmpkPJDI7gBwj1KkM= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/go-redis/redis v6.15.2+incompatible h1:9SpNVG76gr6InJGxoZ6IuuxaCOQwDAhzyXg+Bs+0Sb4= github.com/go-redis/redis v6.15.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/influxdata/influxdb1-client v0.0.0-20190809212627-fc22c7df067e h1:txQltCyjXAqVVSZDArPEhUTg35hKwVIuXwtQo7eAMNQ= github.com/influxdata/influxdb1-client v0.0.0-20190809212627-fc22c7df067e/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/sirupsen/logrus v1.4.1 h1:GL2rEmy6nsikmW0r8opw9JIRScdMF5hA8cOYLH7In1k= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 h1:I6FyU15t786LL7oL/hn43zqTuEGr4PN7F4XJ1p4E3Y8= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= Loading
go-packages/meep-metric-store/convert.go +16 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,22 @@ func JsonNumToInt32(num json.Number) (val int32) { } func JsonNumToFloat64(num json.Number) (val float64) { if intVal, err := num.Float64(); err == nil { val = intVal if floatVal, err := num.Float64(); err == nil { val = floatVal } return val } func StrToInt32(str string) (val int32) { if intVal, err := strconv.Atoi(str); err == nil { val = int32(intVal) } return val } func StrToFloat64(str string) (val float64) { if floatVal, err := strconv.ParseFloat(str, 64); err == nil { val = floatVal } return val }
go-packages/meep-metric-store/events.go +26 −34 Original line number Diff line number Diff line Loading @@ -22,42 +22,24 @@ import ( log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger" ) const metricEvent = "events" const EvMetName = "events" const EvMetType = "type" const EvMetEvent = "event" // SetEventMetric func (ms *MetricStore) SetEventMetric(eventType string, eventStr string) error { tags := map[string]string{"type": eventType} fields := map[string]interface{}{"event": eventStr} return ms.SetMetric(metricEvent, tags, fields) } // GetLastEventMetric func (ms *MetricStore) GetLastEventMetric(eventType string) (event string, err error) { // Make sure we have set a store if ms.name == "" { err := errors.New("Store name not specified") return event, err } // Get latest Net metric tags := map[string]string{"type": eventType} fields := []string{"event"} valuesArray, err := ms.GetMetric(metricEvent, tags, fields, "", 1) if err != nil { log.Error("Failed to retrieve metrics with error: ", err.Error()) return event, err type EventMetric struct { time interface{} event string } // Take first & only values values := valuesArray[0] if val, ok := values["event"].(string); ok { event = val } return event, nil // SetEventMetric func (ms *MetricStore) SetEventMetric(eventType string, metric EventMetric) error { tags := map[string]string{EvMetType: eventType} fields := map[string]interface{}{EvMetEvent: metric.event} return ms.SetInfluxMetric(EvMetName, tags, fields) } // GetEventMetrics func (ms *MetricStore) GetEventMetrics(eventType string, duration string, count int) (metrics []map[string]interface{}, err error) { // GetEventMetric func (ms *MetricStore) GetEventMetric(eventType string, duration string, count int) (metrics []EventMetric, err error) { // Make sure we have set a store if ms.name == "" { err = errors.New("Store name not specified") Loading @@ -65,12 +47,22 @@ func (ms *MetricStore) GetEventMetrics(eventType string, duration string, count } // Get Traffic metrics tags := map[string]string{"type": eventType} fields := []string{"event"} metrics, err = ms.GetMetric(metricEvent, tags, fields, duration, count) tags := map[string]string{EvMetType: eventType} fields := []string{EvMetEvent} var valuesArray []map[string]interface{} valuesArray, err = ms.GetInfluxMetric(EvMetName, tags, fields, duration, count) if err != nil { log.Error("Failed to retrieve metrics with error: ", err.Error()) return } // Format event metrics metrics = make([]EventMetric, len(valuesArray)) for index, values := range valuesArray { metrics[index].time = values[NetMetTime] if val, ok := values[EvMetEvent].(string); ok { metrics[index].event = val } } return }
go-packages/meep-metric-store/events_test.go +42 −42 Original line number Diff line number Diff line Loading @@ -23,15 +23,16 @@ import ( log "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger" ) const eventsStoreName string = "eventsStore" const eventsStoreAddr string = "http://localhost:30986" const eventStoreName string = "eventStore" const eventStoreInfluxAddr string = "http://localhost:30986" const eventStoreRedisAddr string = "localhost:30380" func TestEventsMetricsGetSet(t *testing.T) { fmt.Println("--- ", t.Name()) log.MeepTextLogInit(t.Name()) fmt.Println("Create valid Metric Store") ms, err := NewMetricStore(eventsStoreName, eventsStoreAddr) ms, err := NewMetricStore(eventStoreName, eventStoreInfluxAddr, eventStoreRedisAddr) if err != nil { t.Errorf("Unable to create Metric Store") } Loading @@ -40,78 +41,77 @@ func TestEventsMetricsGetSet(t *testing.T) { ms.Flush() fmt.Println("Set event metric") err = ms.SetEventMetric("MOBILITY", "event1") err = ms.SetEventMetric("MOBILITY", EventMetric{nil, "event1"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", "event2") err = ms.SetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", EventMetric{nil, "event2"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("POAS-IN-RANGE", "event3") err = ms.SetEventMetric("POAS-IN-RANGE", EventMetric{nil, "event3"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("MOBILITY", "event4") err = ms.SetEventMetric("MOBILITY", EventMetric{nil, "event4"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", "event5") err = ms.SetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", EventMetric{nil, "event5"}) if err != nil { t.Errorf("Unable to set event metric") } err = ms.SetEventMetric("POAS-IN-RANGE", "event6") err = ms.SetEventMetric("POAS-IN-RANGE", EventMetric{nil, "event6"}) if err != nil { t.Errorf("Unable to set event metric") } fmt.Println("Get event metrics") event, err := ms.GetLastEventMetric("MOBILITY") if err != nil { t.Errorf("Event metric should exist") } else if event != "event4" { t.Errorf("Invalid metric values") _, err = ms.GetEventMetric("MOBILITY", "1ms", 0) if err == nil { t.Errorf("No metrics should be found in the last 1 ms") } event, err = ms.GetLastEventMetric("NETWORK-CHARACTERISTIC-UPDATE") if err != nil { t.Errorf("Event metric should exist") } else if event != "event5" { t.Errorf("Invalid metric values") eml, err := ms.GetEventMetric("MOBILITY", "", 1) if err != nil || len(eml) != 1 { t.Errorf("Failed to get metric") } event, err = ms.GetLastEventMetric("POAS-IN-RANGE") if err != nil { t.Errorf("Event metric should exist") } else if event != "event6" { t.Errorf("Invalid metric values") if !validateEventsMetric(eml[0], "event4") { t.Errorf("Invalid event metric") } fmt.Println("Get event metrics") _, err = ms.GetEventMetrics("MOBILITY", "1ms", 0) if err == nil { t.Errorf("No metrics should be found in the last 1 ms") eml, err = ms.GetEventMetric("MOBILITY", "", 0) if err != nil || len(eml) != 2 { t.Errorf("Failed to get metric") } result, err := ms.GetEventMetrics("MOBILITY", "", 1) if err != nil || len(result) != 1 { if !validateEventsMetric(eml[0], "event4") { t.Errorf("Invalid event metric") } if !validateEventsMetric(eml[1], "event1") { t.Errorf("Invalid event metric") } eml, err = ms.GetEventMetric("NETWORK-CHARACTERISTIC-UPDATE", "", 0) if err != nil || len(eml) != 2 { t.Errorf("Failed to get metric") } if !validateEventsMetric(result[0], "event4") { t.Errorf("Invalid result") if !validateEventsMetric(eml[0], "event5") { t.Errorf("Invalid event metric") } if !validateEventsMetric(eml[1], "event2") { t.Errorf("Invalid event metric") } result, err = ms.GetEventMetrics("MOBILITY", "", 0) if err != nil || len(result) != 2 { eml, err = ms.GetEventMetric("POAS-IN-RANGE", "", 0) if err != nil || len(eml) != 2 { t.Errorf("Failed to get metric") } if !validateEventsMetric(result[0], "event4") { t.Errorf("Invalid result") if !validateEventsMetric(eml[0], "event6") { t.Errorf("Invalid event metric") } if !validateEventsMetric(result[1], "event1") { t.Errorf("Invalid result") if !validateEventsMetric(eml[1], "event3") { t.Errorf("Invalid event metric") } // t.Errorf("DONE") } func validateEventsMetric(result map[string]interface{}, v1 string) bool { return !(result["event"] != v1) func validateEventsMetric(em EventMetric, event string) bool { return em.event == event }
go-packages/meep-metric-store/go.mod +5 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,11 @@ go 1.12 require ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger v0.0.0 github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis v0.0.0 github.com/influxdata/influxdb1-client v0.0.0-20190809212627-fc22c7df067e ) replace github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger => ../../go-packages/meep-logger replace ( github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-logger => ../../go-packages/meep-logger github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-redis => ../../go-packages/meep-redis )
go-packages/meep-metric-store/go.sum +20 −1 Original line number Diff line number Diff line github.com/KromDaniel/jonson v0.0.0-20180630143114-d2f9c3c389db/go.mod h1:RU+6d0CNIRSp6yo1mXLIIrnFa/3LHhvcDVLVJyovptM= github.com/KromDaniel/rejonson v0.0.0-20180822072824-00b5bcf2b351 h1:1u1XrfCBnY+GijnyU6O1k4odp5TnqZQTsp5v7+n/E4Y= github.com/KromDaniel/rejonson v0.0.0-20180822072824-00b5bcf2b351/go.mod h1:HxwfbuElTuGf+/uKZfjJrCnv0BmmpkPJDI7gBwj1KkM= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/go-redis/redis v6.15.2+incompatible h1:9SpNVG76gr6InJGxoZ6IuuxaCOQwDAhzyXg+Bs+0Sb4= github.com/go-redis/redis v6.15.2+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/influxdata/influxdb1-client v0.0.0-20190809212627-fc22c7df067e h1:txQltCyjXAqVVSZDArPEhUTg35hKwVIuXwtQo7eAMNQ= github.com/influxdata/influxdb1-client v0.0.0-20190809212627-fc22c7df067e/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/sirupsen/logrus v1.4.1 h1:GL2rEmy6nsikmW0r8opw9JIRScdMF5hA8cOYLH7In1k= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33 h1:I6FyU15t786LL7oL/hn43zqTuEGr4PN7F4XJ1p4E3Y8= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=