@@ -26,7 +26,9 @@ import (
2626
2727func TestGauge (t * testing.T ) {
2828 r := NewRegistry ()
29- f , _ := r .AddFloat64Gauge ("TestGauge" , "" , "" , "k1" , "k2" )
29+
30+ f , _ := r .AddFloat64Gauge ("TestGauge" ,
31+ WithLabelKeys ("k1" , "k2" ))
3032 e , _ := f .GetEntry (metricdata.LabelValue {}, metricdata.LabelValue {})
3133 e .Set (5 )
3234 e , _ = f .GetEntry (metricdata .NewLabelValue ("k1v1" ), metricdata.LabelValue {})
@@ -81,16 +83,15 @@ func TestGauge(t *testing.T) {
8183}
8284
8385func TestGaugeMetricDescriptor (t * testing.T ) {
84- unit := metricdata .UnitDimensionless
8586 r := NewRegistry ()
8687
87- gf , _ := r .AddFloat64Gauge ("float64_gauge" , "" , unit )
88+ gf , _ := r .AddFloat64Gauge ("float64_gauge" )
8889 compareType (gf .g .desc .Type , metricdata .TypeGaugeFloat64 , t )
89- gi , _ := r .AddInt64Gauge ("int64_gauge" , "" , unit )
90+ gi , _ := r .AddInt64Gauge ("int64_gauge" )
9091 compareType (gi .g .desc .Type , metricdata .TypeGaugeInt64 , t )
91- dgf , _ := r .AddFloat64DerivedGauge ("derived_float64_gauge" , "" , unit )
92+ dgf , _ := r .AddFloat64DerivedGauge ("derived_float64_gauge" )
9293 compareType (dgf .g .desc .Type , metricdata .TypeGaugeFloat64 , t )
93- dgi , _ := r .AddInt64DerivedGauge ("derived_int64_gauge" , "" , unit )
94+ dgi , _ := r .AddInt64DerivedGauge ("derived_int64_gauge" )
9495 compareType (dgi .g .desc .Type , metricdata .TypeGaugeInt64 , t )
9596}
9697
@@ -100,9 +101,68 @@ func compareType(got, want metricdata.Type, t *testing.T) {
100101 }
101102}
102103
104+ func TestGaugeMetricOptionDesc (t * testing.T ) {
105+ r := NewRegistry ()
106+ name := "testOptDesc"
107+ gf , _ := r .AddFloat64Gauge (name , WithDescription ("test" ))
108+ want := metricdata.Descriptor {
109+ Name : name ,
110+ Description : "test" ,
111+ Type : metricdata .TypeGaugeFloat64 ,
112+ }
113+ got := gf .g .desc
114+ if ! cmp .Equal (got , want ) {
115+ t .Errorf ("metric option description: got %v, want %v\n " , got , want )
116+ }
117+ }
118+
119+ func TestGaugeMetricOptionUnit (t * testing.T ) {
120+ r := NewRegistry ()
121+ name := "testOptUnit"
122+ gf , _ := r .AddFloat64Gauge (name , WithUnit (metricdata .UnitMilliseconds ))
123+ want := metricdata.Descriptor {
124+ Name : name ,
125+ Unit : metricdata .UnitMilliseconds ,
126+ Type : metricdata .TypeGaugeFloat64 ,
127+ }
128+ got := gf .g .desc
129+ if ! cmp .Equal (got , want ) {
130+ t .Errorf ("metric descriptor: got %v, want %v\n " , got , want )
131+ }
132+ }
133+
134+ func TestGaugeMetricOptionLabelKeys (t * testing.T ) {
135+ r := NewRegistry ()
136+ name := "testOptUnit"
137+ gf , _ := r .AddFloat64Gauge (name , WithLabelKeys ("k1" , "k3" ))
138+ want := metricdata.Descriptor {
139+ Name : name ,
140+ LabelKeys : []string {"k1" , "k3" },
141+ Type : metricdata .TypeGaugeFloat64 ,
142+ }
143+ got := gf .g .desc
144+ if ! cmp .Equal (got , want ) {
145+ t .Errorf ("metric descriptor: got %v, want %v\n " , got , want )
146+ }
147+ }
148+
149+ func TestGaugeMetricOptionDefault (t * testing.T ) {
150+ r := NewRegistry ()
151+ name := "testOptUnit"
152+ gf , _ := r .AddFloat64Gauge (name )
153+ want := metricdata.Descriptor {
154+ Name : name ,
155+ Type : metricdata .TypeGaugeFloat64 ,
156+ }
157+ got := gf .g .desc
158+ if ! cmp .Equal (got , want ) {
159+ t .Errorf ("metric descriptor: got %v, want %v\n " , got , want )
160+ }
161+ }
162+
103163func TestFloat64Entry_Add (t * testing.T ) {
104164 r := NewRegistry ()
105- g , _ := r .AddFloat64Gauge ("g" , "" , metricdata . UnitDimensionless )
165+ g , _ := r .AddFloat64Gauge ("g" )
106166 e , _ := g .GetEntry ()
107167 e .Add (0 )
108168 ms := r .Read ()
@@ -125,7 +185,7 @@ func TestFloat64Entry_Add(t *testing.T) {
125185
126186func TestFloat64Gauge_Add_NegativeTotals (t * testing.T ) {
127187 r := NewRegistry ()
128- g , _ := r .AddFloat64Gauge ("g" , "" , metricdata . UnitDimensionless )
188+ g , _ := r .AddFloat64Gauge ("g" )
129189 e , _ := g .GetEntry ()
130190 e .Add (- 1.0 )
131191 ms := r .Read ()
@@ -136,7 +196,7 @@ func TestFloat64Gauge_Add_NegativeTotals(t *testing.T) {
136196
137197func TestInt64GaugeEntry_Add (t * testing.T ) {
138198 r := NewRegistry ()
139- g , _ := r .AddInt64Gauge ("g" , "" , metricdata . UnitDimensionless )
199+ g , _ := r .AddInt64Gauge ("g" )
140200 e , _ := g .GetEntry ()
141201 e .Add (0 )
142202 ms := r .Read ()
@@ -153,7 +213,7 @@ func TestInt64GaugeEntry_Add(t *testing.T) {
153213
154214func TestInt64Gauge_Add_NegativeTotals (t * testing.T ) {
155215 r := NewRegistry ()
156- g , _ := r .AddInt64Gauge ("g" , "" , metricdata . UnitDimensionless )
216+ g , _ := r .AddInt64Gauge ("g" )
157217 e , _ := g .GetEntry ()
158218 e .Add (- 1 )
159219 ms := r .Read ()
@@ -164,24 +224,24 @@ func TestInt64Gauge_Add_NegativeTotals(t *testing.T) {
164224
165225func TestGaugeWithSameNameDiffType (t * testing.T ) {
166226 r := NewRegistry ()
167- r .AddInt64Gauge ("g" , "" , metricdata . UnitDimensionless )
168- _ , gotErr := r .AddFloat64Gauge ("g" , "" , metricdata . UnitDimensionless )
227+ r .AddInt64Gauge ("g" )
228+ _ , gotErr := r .AddFloat64Gauge ("g" )
169229 if gotErr == nil {
170230 t .Errorf ("got: nil, want error: %v" , errGaugeExistsWithDiffType )
171231 }
172- _ , gotErr = r .AddInt64DerivedGauge ("g" , "" , metricdata . UnitDimensionless )
232+ _ , gotErr = r .AddInt64DerivedGauge ("g" )
173233 if gotErr == nil {
174234 t .Errorf ("got: nil, want error: %v" , errGaugeExistsWithDiffType )
175235 }
176- _ , gotErr = r .AddFloat64DerivedGauge ("g" , "" , metricdata . UnitDimensionless )
236+ _ , gotErr = r .AddFloat64DerivedGauge ("g" )
177237 if gotErr == nil {
178238 t .Errorf ("got: nil, want error: %v" , errGaugeExistsWithDiffType )
179239 }
180240}
181241
182242func TestGaugeWithLabelMismatch (t * testing.T ) {
183243 r := NewRegistry ()
184- g , _ := r .AddInt64Gauge ("g" , "" , metricdata . UnitDimensionless , " k1" )
244+ g , _ := r .AddInt64Gauge ("g" , WithLabelKeys ( " k1") )
185245 _ , gotErr := g .GetEntry (metricdata .NewLabelValue ("k1v2" ), metricdata .NewLabelValue ("k2v2" ))
186246 if gotErr == nil {
187247 t .Errorf ("got: nil, want error: %v" , errKeyValueMismatch )
@@ -222,7 +282,7 @@ func TestRaceCondition(t *testing.T) {
222282 for i := 0 ; i < 5 ; i ++ {
223283 go func (k int ) {
224284 for j := 0 ; j < 5 ; j ++ {
225- g , _ := r .AddInt64Gauge (fmt .Sprintf ("g%d%d" , k , j ), "" , metricdata . UnitDimensionless )
285+ g , _ := r .AddInt64Gauge (fmt .Sprintf ("g%d%d" , k , j ))
226286 e , _ := g .GetEntry ()
227287 e .Add (1 )
228288 }
@@ -272,7 +332,7 @@ func (q *queueInt64) ToInt64() int64 {
272332func TestInt64DerivedGaugeEntry_Add (t * testing.T ) {
273333 r := NewRegistry ()
274334 q := & queueInt64 {3 }
275- g , _ := r .AddInt64DerivedGauge ("g" , "" , metricdata . UnitDimensionless , " k1" , "k2" )
335+ g , _ := r .AddInt64DerivedGauge ("g" , WithLabelKeys ( " k1" , "k2" ) )
276336 err := g .UpsertEntry (q .ToInt64 , metricdata .NewLabelValue ("k1v1" ), metricdata.LabelValue {})
277337 if err != nil {
278338 t .Errorf ("want: nil, got: %v" , err )
@@ -290,7 +350,7 @@ func TestInt64DerivedGaugeEntry_Add(t *testing.T) {
290350
291351func TestInt64DerivedGaugeEntry_AddWithNilObj (t * testing.T ) {
292352 r := NewRegistry ()
293- g , _ := r .AddInt64DerivedGauge ("g" , "" , metricdata . UnitDimensionless , " k1" , "k2" )
353+ g , _ := r .AddInt64DerivedGauge ("g" , WithLabelKeys ( " k1" , "k2" ) )
294354 gotErr := g .UpsertEntry (nil , metricdata .NewLabelValue ("k1v1" ), metricdata.LabelValue {})
295355 if gotErr == nil {
296356 t .Errorf ("expected error but got nil" )
@@ -300,7 +360,7 @@ func TestInt64DerivedGaugeEntry_AddWithNilObj(t *testing.T) {
300360func TestInt64DerivedGaugeEntry_AddWithInvalidLabels (t * testing.T ) {
301361 r := NewRegistry ()
302362 q := & queueInt64 {3 }
303- g , _ := r .AddInt64DerivedGauge ("g" , "" , metricdata . UnitDimensionless , " k1" , "k2" )
363+ g , _ := r .AddInt64DerivedGauge ("g" , WithLabelKeys ( " k1" , "k2" ) )
304364 gotErr := g .UpsertEntry (q .ToInt64 , metricdata .NewLabelValue ("k1v1" ))
305365 if gotErr == nil {
306366 t .Errorf ("expected error but got nil" )
@@ -311,7 +371,7 @@ func TestInt64DerivedGaugeEntry_Update(t *testing.T) {
311371 r := NewRegistry ()
312372 q := & queueInt64 {3 }
313373 q2 := & queueInt64 {5 }
314- g , _ := r .AddInt64DerivedGauge ("g" , "" , metricdata . UnitDimensionless , " k1" , "k2" )
374+ g , _ := r .AddInt64DerivedGauge ("g" , WithLabelKeys ( " k1" , "k2" ) )
315375 g .UpsertEntry (q .ToInt64 , metricdata .NewLabelValue ("k1v1" ), metricdata.LabelValue {})
316376 gotErr := g .UpsertEntry (q2 .ToInt64 , metricdata .NewLabelValue ("k1v1" ), metricdata.LabelValue {})
317377 if gotErr != nil {
@@ -334,7 +394,7 @@ func (q *queueFloat64) ToFloat64() float64 {
334394func TestFloat64DerivedGaugeEntry_Add (t * testing.T ) {
335395 r := NewRegistry ()
336396 q := & queueFloat64 {5.0 }
337- g , _ := r .AddFloat64DerivedGauge ("g" , "" , metricdata . UnitDimensionless , " k1" , "k2" )
397+ g , _ := r .AddFloat64DerivedGauge ("g" , WithLabelKeys ( " k1" , "k2" ) )
338398 err := g .UpsertEntry (q .ToFloat64 , metricdata .NewLabelValue ("k1v1" ), metricdata.LabelValue {})
339399 if err != nil {
340400 t .Errorf ("want: nil, got: %v" , err )
@@ -352,7 +412,7 @@ func TestFloat64DerivedGaugeEntry_Add(t *testing.T) {
352412
353413func TestFloat64DerivedGaugeEntry_AddWithNilObj (t * testing.T ) {
354414 r := NewRegistry ()
355- g , _ := r .AddFloat64DerivedGauge ("g" , "" , metricdata . UnitDimensionless , " k1" , "k2" )
415+ g , _ := r .AddFloat64DerivedGauge ("g" , WithLabelKeys ( " k1" , "k2" ) )
356416 gotErr := g .UpsertEntry (nil , metricdata .NewLabelValue ("k1v1" ), metricdata.LabelValue {})
357417 if gotErr == nil {
358418 t .Errorf ("expected error but got nil" )
@@ -362,7 +422,7 @@ func TestFloat64DerivedGaugeEntry_AddWithNilObj(t *testing.T) {
362422func TestFloat64DerivedGaugeEntry_AddWithInvalidLabels (t * testing.T ) {
363423 r := NewRegistry ()
364424 q := & queueFloat64 {3 }
365- g , _ := r .AddFloat64DerivedGauge ("g" , "" , metricdata . UnitDimensionless , " k1" , "k2" )
425+ g , _ := r .AddFloat64DerivedGauge ("g" , WithLabelKeys ( " k1" , "k2" ) )
366426 gotErr := g .UpsertEntry (q .ToFloat64 , metricdata .NewLabelValue ("k1v1" ))
367427 if gotErr == nil {
368428 t .Errorf ("expected error but got nil" )
@@ -373,7 +433,7 @@ func TestFloat64DerivedGaugeEntry_Update(t *testing.T) {
373433 r := NewRegistry ()
374434 q := & queueFloat64 {3.0 }
375435 q2 := & queueFloat64 {5.0 }
376- g , _ := r .AddFloat64DerivedGauge ("g" , "" , metricdata . UnitDimensionless , " k1" , "k2" )
436+ g , _ := r .AddFloat64DerivedGauge ("g" , WithLabelKeys ( " k1" , "k2" ) )
377437 g .UpsertEntry (q .ToFloat64 , metricdata .NewLabelValue ("k1v1" ), metricdata.LabelValue {})
378438 gotErr := g .UpsertEntry (q2 .ToFloat64 , metricdata .NewLabelValue ("k1v1" ), metricdata.LabelValue {})
379439 if gotErr != nil {
0 commit comments