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  })