github.com/zak-blake/goa@v1.4.1/metrics_test.go (about) 1 package goa_test 2 3 import ( 4 "time" 5 6 "github.com/goadesign/goa" 7 8 . "github.com/onsi/ginkgo" 9 . "github.com/onsi/gomega" 10 11 metrics "github.com/armon/go-metrics" 12 ) 13 14 var _ = Describe("Metrics", func() { 15 var keys = [6]string{} 16 var metriks *metrics.Metrics 17 var sink *goa.NoOpSink 18 19 BeforeEach(func() { 20 sink = &goa.NoOpSink{} 21 22 var err error 23 metriks, err = metrics.New(metrics.DefaultConfig("UnitTest Service"), sink) 24 25 if err != nil { 26 panic("Unable to create test instance of metrics") 27 } 28 29 keys = [6]string{ 30 "foo_bar_*/*", 31 "foo_*_baz", 32 "foo/baz", 33 "foo/bar/baz", 34 "foo/bar*_*/*", 35 "//foo/bar*", 36 } 37 }) 38 39 Describe("Add sample", func() { 40 Context("With invalid characters in key", func() { 41 It("should replace invalid characters with normalized characters", func() { 42 goa.SetMetrics(metriks) 43 goa.AddSample(keys[:], 3.14) 44 Ω(keys).Should(ConsistOf([]string{ 45 "foo_bar_all", 46 "foo___baz", 47 "foo_baz", 48 "foo_bar_baz", 49 "foo_bar__all", 50 "__foo_bar_", 51 })) 52 }) 53 }) 54 }) 55 56 Describe("Emit key", func() { 57 Context("With invalid characters in key", func() { 58 It("should replace invalid characters with normalized characters", func() { 59 goa.SetMetrics(metriks) 60 goa.EmitKey(keys[:], 3.14) 61 Ω(keys).Should(ConsistOf([]string{ 62 "foo_bar_all", 63 "foo___baz", 64 "foo_baz", 65 "foo_bar_baz", 66 "foo_bar__all", 67 "__foo_bar_", 68 })) 69 }) 70 }) 71 }) 72 73 Describe("Increment Counter", func() { 74 Context("With invalid characters in key", func() { 75 It("should replace invalid characters with normalized characters", func() { 76 goa.SetMetrics(metriks) 77 goa.IncrCounter(keys[:], 3.14) 78 Ω(keys).Should(ConsistOf([]string{ 79 "foo_bar_all", 80 "foo___baz", 81 "foo_baz", 82 "foo_bar_baz", 83 "foo_bar__all", 84 "__foo_bar_", 85 })) 86 }) 87 }) 88 }) 89 90 Describe("Measure since", func() { 91 Context("With invalid characters in key", func() { 92 It("should replace invalid characters with normalized characters", func() { 93 goa.SetMetrics(metriks) 94 goa.MeasureSince(keys[:], time.Time{}) 95 Ω(keys).Should(ConsistOf([]string{ 96 "foo_bar_all", 97 "foo___baz", 98 "foo_baz", 99 "foo_bar_baz", 100 "foo_bar__all", 101 "__foo_bar_", 102 })) 103 }) 104 }) 105 }) 106 107 Describe("Set gauge", func() { 108 Context("With invalid characters in key", func() { 109 It("should replace invalid characters with normalized characters", func() { 110 goa.SetMetrics(metriks) 111 goa.SetGauge(keys[:], 3.14) 112 Ω(keys).Should(ConsistOf([]string{ 113 "foo_bar_all", 114 "foo___baz", 115 "foo_baz", 116 "foo_bar_baz", 117 "foo_bar__all", 118 "__foo_bar_", 119 })) 120 }) 121 }) 122 }) 123 })