promqltest: add support for setting counter reset hint on histogram samples (#14537)

* promqltest: add support for setting counter reset hint on histogram samples

Signed-off-by: Charles Korn <charles.korn@grafana.com>
pull/14538/head
Charles Korn 4 months ago committed by GitHub
parent 6816149852
commit 7fab72a280
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -92,7 +92,7 @@ series: <string>
# #
# Native histogram notation: # Native histogram notation:
# Native histograms can be used instead of floating point numbers using the following notation: # Native histograms can be used instead of floating point numbers using the following notation:
# {{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}} # {{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}}
# Native histograms support the same expanding notation as floating point numbers, i.e. 'axn', 'a+bxn' and 'a-bxn'. # Native histograms support the same expanding notation as floating point numbers, i.e. 'axn', 'a+bxn' and 'a-bxn'.
# All properties are optional and default to 0. The order is not important. The following properties are supported: # All properties are optional and default to 0. The order is not important. The following properties are supported:
# - schema (int): # - schema (int):
@ -119,6 +119,8 @@ series: <string>
# Observation counts in negative buckets. Each represents an absolute count. # Observation counts in negative buckets. Each represents an absolute count.
# - n_offset (int): # - n_offset (int):
# The starting index of the first entry in the negative buckets. # The starting index of the first entry in the negative buckets.
# - counter_reset_hint (one of 'unknown', 'reset', 'not_reset' or 'gauge')
# The counter reset hint associated with this histogram. Defaults to 'unknown' if not set.
values: <string> values: <string>
``` ```

@ -84,6 +84,7 @@ NEGATIVE_BUCKETS_DESC
ZERO_BUCKET_DESC ZERO_BUCKET_DESC
ZERO_BUCKET_WIDTH_DESC ZERO_BUCKET_WIDTH_DESC
CUSTOM_VALUES_DESC CUSTOM_VALUES_DESC
COUNTER_RESET_HINT_DESC
%token histogramDescEnd %token histogramDescEnd
// Operators. // Operators.
@ -149,6 +150,14 @@ START
END END
%token preprocessorEnd %token preprocessorEnd
// Counter reset hints.
%token counterResetHintsStart
%token <item>
UNKNOWN_COUNTER_RESET
COUNTER_RESET
NOT_COUNTER_RESET
GAUGE_TYPE
%token counterResetHintsEnd
// Start symbols for the generated parser. // Start symbols for the generated parser.
%token startSymbolsStart %token startSymbolsStart
@ -163,7 +172,7 @@ START_METRIC_SELECTOR
// Type definitions for grammar rules. // Type definitions for grammar rules.
%type <matchers> label_match_list %type <matchers> label_match_list
%type <matcher> label_matcher %type <matcher> label_matcher
%type <item> aggregate_op grouping_label match_op maybe_label metric_identifier unary_op at_modifier_preprocessors string_identifier %type <item> aggregate_op grouping_label match_op maybe_label metric_identifier unary_op at_modifier_preprocessors string_identifier counter_reset_hint
%type <labels> label_set metric %type <labels> label_set metric
%type <lblList> label_set_list %type <lblList> label_set_list
%type <label> label_set_item %type <label> label_set_item
@ -839,6 +848,11 @@ histogram_desc_item
$$ = yylex.(*parser).newMap() $$ = yylex.(*parser).newMap()
$$["n_offset"] = $3 $$["n_offset"] = $3
} }
| COUNTER_RESET_HINT_DESC COLON counter_reset_hint
{
$$ = yylex.(*parser).newMap()
$$["counter_reset_hint"] = $3
}
; ;
bucket_set : LEFT_BRACKET bucket_set_list SPACE RIGHT_BRACKET bucket_set : LEFT_BRACKET bucket_set_list SPACE RIGHT_BRACKET
@ -862,6 +876,7 @@ bucket_set_list : bucket_set_list SPACE number
| bucket_set_list error | bucket_set_list error
; ;
counter_reset_hint : UNKNOWN_COUNTER_RESET | COUNTER_RESET | NOT_COUNTER_RESET | GAUGE_TYPE;
/* /*
* Keyword lists. * Keyword lists.

@ -67,64 +67,71 @@ const NEGATIVE_BUCKETS_DESC = 57376
const ZERO_BUCKET_DESC = 57377 const ZERO_BUCKET_DESC = 57377
const ZERO_BUCKET_WIDTH_DESC = 57378 const ZERO_BUCKET_WIDTH_DESC = 57378
const CUSTOM_VALUES_DESC = 57379 const CUSTOM_VALUES_DESC = 57379
const histogramDescEnd = 57380 const COUNTER_RESET_HINT_DESC = 57380
const operatorsStart = 57381 const histogramDescEnd = 57381
const ADD = 57382 const operatorsStart = 57382
const DIV = 57383 const ADD = 57383
const EQLC = 57384 const DIV = 57384
const EQL_REGEX = 57385 const EQLC = 57385
const GTE = 57386 const EQL_REGEX = 57386
const GTR = 57387 const GTE = 57387
const LAND = 57388 const GTR = 57388
const LOR = 57389 const LAND = 57389
const LSS = 57390 const LOR = 57390
const LTE = 57391 const LSS = 57391
const LUNLESS = 57392 const LTE = 57392
const MOD = 57393 const LUNLESS = 57393
const MUL = 57394 const MOD = 57394
const NEQ = 57395 const MUL = 57395
const NEQ_REGEX = 57396 const NEQ = 57396
const POW = 57397 const NEQ_REGEX = 57397
const SUB = 57398 const POW = 57398
const AT = 57399 const SUB = 57399
const ATAN2 = 57400 const AT = 57400
const operatorsEnd = 57401 const ATAN2 = 57401
const aggregatorsStart = 57402 const operatorsEnd = 57402
const AVG = 57403 const aggregatorsStart = 57403
const BOTTOMK = 57404 const AVG = 57404
const COUNT = 57405 const BOTTOMK = 57405
const COUNT_VALUES = 57406 const COUNT = 57406
const GROUP = 57407 const COUNT_VALUES = 57407
const MAX = 57408 const GROUP = 57408
const MIN = 57409 const MAX = 57409
const QUANTILE = 57410 const MIN = 57410
const STDDEV = 57411 const QUANTILE = 57411
const STDVAR = 57412 const STDDEV = 57412
const SUM = 57413 const STDVAR = 57413
const TOPK = 57414 const SUM = 57414
const LIMITK = 57415 const TOPK = 57415
const LIMIT_RATIO = 57416 const LIMITK = 57416
const aggregatorsEnd = 57417 const LIMIT_RATIO = 57417
const keywordsStart = 57418 const aggregatorsEnd = 57418
const BOOL = 57419 const keywordsStart = 57419
const BY = 57420 const BOOL = 57420
const GROUP_LEFT = 57421 const BY = 57421
const GROUP_RIGHT = 57422 const GROUP_LEFT = 57422
const IGNORING = 57423 const GROUP_RIGHT = 57423
const OFFSET = 57424 const IGNORING = 57424
const ON = 57425 const OFFSET = 57425
const WITHOUT = 57426 const ON = 57426
const keywordsEnd = 57427 const WITHOUT = 57427
const preprocessorStart = 57428 const keywordsEnd = 57428
const START = 57429 const preprocessorStart = 57429
const END = 57430 const START = 57430
const preprocessorEnd = 57431 const END = 57431
const startSymbolsStart = 57432 const preprocessorEnd = 57432
const START_METRIC = 57433 const counterResetHintsStart = 57433
const START_SERIES_DESCRIPTION = 57434 const UNKNOWN_COUNTER_RESET = 57434
const START_EXPRESSION = 57435 const COUNTER_RESET = 57435
const START_METRIC_SELECTOR = 57436 const NOT_COUNTER_RESET = 57436
const startSymbolsEnd = 57437 const GAUGE_TYPE = 57437
const counterResetHintsEnd = 57438
const startSymbolsStart = 57439
const START_METRIC = 57440
const START_SERIES_DESCRIPTION = 57441
const START_EXPRESSION = 57442
const START_METRIC_SELECTOR = 57443
const startSymbolsEnd = 57444
var yyToknames = [...]string{ var yyToknames = [...]string{
"$end", "$end",
@ -164,6 +171,7 @@ var yyToknames = [...]string{
"ZERO_BUCKET_DESC", "ZERO_BUCKET_DESC",
"ZERO_BUCKET_WIDTH_DESC", "ZERO_BUCKET_WIDTH_DESC",
"CUSTOM_VALUES_DESC", "CUSTOM_VALUES_DESC",
"COUNTER_RESET_HINT_DESC",
"histogramDescEnd", "histogramDescEnd",
"operatorsStart", "operatorsStart",
"ADD", "ADD",
@ -216,6 +224,12 @@ var yyToknames = [...]string{
"START", "START",
"END", "END",
"preprocessorEnd", "preprocessorEnd",
"counterResetHintsStart",
"UNKNOWN_COUNTER_RESET",
"COUNTER_RESET",
"NOT_COUNTER_RESET",
"GAUGE_TYPE",
"counterResetHintsEnd",
"startSymbolsStart", "startSymbolsStart",
"START_METRIC", "START_METRIC",
"START_SERIES_DESCRIPTION", "START_SERIES_DESCRIPTION",
@ -240,308 +254,313 @@ var yyExca = [...]int16{
24, 137, 24, 137,
-2, 0, -2, 0,
-1, 61, -1, 61,
2, 175, 2, 180,
15, 175, 15, 180,
78, 175, 79, 180,
84, 175, 85, 180,
-2, 101, -2, 101,
-1, 62, -1, 62,
2, 176, 2, 181,
15, 176, 15, 181,
78, 176, 79, 181,
84, 176, 85, 181,
-2, 102, -2, 102,
-1, 63, -1, 63,
2, 177, 2, 182,
15, 177, 15, 182,
78, 177, 79, 182,
84, 177, 85, 182,
-2, 104, -2, 104,
-1, 64, -1, 64,
2, 178, 2, 183,
15, 178, 15, 183,
78, 178, 79, 183,
84, 178, 85, 183,
-2, 105, -2, 105,
-1, 65, -1, 65,
2, 179, 2, 184,
15, 179, 15, 184,
78, 179, 79, 184,
84, 179, 85, 184,
-2, 106, -2, 106,
-1, 66, -1, 66,
2, 180, 2, 185,
15, 180, 15, 185,
78, 180, 79, 185,
84, 180, 85, 185,
-2, 111, -2, 111,
-1, 67, -1, 67,
2, 181, 2, 186,
15, 181, 15, 186,
78, 181, 79, 186,
84, 181, 85, 186,
-2, 113, -2, 113,
-1, 68, -1, 68,
2, 182, 2, 187,
15, 182, 15, 187,
78, 182, 79, 187,
84, 182, 85, 187,
-2, 115, -2, 115,
-1, 69, -1, 69,
2, 183, 2, 188,
15, 183, 15, 188,
78, 183, 79, 188,
84, 183, 85, 188,
-2, 116, -2, 116,
-1, 70, -1, 70,
2, 184, 2, 189,
15, 184, 15, 189,
78, 184, 79, 189,
84, 184, 85, 189,
-2, 117, -2, 117,
-1, 71, -1, 71,
2, 185, 2, 190,
15, 185, 15, 190,
78, 185, 79, 190,
84, 185, 85, 190,
-2, 118, -2, 118,
-1, 72, -1, 72,
2, 186, 2, 191,
15, 186, 15, 191,
78, 186, 79, 191,
84, 186, 85, 191,
-2, 119, -2, 119,
-1, 73, -1, 73,
2, 187, 2, 192,
15, 187, 15, 192,
78, 187, 79, 192,
84, 187, 85, 192,
-2, 123, -2, 123,
-1, 74, -1, 74,
2, 188, 2, 193,
15, 188, 15, 193,
78, 188, 79, 193,
84, 188, 85, 193,
-2, 124, -2, 124,
-1, 200, -1, 200,
9, 237, 9, 242,
12, 237, 12, 242,
13, 237, 13, 242,
18, 237, 18, 242,
19, 237, 19, 242,
25, 237, 25, 242,
40, 237, 41, 242,
46, 237, 47, 242,
47, 237, 48, 242,
50, 237, 51, 242,
56, 237, 57, 242,
61, 237, 62, 242,
62, 237, 63, 242,
63, 237, 64, 242,
64, 237, 65, 242,
65, 237, 66, 242,
66, 237, 67, 242,
67, 237, 68, 242,
68, 237, 69, 242,
69, 237, 70, 242,
70, 237, 71, 242,
71, 237, 72, 242,
72, 237, 73, 242,
73, 237, 74, 242,
74, 237, 75, 242,
78, 237, 79, 242,
82, 237, 83, 242,
84, 237, 85, 242,
87, 237, 88, 242,
88, 237, 89, 242,
-2, 0, -2, 0,
-1, 201, -1, 201,
9, 237, 9, 242,
12, 237, 12, 242,
13, 237, 13, 242,
18, 237, 18, 242,
19, 237, 19, 242,
25, 237, 25, 242,
40, 237, 41, 242,
46, 237, 47, 242,
47, 237, 48, 242,
50, 237, 51, 242,
56, 237, 57, 242,
61, 237, 62, 242,
62, 237, 63, 242,
63, 237, 64, 242,
64, 237, 65, 242,
65, 237, 66, 242,
66, 237, 67, 242,
67, 237, 68, 242,
68, 237, 69, 242,
69, 237, 70, 242,
70, 237, 71, 242,
71, 237, 72, 242,
72, 237, 73, 242,
73, 237, 74, 242,
74, 237, 75, 242,
78, 237, 79, 242,
82, 237, 83, 242,
84, 237, 85, 242,
87, 237, 88, 242,
88, 237, 89, 242,
-2, 0, -2, 0,
} }
const yyPrivate = 57344 const yyPrivate = 57344
const yyLast = 728 const yyLast = 763
var yyAct = [...]int16{ var yyAct = [...]int16{
155, 331, 329, 275, 336, 152, 226, 39, 192, 44, 155, 333, 331, 275, 338, 152, 226, 39, 192, 44,
289, 288, 156, 118, 82, 178, 55, 106, 6, 53, 290, 289, 156, 118, 82, 178, 106, 55, 109, 105,
77, 109, 56, 133, 108, 22, 54, 110, 107, 172, 53, 77, 133, 56, 110, 108, 22, 54, 356, 6,
300, 198, 57, 199, 200, 201, 60, 111, 326, 151, 172, 107, 60, 57, 345, 346, 347, 348, 111, 198,
325, 302, 321, 308, 266, 154, 55, 75, 128, 105, 328, 199, 200, 201, 327, 154, 303, 355, 266, 75,
291, 300, 160, 18, 19, 309, 54, 20, 307, 218, 354, 151, 160, 128, 259, 18, 19, 160, 55, 20,
105, 320, 159, 76, 113, 306, 114, 330, 61, 62, 301, 101, 159, 104, 113, 76, 114, 159, 54, 258,
63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
73, 74, 112, 161, 180, 13, 87, 89, 265, 24, 71, 72, 73, 74, 161, 112, 269, 13, 103, 161,
101, 30, 104, 150, 31, 32, 115, 98, 99, 162, 292, 24, 115, 30, 309, 265, 31, 32, 332, 267,
109, 101, 102, 104, 88, 349, 110, 2, 3, 4, 162, 270, 109, 223, 323, 162, 150, 222, 110, 308,
5, 264, 196, 149, 111, 163, 160, 103, 337, 173, 301, 263, 310, 149, 161, 163, 307, 271, 264, 173,
167, 170, 84, 182, 348, 166, 159, 347, 103, 194, 167, 170, 221, 322, 166, 2, 3, 4, 5, 194,
157, 158, 83, 181, 183, 165, 184, 197, 77, 186, 162, 157, 158, 179, 262, 180, 184, 197, 165, 186,
185, 195, 202, 203, 204, 205, 206, 207, 208, 209, 196, 195, 202, 203, 204, 205, 206, 207, 208, 209,
210, 211, 212, 213, 214, 215, 216, 129, 269, 263, 210, 211, 212, 213, 214, 215, 216, 129, 188, 121,
217, 160, 219, 220, 55, 38, 35, 53, 77, 267, 217, 121, 219, 220, 55, 38, 218, 53, 77, 119,
56, 159, 270, 22, 54, 121, 297, 188, 7, 259, 56, 119, 339, 22, 54, 182, 169, 260, 298, 117,
57, 296, 262, 161, 319, 119, 318, 317, 271, 179, 57, 187, 122, 297, 122, 181, 183, 160, 295, 168,
261, 180, 161, 260, 258, 75, 295, 84, 122, 162, 261, 180, 111, 77, 164, 55, 75, 159, 296, 357,
187, 18, 19, 316, 268, 20, 315, 83, 162, 286, 7, 55, 18, 19, 268, 54, 20, 294, 35, 287,
287, 76, 314, 290, 313, 81, 61, 62, 63, 64, 288, 54, 76, 291, 321, 320, 319, 61, 62, 63,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
182, 86, 292, 13, 55, 10, 312, 24, 311, 30,
181, 183, 31, 32, 54, 79, 134, 135, 136, 137,
138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
148, 310, 127, 36, 126, 1, 121, 298, 299, 301,
164, 303, 49, 48, 190, 294, 119, 55, 160, 304,
305, 193, 55, 160, 117, 196, 223, 54, 159, 122,
222, 228, 54, 159, 293, 350, 50, 47, 46, 169,
132, 238, 78, 323, 324, 221, 45, 244, 43, 161,
328, 322, 168, 333, 334, 335, 130, 332, 171, 177,
339, 338, 341, 340, 176, 162, 125, 342, 343, 42,
59, 124, 344, 9, 9, 240, 241, 175, 346, 242,
131, 8, 41, 40, 123, 37, 51, 255, 351, 191,
229, 231, 233, 234, 235, 243, 245, 248, 249, 250,
251, 252, 256, 257, 345, 272, 230, 232, 236, 237,
239, 246, 247, 85, 189, 55, 253, 254, 53, 77,
224, 56, 80, 120, 22, 54, 153, 58, 227, 52,
116, 57, 0, 0, 0, 0, 0, 0, 0, 0,
0, 228, 0, 0, 0, 0, 75, 0, 0, 0,
0, 238, 18, 19, 0, 0, 20, 244, 0, 0,
0, 225, 76, 0, 0, 0, 0, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
74, 0, 0, 0, 13, 240, 241, 0, 24, 242, 74, 182, 293, 318, 13, 160, 317, 316, 24, 315,
30, 0, 0, 31, 32, 0, 0, 255, 105, 0, 30, 181, 183, 31, 32, 159, 134, 135, 136, 137,
229, 231, 233, 234, 235, 243, 245, 248, 249, 250, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
251, 252, 256, 257, 0, 0, 230, 232, 236, 237, 148, 314, 313, 55, 105, 84, 84, 299, 300, 302,
239, 246, 247, 17, 77, 89, 253, 254, 0, 22, 86, 304, 177, 54, 190, 83, 83, 176, 160, 305,
0, 0, 327, 0, 0, 98, 99, 0, 0, 101, 306, 193, 125, 185, 81, 196, 10, 124, 159, 312,
0, 104, 88, 277, 278, 276, 283, 285, 282, 284, 175, 311, 89, 50, 8, 36, 79, 228, 37, 78,
279, 280, 281, 17, 35, 0, 0, 18, 19, 22, 123, 1, 98, 99, 325, 326, 101, 238, 104, 88,
0, 20, 0, 0, 0, 0, 103, 0, 0, 0, 161, 330, 49, 244, 335, 336, 337, 324, 334, 48,
0, 0, 11, 12, 14, 15, 16, 21, 23, 25, 47, 341, 340, 343, 342, 127, 162, 126, 59, 349,
26, 27, 28, 29, 33, 34, 0, 18, 19, 13, 350, 9, 9, 103, 351, 46, 132, 45, 43, 130,
0, 20, 0, 24, 0, 30, 0, 0, 31, 32, 353, 171, 240, 241, 42, 131, 242, 41, 40, 51,
0, 0, 11, 12, 14, 15, 16, 21, 23, 25, 191, 352, 272, 85, 255, 358, 189, 229, 231, 233,
26, 27, 28, 29, 33, 34, 105, 0, 0, 13, 234, 235, 243, 245, 248, 249, 250, 251, 252, 256,
0, 0, 0, 24, 174, 30, 0, 0, 31, 32, 257, 224, 80, 230, 232, 236, 237, 239, 246, 247,
0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 344, 120, 55, 253, 254, 53, 77, 153, 56, 274,
0, 0, 87, 89, 90, 0, 91, 92, 93, 94, 58, 22, 54, 227, 52, 116, 273, 0, 57, 0,
95, 96, 97, 98, 99, 100, 0, 101, 102, 104, 277, 278, 276, 283, 285, 282, 284, 279, 280, 281,
88, 87, 89, 90, 0, 91, 92, 93, 94, 95, 286, 0, 0, 0, 75, 0, 0, 0, 0, 0,
96, 97, 98, 99, 100, 274, 101, 102, 104, 88, 18, 19, 0, 0, 20, 0, 0, 0, 0, 0,
105, 0, 273, 0, 103, 0, 277, 278, 276, 283, 76, 0, 0, 0, 0, 61, 62, 63, 64, 65,
285, 282, 284, 279, 280, 281, 0, 0, 0, 105, 66, 67, 68, 69, 70, 71, 72, 73, 74, 228,
0, 0, 0, 103, 0, 0, 87, 89, 90, 0, 0, 0, 13, 0, 0, 0, 24, 0, 30, 238,
91, 92, 93, 0, 95, 96, 97, 98, 99, 100, 329, 31, 32, 0, 0, 244, 0, 0, 0, 225,
0, 277, 278, 276, 283, 285, 282, 284, 279, 280,
281, 286, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 240, 241, 0, 0, 242, 0,
0, 0, 17, 77, 0, 105, 255, 0, 22, 229,
231, 233, 234, 235, 243, 245, 248, 249, 250, 251,
252, 256, 257, 0, 0, 230, 232, 236, 237, 239,
246, 247, 87, 89, 0, 253, 254, 18, 19, 0,
0, 20, 0, 98, 99, 17, 35, 101, 102, 104,
88, 22, 11, 12, 14, 15, 16, 21, 23, 25,
26, 27, 28, 29, 33, 34, 0, 0, 0, 13,
0, 0, 0, 24, 103, 30, 0, 0, 31, 32,
18, 19, 0, 0, 20, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 11, 12, 14, 15, 16,
21, 23, 25, 26, 27, 28, 29, 33, 34, 105,
0, 0, 13, 0, 0, 0, 24, 174, 30, 0,
0, 31, 32, 0, 0, 0, 0, 0, 105, 0,
0, 0, 0, 0, 0, 0, 87, 89, 90, 0,
91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
0, 101, 102, 104, 88, 87, 89, 90, 0, 91, 0, 101, 102, 104, 88, 87, 89, 90, 0, 91,
92, 0, 0, 95, 96, 0, 98, 99, 100, 0, 92, 93, 94, 95, 96, 97, 98, 99, 100, 0,
101, 102, 104, 88, 0, 0, 0, 0, 103, 0, 101, 102, 104, 88, 105, 0, 0, 0, 103, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 105, 0, 0, 0, 103, 0, 0,
0, 87, 89, 90, 0, 91, 92, 93, 0, 95,
96, 97, 98, 99, 100, 0, 101, 102, 104, 88,
87, 89, 90, 0, 91, 92, 0, 0, 95, 96,
0, 98, 99, 100, 0, 101, 102, 104, 88, 0,
0, 0, 0, 103, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 103,
} }
var yyPact = [...]int16{ var yyPact = [...]int16{
16, 168, 501, 501, 155, 471, -1000, -1000, -1000, 153, 27, 190, 533, 533, 155, 490, -1000, -1000, -1000, 195,
-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, 264, -1000, 268, -1000, 614,
-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, 195, -1000, 229, -1000, 581, -1000, -1000, 23, 177, -1000, -1000, 373, -1000, 373, 180,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 22, 99, -1000, -1000, 366, -1000, 366, 125, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 159, -1000, -1000,
280, -1000, -1000, 323, -1000, 29, -1000, -56, -56, -56,
-56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
-56, -56, -56, 49, 43, 192, 177, -61, -1000, 174,
174, 8, -1000, 595, 5, -1000, 270, -1000, -1000, 131,
187, -1000, -1000, -1000, 263, -1000, 156, -1000, 269, 373,
-1000, -43, -38, -1000, 373, 373, 373, 373, 373, 373,
373, 373, 373, 373, 373, 373, 373, 373, 373, -1000,
254, -1000, -1000, 151, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, 226, 226, 101, -1000, -1000, -1000, -1000, 447, -1000,
-1000, 47, -1000, 614, -1000, -1000, 157, -1000, 109, -1000,
-1000, -1000, -1000, -1000, 93, -1000, -1000, -1000, -1000, -1000,
22, 73, 60, -1000, -1000, -1000, 372, 250, 174, 174,
174, 174, 5, 5, 491, 491, 491, 679, 660, 491,
491, 679, 5, 5, 491, 5, 250, -1000, 68, -1000,
-1000, -1000, 186, -1000, 176, -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, 264, -1000, -1000,
324, -1000, -1000, 260, -1000, 24, -1000, -54, -54, -54,
-54, -54, -54, -54, -54, -54, -54, -54, -54, -54,
-54, -54, -54, 37, 43, 268, 99, -57, -1000, 297,
297, 7, -1000, 562, 35, -1000, 317, -1000, -1000, 187,
80, -1000, -1000, -1000, 120, -1000, 175, -1000, 269, 366,
-1000, -50, -45, -1000, 366, 366, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 366, -1000,
225, -1000, -1000, 44, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, 107, 107, 284, -1000, -1000, -1000, -1000, 399, -1000,
-1000, 172, -1000, 581, -1000, -1000, 173, -1000, 157, -1000,
-1000, -1000, -1000, -1000, 86, -1000, -1000, -1000, -1000, -1000,
18, 143, 132, -1000, -1000, -1000, 618, 444, 297, 297,
297, 297, 35, 35, 46, 46, 46, 645, 626, 46,
46, 645, 35, 35, 46, 35, 444, -1000, 28, -1000,
-1000, -1000, 273, -1000, 174, -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, 373,
-1000, -1000, -1000, -1000, -1000, -1000, 91, 91, 20, 91,
124, 124, 92, 95, -1000, -1000, 285, 283, 256, 255,
233, 231, 230, 227, 210, 209, 208, -1000, -1000, -1000,
-1000, -1000, -1000, 102, -1000, -1000, -1000, 295, -1000, 614,
-1000, -1000, -1000, 91, -1000, 18, 14, 443, -1000, -1000,
-1000, 41, 48, 226, 226, 226, 158, 158, 41, 158,
41, -58, -1000, -1000, -1000, -1000, -1000, 91, 91, -1000,
-1000, -1000, 91, -1000, -1000, -1000, -1000, -1000, -1000, 226,
-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, 366, -1000, -1000, 26, -1000, 178, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, 32, 32, 15, 32,
96, 96, 41, 38, -1000, -1000, 255, 232, 230, 208,
206, 200, 197, 181, 180, 178, -1000, -1000, -1000, -1000,
-1000, -1000, 40, -1000, -1000, -1000, 289, -1000, 581, -1000,
-1000, -1000, 32, -1000, 14, 12, 475, -1000, -1000, -1000,
11, 152, 107, 107, 107, 104, 104, 11, 104, 11,
-1000, -1000, -1000, -1000, -1000, 32, 32, -1000, -1000, -1000,
32, -1000, -1000, -1000, -1000, -1000, -1000, 107, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, 103, -1000, 274, -1000, -1000,
-1000, -1000,
} }
var yyPgo = [...]int16{ var yyPgo = [...]int16{
0, 390, 13, 389, 6, 15, 388, 330, 387, 386, 0, 395, 13, 394, 6, 15, 393, 328, 390, 387,
383, 235, 341, 382, 14, 380, 10, 11, 374, 373, 381, 380, 286, 294, 372, 14, 371, 10, 11, 356,
8, 365, 3, 4, 364, 2, 1, 0, 349, 12, 353, 8, 352, 3, 4, 351, 2, 1, 0, 350,
5, 346, 343, 17, 157, 342, 340, 7, 329, 318, 12, 5, 349, 348, 16, 157, 347, 345, 7, 344,
28, 316, 36, 308, 9, 306, 300, 298, 297, 273, 341, 31, 339, 32, 338, 9, 337, 336, 335, 320,
272, 296, 265, 263, 319, 312, 293, 301, 295,
} }
var yyR1 = [...]int8{ var yyR1 = [...]int8{
0, 52, 52, 52, 52, 52, 52, 52, 37, 37, 0, 53, 53, 53, 53, 53, 53, 53, 38, 38,
37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
32, 32, 32, 32, 33, 33, 35, 35, 35, 35, 33, 33, 33, 33, 34, 34, 36, 36, 36, 36,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36,
35, 35, 34, 36, 36, 46, 46, 41, 41, 41, 36, 36, 35, 37, 37, 47, 47, 42, 42, 42,
41, 16, 16, 16, 16, 15, 15, 15, 4, 4, 42, 17, 17, 17, 17, 16, 16, 16, 4, 4,
38, 40, 40, 39, 39, 39, 47, 45, 45, 45, 39, 41, 41, 40, 40, 40, 48, 46, 46, 46,
31, 31, 31, 9, 9, 43, 49, 49, 49, 49, 32, 32, 32, 9, 9, 44, 50, 50, 50, 50,
49, 49, 50, 51, 51, 51, 42, 42, 42, 1, 50, 50, 51, 52, 52, 52, 43, 43, 43, 1,
1, 1, 2, 2, 2, 2, 2, 2, 2, 12, 1, 1, 2, 2, 2, 2, 2, 2, 2, 13,
12, 7, 7, 7, 7, 7, 7, 7, 7, 7, 13, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 11, 11, 11, 11, 13, 7, 7, 7, 7, 7, 12, 12, 12, 12, 14,
13, 13, 14, 14, 14, 14, 53, 19, 19, 19, 14, 14, 15, 15, 15, 15, 54, 20, 20, 20,
19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 20, 19, 19, 19, 19, 19, 19, 19, 19, 19,
28, 28, 28, 20, 20, 20, 20, 21, 21, 21, 29, 29, 29, 21, 21, 21, 21, 22, 22, 22,
22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
23, 23, 24, 24, 24, 3, 3, 3, 3, 3, 23, 24, 24, 25, 25, 25, 11, 11, 11, 11,
3, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 8, 8, 6, 6, 6, 8, 8, 5, 5, 5, 5, 45,
5, 5, 5, 5, 44, 44, 27, 27, 29, 29, 45, 28, 28, 30, 30, 31, 31, 27, 26, 26,
30, 30, 26, 25, 25, 48, 10, 17, 17, 49, 10, 18, 18,
} }
var yyR2 = [...]int8{ var yyR2 = [...]int8{
@ -562,52 +581,53 @@ var yyR2 = [...]int8{
1, 1, 3, 1, 3, 4, 1, 3, 5, 5, 1, 1, 3, 1, 3, 4, 1, 3, 5, 5,
1, 1, 1, 4, 3, 3, 2, 3, 1, 2, 1, 1, 1, 4, 3, 3, 2, 3, 1, 2,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
4, 3, 3, 1, 2, 1, 1, 1, 1, 1, 3, 4, 3, 3, 1, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1,
1, 1, 1, 2, 1, 1, 1, 0, 1, 1, 1, 0, 1,
} }
var yyChk = [...]int16{ var yyChk = [...]int16{
-1000, -52, 91, 92, 93, 94, 2, 10, -12, -7, -1000, -53, 98, 99, 100, 101, 2, 10, -13, -7,
-11, 61, 62, 78, 63, 64, 65, 12, 46, 47, -12, 62, 63, 79, 64, 65, 66, 12, 47, 48,
50, 66, 18, 67, 82, 68, 69, 70, 71, 72, 51, 67, 18, 68, 83, 69, 70, 71, 72, 73,
84, 87, 88, 73, 74, 13, -53, -12, 10, -37, 85, 88, 89, 74, 75, 13, -54, -13, 10, -38,
-32, -35, -38, -43, -44, -45, -47, -48, -49, -50, -33, -36, -39, -44, -45, -46, -48, -49, -50, -51,
-51, -31, -3, 12, 19, 9, 15, 25, -8, -7, -52, -32, -3, 12, 19, 9, 15, 25, -8, -7,
-42, 61, 62, 63, 64, 65, 66, 67, 68, 69, -43, 62, 63, 64, 65, 66, 67, 68, 69, 70,
70, 71, 72, 73, 74, 40, 56, 13, -51, -11, 71, 72, 73, 74, 75, 41, 57, 13, -52, -12,
-13, 20, -14, 12, 2, -19, 2, 40, 58, 41, -14, 20, -15, 12, 2, -20, 2, 41, 59, 42,
42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53,
53, 55, 56, 82, 57, 14, -33, -40, 2, 78, 54, 56, 57, 83, 58, 14, -34, -41, 2, 79,
84, 15, -40, -37, -37, -42, -1, 20, -2, 12, 85, 15, -41, -38, -38, -43, -1, 20, -2, 12,
-10, 2, 25, 20, 7, 2, 4, 2, 24, -34, -10, 2, 25, 20, 7, 2, 4, 2, 24, -35,
-41, -36, -46, 77, -34, -34, -34, -34, -34, -34, -42, -37, -47, 78, -35, -35, -35, -35, -35, -35,
-34, -34, -34, -34, -34, -34, -34, -34, -34, -44, -35, -35, -35, -35, -35, -35, -35, -35, -35, -45,
56, 2, -30, -9, 2, -27, -29, 87, 88, 19, 57, 2, -31, -9, 2, -28, -30, 88, 89, 19,
9, 40, 56, -44, 2, -40, -33, -16, 15, 2, 9, 41, 57, -45, 2, -41, -34, -17, 15, 2,
-16, -39, 22, -37, 22, 20, 7, 2, -5, 2, -17, -40, 22, -38, 22, 20, 7, 2, -5, 2,
4, 53, 43, 54, -5, 20, -14, 25, 2, -18, 4, 54, 44, 55, -5, 20, -15, 25, 2, -19,
5, -28, -20, 12, -27, -29, 16, -37, 81, 83, 5, -29, -21, 12, -28, -30, 16, -38, 82, 84,
79, 80, -37, -37, -37, -37, -37, -37, -37, -37, 80, 81, -38, -38, -38, -38, -38, -38, -38, -38,
-37, -37, -37, -37, -37, -37, -37, -44, 15, -27, -38, -38, -38, -38, -38, -38, -38, -45, 15, -28,
-27, 21, 6, 2, -15, 22, -4, -6, 2, 61, -28, 21, 6, 2, -16, 22, -4, -6, 2, 62,
77, 62, 78, 63, 64, 65, 79, 80, 12, 81, 78, 63, 79, 64, 65, 66, 80, 81, 12, 82,
46, 47, 50, 66, 18, 67, 82, 83, 68, 69, 47, 48, 51, 67, 18, 68, 83, 84, 69, 70,
70, 71, 72, 87, 88, 58, 73, 74, 22, 7, 71, 72, 73, 88, 89, 59, 74, 75, 22, 7,
20, -2, 25, 2, 25, 2, 26, 26, -29, 26, 20, -2, 25, 2, 25, 2, 26, 26, -30, 26,
40, 56, -21, 24, 17, -22, 30, 28, 29, 35, 41, 57, -22, 24, 17, -23, 30, 28, 29, 35,
36, 37, 33, 31, 34, 32, -16, -16, -17, -16, 36, 37, 33, 31, 34, 32, 38, -17, -17, -18,
-17, 22, -44, 21, 2, 22, 7, 2, -37, -26, -17, -18, 22, -45, 21, 2, 22, 7, 2, -38,
19, -26, 26, -26, -20, -20, 24, 17, 2, 17, -27, 19, -27, 26, -27, -21, -21, 24, 17, 2,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 17, 6, 6, 6, 6, 6, 6, 6, 6, 6,
21, 2, 22, -4, -26, 26, 26, 17, -22, -25, 6, 6, 21, 2, 22, -4, -27, 26, 26, 17,
56, -26, -30, -27, -27, -27, -23, 14, -23, -25, -23, -26, 57, -27, -31, -28, -28, -28, -24, 14,
-23, -25, -26, -26, -26, -24, -27, 24, 21, 2, -24, -26, -24, -26, -11, 92, 93, 94, 95, -27,
21, -27, -27, -27, -25, -28, 24, 21, 2, 21, -28,
} }
var yyDef = [...]int16{ var yyDef = [...]int16{
@ -616,37 +636,37 @@ var yyDef = [...]int16{
110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 0, 2, -2, 3, 4, 120, 121, 122, 123, 124, 0, 2, -2, 3, 4,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 0, 107, 224, 225, 0, 235, 0, 84, 18, 19, 0, 107, 229, 230, 0, 240, 0, 84,
85, -2, -2, -2, -2, -2, -2, -2, -2, -2, 85, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, 218, 219, 0, 5, 99, -2, -2, -2, -2, -2, 223, 224, 0, 5, 99,
0, 127, 130, 0, 135, 136, 140, 43, 43, 43, 0, 127, 130, 0, 135, 136, 140, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 0, 0, 0, 0, 22, 23, 0, 43, 43, 43, 0, 0, 0, 0, 22, 23, 0,
0, 0, 60, 0, 82, 83, 0, 88, 90, 0, 0, 0, 60, 0, 82, 83, 0, 88, 90, 0,
94, 98, 236, 125, 0, 131, 0, 134, 139, 0, 94, 98, 241, 125, 0, 131, 0, 134, 139, 0,
42, 47, 48, 44, 0, 0, 0, 0, 0, 0, 42, 47, 48, 44, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
0, 69, 70, 0, 72, 230, 231, 73, 74, 226, 0, 69, 70, 0, 72, 235, 236, 73, 74, 231,
227, 0, 0, 0, 81, 20, 21, 24, 0, 54, 232, 0, 0, 0, 81, 20, 21, 24, 0, 54,
25, 0, 62, 64, 66, 86, 0, 91, 0, 97, 25, 0, 62, 64, 66, 86, 0, 91, 0, 97,
220, 221, 222, 223, 0, 126, 129, 132, 133, 138, 225, 226, 227, 228, 0, 126, 129, 132, 133, 138,
141, 143, 146, 150, 151, 152, 0, 26, 0, 0, 141, 143, 146, 150, 151, 152, 0, 26, 0, 0,
-2, -2, 27, 28, 29, 30, 31, 32, 33, 34, -2, -2, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 68, 0, 228, 35, 36, 37, 38, 39, 40, 41, 68, 0, 233,
229, 75, 0, 80, 0, 53, 56, 58, 59, 189, 234, 75, 0, 80, 0, 53, 56, 58, 59, 194,
190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
210, 211, 212, 213, 214, 215, 216, 217, 61, 65, 215, 216, 217, 218, 219, 220, 221, 222, 61, 65,
87, 89, 92, 96, 93, 95, 0, 0, 0, 0, 87, 89, 92, 96, 93, 95, 0, 0, 0, 0,
0, 0, 0, 0, 156, 158, 0, 0, 0, 0, 0, 0, 0, 0, 156, 158, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 45, 46, 49, 238, 0, 0, 0, 0, 0, 0, 0, 45, 46, 49,
50, 71, 0, 77, 79, 51, 0, 57, 63, 142, 243, 50, 71, 0, 77, 79, 51, 0, 57, 63,
232, 144, 0, 147, 0, 0, 0, 154, 159, 155, 142, 237, 144, 0, 147, 0, 0, 0, 154, 159,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0,
76, 78, 52, 55, 145, 0, 0, 153, 157, 160, 0, 0, 76, 78, 52, 55, 145, 0, 0, 153,
0, 234, 161, 162, 163, 164, 165, 0, 166, 167, 157, 160, 0, 239, 161, 162, 163, 164, 165, 0,
168, 169, 148, 149, 233, 0, 173, 0, 171, 174, 166, 167, 168, 169, 170, 176, 177, 178, 179, 148,
170, 172, 149, 238, 0, 174, 0, 172, 175, 171, 173,
} }
var yyTok1 = [...]int8{ var yyTok1 = [...]int8{
@ -663,7 +683,8 @@ var yyTok2 = [...]int8{
62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 95, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
102,
} }
var yyTok3 = [...]int8{ var yyTok3 = [...]int8{
@ -1800,26 +1821,32 @@ yydefault:
yyVAL.descriptors["n_offset"] = yyDollar[3].int yyVAL.descriptors["n_offset"] = yyDollar[3].int
} }
case 170: case 170:
yyDollar = yyS[yypt-3 : yypt+1]
{
yyVAL.descriptors = yylex.(*parser).newMap()
yyVAL.descriptors["counter_reset_hint"] = yyDollar[3].item
}
case 171:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
{ {
yyVAL.bucket_set = yyDollar[2].bucket_set yyVAL.bucket_set = yyDollar[2].bucket_set
} }
case 171: case 172:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
{ {
yyVAL.bucket_set = yyDollar[2].bucket_set yyVAL.bucket_set = yyDollar[2].bucket_set
} }
case 172: case 173:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
{ {
yyVAL.bucket_set = append(yyDollar[1].bucket_set, yyDollar[3].float) yyVAL.bucket_set = append(yyDollar[1].bucket_set, yyDollar[3].float)
} }
case 173: case 174:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
{ {
yyVAL.bucket_set = []float64{yyDollar[1].float} yyVAL.bucket_set = []float64{yyDollar[1].float}
} }
case 224: case 229:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
{ {
yyVAL.node = &NumberLiteral{ yyVAL.node = &NumberLiteral{
@ -1827,7 +1854,7 @@ yydefault:
PosRange: yyDollar[1].item.PositionRange(), PosRange: yyDollar[1].item.PositionRange(),
} }
} }
case 225: case 230:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
{ {
var err error var err error
@ -1841,12 +1868,12 @@ yydefault:
PosRange: yyDollar[1].item.PositionRange(), PosRange: yyDollar[1].item.PositionRange(),
} }
} }
case 226: case 231:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
{ {
yyVAL.float = yylex.(*parser).number(yyDollar[1].item.Val) yyVAL.float = yylex.(*parser).number(yyDollar[1].item.Val)
} }
case 227: case 232:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
{ {
var err error var err error
@ -1857,17 +1884,17 @@ yydefault:
} }
yyVAL.float = dur.Seconds() yyVAL.float = dur.Seconds()
} }
case 228: case 233:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
{ {
yyVAL.float = yyDollar[2].float yyVAL.float = yyDollar[2].float
} }
case 229: case 234:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
{ {
yyVAL.float = -yyDollar[2].float yyVAL.float = -yyDollar[2].float
} }
case 232: case 237:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
{ {
var err error var err error
@ -1876,17 +1903,17 @@ yydefault:
yylex.(*parser).addParseErrf(yyDollar[1].item.PositionRange(), "invalid repetition in series values: %s", err) yylex.(*parser).addParseErrf(yyDollar[1].item.PositionRange(), "invalid repetition in series values: %s", err)
} }
} }
case 233: case 238:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
{ {
yyVAL.int = -int64(yyDollar[2].uint) yyVAL.int = -int64(yyDollar[2].uint)
} }
case 234: case 239:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
{ {
yyVAL.int = int64(yyDollar[1].uint) yyVAL.int = int64(yyDollar[1].uint)
} }
case 235: case 240:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
{ {
yyVAL.node = &StringLiteral{ yyVAL.node = &StringLiteral{
@ -1894,7 +1921,7 @@ yydefault:
PosRange: yyDollar[1].item.PositionRange(), PosRange: yyDollar[1].item.PositionRange(),
} }
} }
case 236: case 241:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
{ {
yyVAL.item = Item{ yyVAL.item = Item{
@ -1903,7 +1930,7 @@ yydefault:
Val: yylex.(*parser).unquoteString(yyDollar[1].item.Val), Val: yylex.(*parser).unquoteString(yyDollar[1].item.Val),
} }
} }
case 237: case 242:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
{ {
yyVAL.strings = nil yyVAL.strings = nil

@ -137,16 +137,24 @@ var key = map[string]ItemType{
} }
var histogramDesc = map[string]ItemType{ var histogramDesc = map[string]ItemType{
"sum": SUM_DESC, "sum": SUM_DESC,
"count": COUNT_DESC, "count": COUNT_DESC,
"schema": SCHEMA_DESC, "schema": SCHEMA_DESC,
"offset": OFFSET_DESC, "offset": OFFSET_DESC,
"n_offset": NEGATIVE_OFFSET_DESC, "n_offset": NEGATIVE_OFFSET_DESC,
"buckets": BUCKETS_DESC, "buckets": BUCKETS_DESC,
"n_buckets": NEGATIVE_BUCKETS_DESC, "n_buckets": NEGATIVE_BUCKETS_DESC,
"z_bucket": ZERO_BUCKET_DESC, "z_bucket": ZERO_BUCKET_DESC,
"z_bucket_w": ZERO_BUCKET_WIDTH_DESC, "z_bucket_w": ZERO_BUCKET_WIDTH_DESC,
"custom_values": CUSTOM_VALUES_DESC, "custom_values": CUSTOM_VALUES_DESC,
"counter_reset_hint": COUNTER_RESET_HINT_DESC,
}
var counterResetHints = map[string]ItemType{
"unknown": UNKNOWN_COUNTER_RESET,
"reset": COUNTER_RESET,
"not_reset": NOT_COUNTER_RESET,
"gauge": GAUGE_TYPE,
} }
// ItemTypeStr is the default string representations for common Items. It does not // ItemTypeStr is the default string representations for common Items. It does not
@ -585,6 +593,11 @@ Loop:
return lexHistogram return lexHistogram
} }
} }
if desc, ok := counterResetHints[strings.ToLower(word)]; ok {
l.emit(desc)
return lexHistogram
}
l.errorf("bad histogram descriptor found: %q", word) l.errorf("bad histogram descriptor found: %q", word)
break Loop break Loop
} }

@ -580,6 +580,28 @@ func (p *parser) buildHistogramFromMap(desc *map[string]interface{}) *histogram.
} }
} }
val, ok = (*desc)["counter_reset_hint"]
if ok {
resetHint, ok := val.(Item)
if ok {
switch resetHint.Typ {
case UNKNOWN_COUNTER_RESET:
output.CounterResetHint = histogram.UnknownCounterReset
case COUNTER_RESET:
output.CounterResetHint = histogram.CounterReset
case NOT_COUNTER_RESET:
output.CounterResetHint = histogram.NotCounterReset
case GAUGE_TYPE:
output.CounterResetHint = histogram.GaugeType
default:
p.addParseErrf(p.yyParser.lval.item.PositionRange(), "error parsing counter_reset_hint: unknown value %v", resetHint.Typ)
}
} else {
p.addParseErrf(p.yyParser.lval.item.PositionRange(), "error parsing counter_reset_hint: %v", val)
}
}
buckets, spans := p.buildHistogramBucketsAndSpans(desc, "buckets", "offset") buckets, spans := p.buildHistogramBucketsAndSpans(desc, "buckets", "offset")
output.PositiveBuckets = buckets output.PositiveBuckets = buckets
output.PositiveSpans = spans output.PositiveSpans = spans

@ -4038,32 +4038,34 @@ func TestParseHistogramSeries(t *testing.T) {
}, },
{ {
name: "all properties used", 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}}`, 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{{ expected: []histogram.FloatHistogram{{
Schema: 1, Schema: 1,
Sum: -0.3, Sum: -0.3,
Count: 3.1, Count: 3.1,
ZeroCount: 7.1, ZeroCount: 7.1,
ZeroThreshold: 0.05, ZeroThreshold: 0.05,
PositiveBuckets: []float64{5.1, 10, 7}, 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}, NegativeBuckets: []float64{4.1, 5},
NegativeSpans: []histogram.Span{{Offset: -5, Length: 2}}, NegativeSpans: []histogram.Span{{Offset: -5, Length: 2}},
CounterResetHint: histogram.GaugeType,
}}, }},
}, },
{ {
name: "all properties used - with spaces", name: "all properties used - with spaces",
input: `{} {{schema:1 sum:0.3 count:3 z_bucket:7 z_bucket_w:5 buckets:[5 10 7 ] offset:-3 n_buckets:[4 5] n_offset:5 }}`, input: `{} {{schema:1 sum:0.3 count:3 z_bucket:7 z_bucket_w:5 buckets:[5 10 7 ] offset:-3 n_buckets:[4 5] n_offset:5 counter_reset_hint:gauge }}`,
expected: []histogram.FloatHistogram{{ expected: []histogram.FloatHistogram{{
Schema: 1, Schema: 1,
Sum: 0.3, Sum: 0.3,
Count: 3, Count: 3,
ZeroCount: 7, ZeroCount: 7,
ZeroThreshold: 5, ZeroThreshold: 5,
PositiveBuckets: []float64{5, 10, 7}, PositiveBuckets: []float64{5, 10, 7},
PositiveSpans: []histogram.Span{{Offset: -3, Length: 3}}, PositiveSpans: []histogram.Span{{Offset: -3, Length: 3}},
NegativeBuckets: []float64{4, 5}, NegativeBuckets: []float64{4, 5},
NegativeSpans: []histogram.Span{{Offset: 5, Length: 2}}, NegativeSpans: []histogram.Span{{Offset: 5, Length: 2}},
CounterResetHint: histogram.GaugeType,
}}, }},
}, },
{ {
@ -4250,6 +4252,39 @@ func TestParseHistogramSeries(t *testing.T) {
input: `{} {{ schema:1}}`, input: `{} {{ schema:1}}`,
expectedError: `1:7: parse error: unexpected "<Item 57372>" "schema" in series values`, expectedError: `1:7: parse error: unexpected "<Item 57372>" "schema" in series values`,
}, },
{
name: "invalid counter reset hint value",
input: `{} {{counter_reset_hint:foo}}`,
expectedError: `1:25: parse error: bad histogram descriptor found: "foo"`,
},
{
name: "'unknown' counter reset hint value",
input: `{} {{counter_reset_hint:unknown}}`,
expected: []histogram.FloatHistogram{{
CounterResetHint: histogram.UnknownCounterReset,
}},
},
{
name: "'reset' counter reset hint value",
input: `{} {{counter_reset_hint:reset}}`,
expected: []histogram.FloatHistogram{{
CounterResetHint: histogram.CounterReset,
}},
},
{
name: "'not_reset' counter reset hint value",
input: `{} {{counter_reset_hint:not_reset}}`,
expected: []histogram.FloatHistogram{{
CounterResetHint: histogram.NotCounterReset,
}},
},
{
name: "'gauge' counter reset hint value",
input: `{} {{counter_reset_hint:gauge}}`,
expected: []histogram.FloatHistogram{{
CounterResetHint: histogram.GaugeType,
}},
},
} { } {
t.Run(test.name, func(t *testing.T) { t.Run(test.name, func(t *testing.T) {
_, vals, err := ParseSeriesDesc(test.input) _, vals, err := ParseSeriesDesc(test.input)

Loading…
Cancel
Save