@@ -216,6 +216,16 @@ def test_counter_exemplars(self):
216
216
# HELP a help
217
217
a_total 0 123 # {a="b"} 0.5
218
218
# EOF
219
+ """ )
220
+ cfm = CounterMetricFamily ("a" , "help" )
221
+ cfm .add_sample ("a_total" , {}, 0.0 , Timestamp (123 , 0 ), Exemplar ({"a" : "b" }, 0.5 ))
222
+ self .assertEqual ([cfm ], list (families ))
223
+
224
+ def test_counter_exemplars_empty_brackets (self ):
225
+ families = text_string_to_metric_families ("""# TYPE a counter
226
+ # HELP a help
227
+ a_total{} 0 123 # {a="b"} 0.5
228
+ # EOF
219
229
""" )
220
230
cfm = CounterMetricFamily ("a" , "help" )
221
231
cfm .add_sample ("a_total" , {}, 0.0 , Timestamp (123 , 0 ), Exemplar ({"a" : "b" }, 0.5 ))
@@ -409,11 +419,15 @@ def test_escaping(self):
409
419
# HELP a he\\ n\\ \\ l\\ tp
410
420
a_total{foo="b\\ "a\\ nr"} 1
411
421
a_total{foo="b\\ \\ a\\ z"} 2
422
+ a_total{foo="b\\ "a\\ nr # "} 3
423
+ a_total{foo="b\\ \\ a\\ z # "} 4
412
424
# EOF
413
425
""" )
414
426
metric_family = CounterMetricFamily ("a" , "he\n \\ l\\ tp" , labels = ["foo" ])
415
427
metric_family .add_metric (["b\" a\n r" ], 1 )
416
428
metric_family .add_metric (["b\\ a\\ z" ], 2 )
429
+ metric_family .add_metric (["b\" a\n r # " ], 3 )
430
+ metric_family .add_metric (["b\\ a\\ z # " ], 4 )
417
431
self .assertEqual ([metric_family ], list (families ))
418
432
419
433
def test_null_byte (self ):
@@ -591,6 +605,10 @@ def test_roundtrip(self):
591
605
foo_count 17.0
592
606
foo_sum 324789.3
593
607
foo_created 1.520430000123e+09
608
+ # HELP bar histogram Testing with labels
609
+ # TYPE bar histogram
610
+ bar_bucket{a="b",le="+Inf"} 0.0
611
+ bar_bucket{a="c",le="+Inf"} 0.0
594
612
# EOF
595
613
"""
596
614
families = list (text_string_to_metric_families (text ))
@@ -622,15 +640,21 @@ def test_invalid_input(self):
622
640
('a{a""} 1\n # EOF\n ' ),
623
641
('a{a=} 1\n # EOF\n ' ),
624
642
('a{a="} 1\n # EOF\n ' ),
643
+ ('a{a="} 1\n # EOF\n ' ),
625
644
# Missing or extra commas.
626
645
('a{a="1"b="2"} 1\n # EOF\n ' ),
627
646
('a{a="1",,b="2"} 1\n # EOF\n ' ),
628
647
('a{a="1",b="2",} 1\n # EOF\n ' ),
629
648
# Invalid labels.
630
649
('a{1="1"} 1\n # EOF\n ' ),
650
+ ('a{1="1"}1\n # EOF\n ' ),
631
651
('a{a="1",a="1"} 1\n # EOF\n ' ),
652
+ ('a{a="1"b} 1\n # EOF\n ' ),
632
653
('a{1=" # "} 1\n # EOF\n ' ),
633
654
('a{a=" # ",a=" # "} 1\n # EOF\n ' ),
655
+ ('a{a=" # "}1\n # EOF\n ' ),
656
+ ('a{a=" # ",b=}1\n # EOF\n ' ),
657
+ ('a{a=" # "b}1\n # EOF\n ' ),
634
658
# Missing value.
635
659
('a\n # EOF\n ' ),
636
660
('a \n # EOF\n ' ),
@@ -667,6 +691,8 @@ def test_invalid_input(self):
667
691
('# HELP a x\n # HELP a x\n # EOF\n ' ),
668
692
('# TYPE a untyped\n # TYPE a untyped\n # EOF\n ' ),
669
693
('# UNIT a_s s\n # UNIT a_s s\n # EOF\n ' ),
694
+ # Bad metadata.
695
+ ('# FOO a x\n # EOF\n ' ),
670
696
# Bad metric names.
671
697
('0a 1\n # EOF\n ' ),
672
698
('a.b 1\n # EOF\n ' ),
@@ -706,6 +732,10 @@ def test_invalid_input(self):
706
732
'{a="23456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"} 1 1\n # EOF\n ' ),
707
733
('# TYPE a histogram\n a_bucket{le="+Inf"} 1 # {} 0x1p-3\n # EOF\n ' ),
708
734
('# TYPE a histogram\n a_bucket{le="+Inf"} 1 # {} 1 0x1p-3\n # EOF\n ' ),
735
+ ('# TYPE a counter\n a_total 1 1 # {id="a"} \n # EOF\n ' ),
736
+ ('# TYPE a counter\n a_total 1 1 # id="a"} 1\n # EOF\n ' ),
737
+ ('# TYPE a counter\n a_total 1 1 #id=" # "} 1\n # EOF\n ' ),
738
+ ('# TYPE a counter\n a_total 1 1 id=" # "} 1\n # EOF\n ' ),
709
739
# Exemplars on unallowed samples.
710
740
('# TYPE a histogram\n a_sum 1 # {a="b"} 0.5\n # EOF\n ' ),
711
741
('# TYPE a gaugehistogram\n a_sum 1 # {a="b"} 0.5\n # EOF\n ' ),
@@ -750,13 +780,18 @@ def test_invalid_input(self):
750
780
('# TYPE a summary\n a_sum -1\n # EOF\n ' ),
751
781
('# TYPE a summary\n a_count -1\n # EOF\n ' ),
752
782
('# TYPE a summary\n a{quantile="0.5"} -1\n # EOF\n ' ),
783
+ # Bad info and stateset values.
784
+ ('# TYPE a info\n a_info{foo="bar"} 2\n # EOF\n ' ),
785
+ ('# TYPE a stateset\n a{a="bar"} 2\n # EOF\n ' ),
753
786
# Bad histograms.
754
787
('# TYPE a histogram\n a_sum 1\n # EOF\n ' ),
755
- ('# TYPE a histogram\n a_bucket{le="+Inf"} 0\n #a_sum 0\n # EOF\n ' ),
756
- ('# TYPE a histogram\n a_bucket{le="+Inf"} 0\n #a_count 0\n # EOF\n ' ),
788
+ ('# TYPE a histogram\n a_bucket{le="+Inf"} 0\n a_sum 0\n # EOF\n ' ),
789
+ ('# TYPE a histogram\n a_bucket{le="+Inf"} 0\n a_count 0\n # EOF\n ' ),
790
+ ('# TYPE a histogram\n a_bucket{le="-1"} 0\n a_bucket{le="+Inf"} 0\n a_sum 0\n a_count 0\n # EOF\n ' ),
757
791
('# TYPE a gaugehistogram\n a_gsum 1\n # EOF\n ' ),
758
792
('# TYPE a gaugehistogram\n a_bucket{le="+Inf"} 0\n a_gsum 0\n # EOF\n ' ),
759
793
('# TYPE a gaugehistogram\n a_bucket{le="+Inf"} 0\n a_gcount 0\n # EOF\n ' ),
794
+ ('# TYPE a gaugehistogram\n a_bucket{le="+Inf"} 1\n a_gsum -1\n a_gcount 1\n # EOF\n ' ),
760
795
('# TYPE a histogram\n a_count 1\n a_bucket{le="+Inf"} 0\n # EOF\n ' ),
761
796
('# TYPE a histogram\n a_bucket{le="+Inf"} 0\n a_count 1\n # EOF\n ' ),
762
797
('# TYPE a histogram\n a_bucket{le="+INF"} 0\n # EOF\n ' ),
0 commit comments