mirror of
https://github.com/prometheus/prometheus.git
synced 2025-01-12 14:27:27 -08:00
Modify parser for native histograms to allow negative values where supported
Signed-off-by: Charles Korn <charles.korn@grafana.com>
This commit is contained in:
parent
9852855084
commit
2bdb3452d1
|
@ -818,12 +818,12 @@ histogram_desc_item
|
|||
$$ = yylex.(*parser).newMap()
|
||||
$$["sum"] = $3
|
||||
}
|
||||
| COUNT_DESC COLON number
|
||||
| COUNT_DESC COLON signed_or_unsigned_number
|
||||
{
|
||||
$$ = yylex.(*parser).newMap()
|
||||
$$["count"] = $3
|
||||
}
|
||||
| ZERO_BUCKET_DESC COLON number
|
||||
| ZERO_BUCKET_DESC COLON signed_or_unsigned_number
|
||||
{
|
||||
$$ = yylex.(*parser).newMap()
|
||||
$$["z_bucket"] = $3
|
||||
|
@ -875,11 +875,11 @@ bucket_set : LEFT_BRACKET bucket_set_list SPACE RIGHT_BRACKET
|
|||
}
|
||||
;
|
||||
|
||||
bucket_set_list : bucket_set_list SPACE number
|
||||
bucket_set_list : bucket_set_list SPACE signed_or_unsigned_number
|
||||
{
|
||||
$$ = append($1, $3)
|
||||
}
|
||||
| number
|
||||
| signed_or_unsigned_number
|
||||
{
|
||||
$$ = []float64{$1}
|
||||
}
|
||||
|
|
|
@ -410,55 +410,55 @@ const yyPrivate = 57344
|
|||
const yyLast = 799
|
||||
|
||||
var yyAct = [...]int16{
|
||||
155, 334, 332, 276, 339, 152, 226, 39, 192, 44,
|
||||
291, 290, 156, 118, 82, 178, 229, 107, 106, 346,
|
||||
347, 348, 349, 109, 108, 198, 239, 199, 133, 110,
|
||||
105, 60, 245, 121, 6, 329, 325, 111, 328, 228,
|
||||
200, 201, 160, 119, 304, 267, 293, 128, 260, 160,
|
||||
151, 261, 159, 302, 358, 311, 122, 55, 89, 159,
|
||||
196, 241, 242, 259, 113, 243, 114, 54, 98, 99,
|
||||
302, 112, 101, 256, 104, 88, 230, 232, 234, 235,
|
||||
152, 334, 332, 155, 339, 226, 39, 192, 276, 44,
|
||||
291, 290, 118, 82, 178, 229, 107, 106, 346, 347,
|
||||
348, 349, 109, 108, 198, 239, 199, 156, 110, 105,
|
||||
6, 245, 200, 201, 133, 325, 111, 329, 228, 60,
|
||||
357, 293, 328, 304, 267, 160, 266, 128, 55, 151,
|
||||
302, 311, 302, 196, 340, 159, 55, 89, 54, 356,
|
||||
241, 242, 355, 113, 243, 114, 54, 98, 99, 265,
|
||||
112, 101, 256, 104, 88, 230, 232, 234, 235, 236,
|
||||
244, 246, 249, 250, 251, 252, 253, 257, 258, 105,
|
||||
333, 231, 233, 237, 238, 240, 247, 248, 103, 115,
|
||||
109, 254, 255, 324, 150, 218, 110, 264, 111, 270,
|
||||
77, 35, 7, 149, 188, 163, 322, 321, 173, 320,
|
||||
167, 170, 323, 165, 271, 166, 2, 3, 4, 5,
|
||||
263, 101, 194, 104, 180, 184, 197, 187, 186, 319,
|
||||
272, 202, 203, 204, 205, 206, 207, 208, 209, 210,
|
||||
211, 212, 213, 214, 215, 216, 195, 299, 103, 318,
|
||||
217, 36, 298, 1, 190, 219, 220, 317, 160, 160,
|
||||
316, 193, 160, 154, 182, 196, 229, 297, 159, 159,
|
||||
160, 358, 159, 268, 181, 183, 239, 260, 296, 262,
|
||||
159, 315, 245, 129, 314, 55, 225, 313, 161, 228,
|
||||
161, 161, 259, 312, 161, 54, 86, 295, 310, 288,
|
||||
289, 8, 161, 292, 162, 37, 162, 162, 49, 269,
|
||||
162, 241, 242, 309, 179, 243, 180, 127, 162, 126,
|
||||
308, 223, 294, 256, 48, 222, 230, 232, 234, 235,
|
||||
236, 244, 246, 249, 250, 251, 252, 253, 257, 258,
|
||||
160, 115, 231, 233, 237, 238, 240, 247, 248, 103,
|
||||
159, 109, 254, 255, 324, 150, 357, 110, 333, 218,
|
||||
111, 340, 310, 149, 77, 163, 7, 105, 35, 173,
|
||||
167, 170, 161, 323, 165, 356, 166, 309, 355, 194,
|
||||
2, 3, 4, 5, 308, 322, 184, 197, 162, 186,
|
||||
321, 195, 202, 203, 204, 205, 206, 207, 208, 209,
|
||||
210, 211, 212, 213, 214, 215, 216, 229, 129, 101,
|
||||
217, 104, 219, 220, 190, 266, 270, 239, 160, 121,
|
||||
268, 193, 264, 245, 55, 196, 154, 225, 159, 119,
|
||||
228, 271, 188, 160, 54, 161, 103, 117, 265, 84,
|
||||
262, 299, 122, 159, 320, 263, 298, 272, 10, 83,
|
||||
161, 162, 241, 242, 269, 187, 243, 185, 79, 288,
|
||||
289, 297, 319, 292, 256, 161, 162, 230, 232, 234,
|
||||
235, 236, 244, 246, 249, 250, 251, 252, 253, 257,
|
||||
258, 162, 294, 231, 233, 237, 238, 240, 247, 248,
|
||||
318, 317, 316, 254, 255, 180, 315, 134, 135, 136,
|
||||
137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
|
||||
147, 148, 157, 158, 169, 105, 314, 296, 300, 301,
|
||||
303, 223, 305, 313, 55, 222, 179, 168, 180, 84,
|
||||
306, 307, 177, 125, 54, 182, 295, 176, 124, 83,
|
||||
221, 312, 87, 89, 8, 181, 183, 81, 37, 86,
|
||||
175, 123, 36, 98, 99, 326, 327, 101, 102, 104,
|
||||
88, 127, 331, 126, 50, 336, 337, 338, 182, 335,
|
||||
78, 1, 342, 341, 344, 343, 49, 48, 181, 183,
|
||||
350, 351, 47, 55, 103, 352, 53, 77, 164, 56,
|
||||
46, 354, 22, 54, 59, 55, 172, 9, 9, 57,
|
||||
132, 45, 43, 130, 171, 54, 359, 42, 131, 41,
|
||||
40, 51, 191, 353, 273, 75, 85, 189, 224, 80,
|
||||
345, 18, 19, 120, 153, 20, 58, 227, 52, 116,
|
||||
221, 169, 231, 233, 237, 238, 240, 247, 248, 157,
|
||||
158, 164, 254, 255, 168, 10, 182, 300, 55, 301,
|
||||
303, 47, 305, 46, 132, 79, 181, 183, 54, 306,
|
||||
307, 45, 134, 135, 136, 137, 138, 139, 140, 141,
|
||||
142, 143, 144, 145, 146, 147, 148, 43, 59, 50,
|
||||
84, 9, 9, 121, 326, 78, 327, 130, 171, 121,
|
||||
83, 42, 131, 119, 335, 336, 337, 331, 185, 119,
|
||||
338, 261, 342, 341, 344, 343, 122, 117, 41, 177,
|
||||
350, 351, 122, 55, 176, 352, 53, 77, 40, 56,
|
||||
125, 354, 22, 54, 84, 124, 172, 175, 51, 57,
|
||||
191, 353, 273, 85, 83, 189, 359, 224, 123, 80,
|
||||
345, 120, 81, 153, 58, 75, 227, 52, 116, 0,
|
||||
0, 18, 19, 0, 0, 20, 0, 0, 0, 0,
|
||||
0, 76, 0, 0, 0, 0, 61, 62, 63, 64,
|
||||
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
|
||||
0, 0, 0, 13, 0, 0, 0, 24, 0, 30,
|
||||
0, 0, 31, 32, 55, 38, 0, 53, 77, 0,
|
||||
0, 0, 31, 32, 55, 38, 105, 53, 77, 0,
|
||||
56, 275, 0, 22, 54, 0, 0, 0, 274, 0,
|
||||
57, 0, 278, 279, 277, 284, 286, 283, 285, 280,
|
||||
281, 282, 287, 0, 0, 0, 75, 0, 0, 0,
|
||||
0, 0, 18, 19, 0, 0, 20, 0, 0, 0,
|
||||
0, 0, 76, 0, 0, 0, 0, 61, 62, 63,
|
||||
281, 282, 287, 87, 89, 0, 75, 0, 0, 0,
|
||||
0, 0, 18, 19, 98, 99, 20, 0, 101, 102,
|
||||
104, 88, 76, 0, 0, 0, 0, 61, 62, 63,
|
||||
64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
|
||||
74, 0, 0, 0, 13, 0, 0, 0, 24, 0,
|
||||
74, 0, 0, 0, 13, 103, 0, 0, 24, 0,
|
||||
30, 0, 55, 31, 32, 53, 77, 0, 56, 330,
|
||||
0, 22, 54, 0, 0, 0, 0, 0, 57, 0,
|
||||
278, 279, 277, 284, 286, 283, 285, 280, 281, 282,
|
||||
|
@ -493,51 +493,51 @@ var yyAct = [...]int16{
|
|||
}
|
||||
|
||||
var yyPact = [...]int16{
|
||||
32, 106, 569, 569, 405, 526, -1000, -1000, -1000, 105,
|
||||
28, 102, 569, 569, 405, 526, -1000, -1000, -1000, 98,
|
||||
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, -1000, -1000, -1000, -1000, 277, -1000, 297, -1000, 650,
|
||||
-1000, -1000, -1000, -1000, -1000, 342, -1000, 204, -1000, 650,
|
||||
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, -1000, 22, 95, -1000, -1000, 483, -1000, 483, 101,
|
||||
-1000, -1000, 21, 93, -1000, -1000, 483, -1000, 483, 97,
|
||||
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, -1000, -1000, -1000, -1000, -1000, -1000, 167, -1000, -1000,
|
||||
281, -1000, -1000, 309, -1000, 23, -1000, -50, -50, -50,
|
||||
-50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
|
||||
-50, -50, -50, 48, 174, 336, 95, -56, -1000, 262,
|
||||
262, 324, -1000, 631, 103, -1000, 280, -1000, -1000, 274,
|
||||
241, -1000, -1000, -1000, 187, -1000, 180, -1000, 159, 483,
|
||||
-1000, -57, -40, -1000, 483, 483, 483, 483, 483, 483,
|
||||
-1000, -1000, -1000, -1000, -1000, -1000, -1000, 307, -1000, -1000,
|
||||
338, -1000, -1000, 225, -1000, 23, -1000, -44, -44, -44,
|
||||
-44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
|
||||
-44, -44, -44, 47, 171, 259, 93, -57, -1000, 249,
|
||||
249, 324, -1000, 631, 75, -1000, 327, -1000, -1000, 222,
|
||||
130, -1000, -1000, -1000, 298, -1000, 112, -1000, 159, 483,
|
||||
-1000, -58, -48, -1000, 483, 483, 483, 483, 483, 483,
|
||||
483, 483, 483, 483, 483, 483, 483, 483, 483, -1000,
|
||||
165, -1000, -1000, 94, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, 40, 40, 269, -1000, -1000, -1000, -1000, 155, -1000,
|
||||
-1000, 41, -1000, 650, -1000, -1000, 31, -1000, 170, -1000,
|
||||
-1000, -1000, -1000, -1000, 163, -1000, -1000, -1000, -1000, -1000,
|
||||
19, 144, 140, -1000, -1000, -1000, 404, 16, 262, 262,
|
||||
262, 262, 103, 103, 251, 251, 251, 715, 696, 251,
|
||||
251, 715, 103, 103, 251, 103, 16, -1000, 24, -1000,
|
||||
-1000, -1000, 265, -1000, 189, -1000, -1000, -1000, -1000, -1000,
|
||||
39, -1000, -1000, 90, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, 36, 36, 229, -1000, -1000, -1000, -1000, 174, -1000,
|
||||
-1000, 180, -1000, 650, -1000, -1000, 301, -1000, 105, -1000,
|
||||
-1000, -1000, -1000, -1000, 44, -1000, -1000, -1000, -1000, -1000,
|
||||
18, 157, 83, -1000, -1000, -1000, 404, 15, 249, 249,
|
||||
249, 249, 75, 75, 402, 402, 402, 715, 696, 402,
|
||||
402, 715, 75, 75, 402, 75, 15, -1000, 19, -1000,
|
||||
-1000, -1000, 186, -1000, 155, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
483, -1000, -1000, -1000, -1000, -1000, -1000, 34, 34, 18,
|
||||
34, 44, 44, 110, 38, -1000, -1000, 285, 267, 260,
|
||||
240, 236, 235, 234, 206, 188, 134, 129, -1000, -1000,
|
||||
-1000, -1000, -1000, -1000, 102, -1000, -1000, -1000, 14, -1000,
|
||||
650, -1000, -1000, -1000, 34, -1000, 12, 9, 482, -1000,
|
||||
-1000, -1000, 51, 81, 40, 40, 40, 97, 97, 51,
|
||||
97, 51, -73, -1000, -1000, -1000, -1000, -1000, 34, 34,
|
||||
-1000, -1000, -1000, 34, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
40, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, -1000, -1000, 104, -1000, 33, -1000, -1000, -1000, -1000,
|
||||
483, -1000, -1000, -1000, -1000, -1000, -1000, 31, 31, 17,
|
||||
31, 37, 37, 206, 34, -1000, -1000, 197, 191, 188,
|
||||
185, 164, 161, 153, 133, 113, 111, 110, -1000, -1000,
|
||||
-1000, -1000, -1000, -1000, 101, -1000, -1000, -1000, 13, -1000,
|
||||
650, -1000, -1000, -1000, 31, -1000, 16, 11, 482, -1000,
|
||||
-1000, -1000, 33, 163, 163, 163, 36, 40, 40, 33,
|
||||
40, 33, -74, -1000, -1000, -1000, -1000, -1000, 31, 31,
|
||||
-1000, -1000, -1000, 31, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
163, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
|
||||
-1000, -1000, -1000, 38, -1000, 160, -1000, -1000, -1000, -1000,
|
||||
}
|
||||
|
||||
var yyPgo = [...]int16{
|
||||
0, 379, 13, 378, 6, 15, 377, 344, 376, 374,
|
||||
373, 370, 198, 294, 369, 14, 368, 10, 11, 367,
|
||||
366, 8, 364, 3, 4, 363, 2, 1, 0, 362,
|
||||
12, 5, 361, 360, 18, 158, 359, 358, 7, 357,
|
||||
354, 17, 353, 31, 352, 9, 351, 350, 340, 332,
|
||||
327, 326, 314, 321, 302,
|
||||
0, 368, 12, 367, 5, 14, 366, 298, 364, 363,
|
||||
361, 360, 265, 211, 359, 13, 357, 10, 11, 355,
|
||||
353, 7, 352, 8, 4, 351, 2, 1, 3, 350,
|
||||
27, 0, 348, 338, 17, 193, 328, 312, 6, 311,
|
||||
308, 16, 307, 39, 297, 9, 281, 274, 273, 271,
|
||||
234, 218, 299, 163, 161,
|
||||
}
|
||||
|
||||
var yyR1 = [...]int8{
|
||||
|
@ -630,9 +630,9 @@ var yyChk = [...]int16{
|
|||
-38, -27, 19, -27, 26, -27, -21, -21, 24, 17,
|
||||
2, 17, 6, 6, 6, 6, 6, 6, 6, 6,
|
||||
6, 6, 6, 21, 2, 22, -4, -27, 26, 26,
|
||||
17, -23, -26, 57, -27, -31, -28, -28, -28, -24,
|
||||
17, -23, -26, 57, -27, -31, -31, -31, -28, -24,
|
||||
14, -24, -26, -24, -26, -11, 92, 93, 94, 95,
|
||||
-27, -27, -27, -25, -28, 24, 21, 2, 21, -28,
|
||||
-27, -27, -27, -25, -31, 24, 21, 2, 21, -31,
|
||||
}
|
||||
|
||||
var yyDef = [...]int16{
|
||||
|
|
|
@ -610,6 +610,9 @@ func lexBuckets(l *Lexer) stateFn {
|
|||
case isSpace(r):
|
||||
l.emit(SPACE)
|
||||
return lexSpace
|
||||
case r == '-':
|
||||
l.emit(SUB)
|
||||
return lexNumber
|
||||
case isDigit(r):
|
||||
l.backup()
|
||||
return lexNumber
|
||||
|
|
|
@ -4084,17 +4084,17 @@ func TestParseHistogramSeries(t *testing.T) {
|
|||
},
|
||||
{
|
||||
name: "all properties used",
|
||||
input: `{} {{schema:1 sum:-0.3 count:3.1 z_bucket:7.1 z_bucket_w:0.05 buckets:[5.1 10 7] offset:-3 n_buckets:[4.1 5] n_offset:-5 counter_reset_hint:gauge}}`,
|
||||
input: `{} {{schema:1 sum:0.3 count:3.1 z_bucket:7.1 z_bucket_w:0.05 buckets:[5.1 10 7] offset:3 n_buckets:[4.1 5] n_offset:5 counter_reset_hint:gauge}}`,
|
||||
expected: []histogram.FloatHistogram{{
|
||||
Schema: 1,
|
||||
Sum: -0.3,
|
||||
Sum: 0.3,
|
||||
Count: 3.1,
|
||||
ZeroCount: 7.1,
|
||||
ZeroThreshold: 0.05,
|
||||
PositiveBuckets: []float64{5.1, 10, 7},
|
||||
PositiveSpans: []histogram.Span{{Offset: -3, Length: 3}},
|
||||
PositiveSpans: []histogram.Span{{Offset: 3, Length: 3}},
|
||||
NegativeBuckets: []float64{4.1, 5},
|
||||
NegativeSpans: []histogram.Span{{Offset: -5, Length: 2}},
|
||||
NegativeSpans: []histogram.Span{{Offset: 5, Length: 2}},
|
||||
CounterResetHint: histogram.GaugeType,
|
||||
}},
|
||||
},
|
||||
|
@ -4114,6 +4114,22 @@ func TestParseHistogramSeries(t *testing.T) {
|
|||
CounterResetHint: histogram.GaugeType,
|
||||
}},
|
||||
},
|
||||
{
|
||||
name: "all properties used, with negative values where supported",
|
||||
input: `{} {{schema:1 sum:-0.3 count:-3.1 z_bucket:-7.1 z_bucket_w:0.05 buckets:[-5.1 -10 -7] offset:-3 n_buckets:[-4.1 -5] n_offset:-5 counter_reset_hint:gauge}}`,
|
||||
expected: []histogram.FloatHistogram{{
|
||||
Schema: 1,
|
||||
Sum: -0.3,
|
||||
Count: -3.1,
|
||||
ZeroCount: -7.1,
|
||||
ZeroThreshold: 0.05,
|
||||
PositiveBuckets: []float64{-5.1, -10, -7},
|
||||
PositiveSpans: []histogram.Span{{Offset: -3, Length: 3}},
|
||||
NegativeBuckets: []float64{-4.1, -5},
|
||||
NegativeSpans: []histogram.Span{{Offset: -5, Length: 2}},
|
||||
CounterResetHint: histogram.GaugeType,
|
||||
}},
|
||||
},
|
||||
{
|
||||
name: "static series",
|
||||
input: `{} {{buckets:[5 10 7] schema:1}}x2`,
|
||||
|
|
Loading…
Reference in a new issue