38
38
InstrumentationLibrary ,
39
39
KeyValue ,
40
40
)
41
- from opentelemetry .proto .metrics .v1 .metrics_pb2 import (
42
- InstrumentationLibraryMetrics ,
43
- )
44
- from opentelemetry .proto .metrics .v1 .metrics_pb2 import Metric as OTLPMetric
45
- from opentelemetry .proto .metrics .v1 .metrics_pb2 import (
46
- NumberDataPoint as OTLPNumberDataPoint ,
47
- )
48
- from opentelemetry .proto .metrics .v1 .metrics_pb2 import ResourceMetrics
49
- from opentelemetry .proto .metrics .v1 .metrics_pb2 import Sum as OTLPSum
41
+ from opentelemetry .proto .metrics .v1 import metrics_pb2 as pb2
50
42
from opentelemetry .proto .resource .v1 .resource_pb2 import (
51
43
Resource as OTLPResource ,
52
44
)
53
45
from opentelemetry .sdk ._metrics .export import MetricExportResult
54
46
from opentelemetry .sdk ._metrics .point import (
55
47
AggregationTemporality ,
48
+ Gauge ,
56
49
Metric ,
57
50
Sum ,
58
51
)
@@ -136,6 +129,16 @@ def _generate_sum(name, val) -> Sum:
136
129
)
137
130
138
131
132
+ def _generate_gauge (name , val ) -> Gauge :
133
+ return _generate_metric (
134
+ name ,
135
+ Gauge (
136
+ time_unix_nano = 1641946016139533244 ,
137
+ value = val ,
138
+ ),
139
+ )
140
+
141
+
139
142
class TestOTLPMetricExporter (TestCase ):
140
143
def setUp (self ):
141
144
@@ -150,6 +153,8 @@ def setUp(self):
150
153
self .metrics = {
151
154
"sum_int" : _generate_sum ("sum_int" , 33 ),
152
155
"sum_float" : _generate_sum ("sum_float" , 2.98 ),
156
+ "gauge_int" : _generate_gauge ("gauge_int" , 9000 ),
157
+ "gauge_float" : _generate_gauge ("gauge_float" , 52.028 ),
153
158
}
154
159
155
160
def tearDown (self ):
@@ -307,7 +312,7 @@ def test_failure(self):
307
312
def test_translate_sum_int (self ):
308
313
expected = ExportMetricsServiceRequest (
309
314
resource_metrics = [
310
- ResourceMetrics (
315
+ pb2 . ResourceMetrics (
311
316
resource = OTLPResource (
312
317
attributes = [
313
318
KeyValue (key = "a" , value = AnyValue (int_value = 1 )),
@@ -317,18 +322,18 @@ def test_translate_sum_int(self):
317
322
]
318
323
),
319
324
instrumentation_library_metrics = [
320
- InstrumentationLibraryMetrics (
325
+ pb2 . InstrumentationLibraryMetrics (
321
326
instrumentation_library = InstrumentationLibrary (
322
327
name = "first_name" , version = "first_version"
323
328
),
324
329
metrics = [
325
- OTLPMetric (
330
+ pb2 . Metric (
326
331
name = "sum_int" ,
327
332
unit = "s" ,
328
333
description = "foo" ,
329
- sum = OTLPSum (
334
+ sum = pb2 . Sum (
330
335
data_points = [
331
- OTLPNumberDataPoint (
336
+ pb2 . NumberDataPoint (
332
337
attributes = [
333
338
KeyValue (
334
339
key = "a" ,
@@ -365,7 +370,7 @@ def test_translate_sum_int(self):
365
370
def test_translate_sum_float (self ):
366
371
expected = ExportMetricsServiceRequest (
367
372
resource_metrics = [
368
- ResourceMetrics (
373
+ pb2 . ResourceMetrics (
369
374
resource = OTLPResource (
370
375
attributes = [
371
376
KeyValue (key = "a" , value = AnyValue (int_value = 1 )),
@@ -375,18 +380,18 @@ def test_translate_sum_float(self):
375
380
]
376
381
),
377
382
instrumentation_library_metrics = [
378
- InstrumentationLibraryMetrics (
383
+ pb2 . InstrumentationLibraryMetrics (
379
384
instrumentation_library = InstrumentationLibrary (
380
385
name = "first_name" , version = "first_version"
381
386
),
382
387
metrics = [
383
- OTLPMetric (
388
+ pb2 . Metric (
384
389
name = "sum_float" ,
385
390
unit = "s" ,
386
391
description = "foo" ,
387
- sum = OTLPSum (
392
+ sum = pb2 . Sum (
388
393
data_points = [
389
- OTLPNumberDataPoint (
394
+ pb2 . NumberDataPoint (
390
395
attributes = [
391
396
KeyValue (
392
397
key = "a" ,
@@ -419,3 +424,113 @@ def test_translate_sum_float(self):
419
424
# pylint: disable=protected-access
420
425
actual = self .exporter ._translate_data ([self .metrics ["sum_float" ]])
421
426
self .assertEqual (expected , actual )
427
+
428
+ def test_translate_gauge_int (self ):
429
+ expected = ExportMetricsServiceRequest (
430
+ resource_metrics = [
431
+ pb2 .ResourceMetrics (
432
+ resource = OTLPResource (
433
+ attributes = [
434
+ KeyValue (key = "a" , value = AnyValue (int_value = 1 )),
435
+ KeyValue (
436
+ key = "b" , value = AnyValue (bool_value = False )
437
+ ),
438
+ ]
439
+ ),
440
+ instrumentation_library_metrics = [
441
+ pb2 .InstrumentationLibraryMetrics (
442
+ instrumentation_library = InstrumentationLibrary (
443
+ name = "first_name" , version = "first_version"
444
+ ),
445
+ metrics = [
446
+ pb2 .Metric (
447
+ name = "gauge_int" ,
448
+ unit = "s" ,
449
+ description = "foo" ,
450
+ gauge = pb2 .Gauge (
451
+ data_points = [
452
+ pb2 .NumberDataPoint (
453
+ attributes = [
454
+ KeyValue (
455
+ key = "a" ,
456
+ value = AnyValue (
457
+ int_value = 1
458
+ ),
459
+ ),
460
+ KeyValue (
461
+ key = "b" ,
462
+ value = AnyValue (
463
+ bool_value = True
464
+ ),
465
+ ),
466
+ ],
467
+ time_unix_nano = 1641946016139533244 ,
468
+ as_int = 9000 ,
469
+ )
470
+ ],
471
+ ),
472
+ )
473
+ ],
474
+ )
475
+ ],
476
+ )
477
+ ]
478
+ )
479
+ # pylint: disable=protected-access
480
+ actual = self .exporter ._translate_data ([self .metrics ["gauge_int" ]])
481
+ self .assertEqual (expected , actual )
482
+
483
+ def test_translate_gauge_float (self ):
484
+ expected = ExportMetricsServiceRequest (
485
+ resource_metrics = [
486
+ pb2 .ResourceMetrics (
487
+ resource = OTLPResource (
488
+ attributes = [
489
+ KeyValue (key = "a" , value = AnyValue (int_value = 1 )),
490
+ KeyValue (
491
+ key = "b" , value = AnyValue (bool_value = False )
492
+ ),
493
+ ]
494
+ ),
495
+ instrumentation_library_metrics = [
496
+ pb2 .InstrumentationLibraryMetrics (
497
+ instrumentation_library = InstrumentationLibrary (
498
+ name = "first_name" , version = "first_version"
499
+ ),
500
+ metrics = [
501
+ pb2 .Metric (
502
+ name = "gauge_float" ,
503
+ unit = "s" ,
504
+ description = "foo" ,
505
+ gauge = pb2 .Gauge (
506
+ data_points = [
507
+ pb2 .NumberDataPoint (
508
+ attributes = [
509
+ KeyValue (
510
+ key = "a" ,
511
+ value = AnyValue (
512
+ int_value = 1
513
+ ),
514
+ ),
515
+ KeyValue (
516
+ key = "b" ,
517
+ value = AnyValue (
518
+ bool_value = True
519
+ ),
520
+ ),
521
+ ],
522
+ time_unix_nano = 1641946016139533244 ,
523
+ as_double = 52.028 ,
524
+ )
525
+ ],
526
+ ),
527
+ )
528
+ ],
529
+ )
530
+ ],
531
+ )
532
+ ]
533
+ )
534
+ # pylint: disable=protected-access
535
+ actual = self .exporter ._translate_data ([self .metrics ["gauge_float" ]])
536
+ self .assertEqual (expected , actual )
0 commit comments