diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8415bdc8a..c62494279 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '2.7' # Version range or exact version of a Ruby version to use, using semvers version range syntax. + ruby-version: '3.3' # Version range or exact version of a Ruby version to use, using semvers version range syntax. - name: Install packaging dependencies run: | gem install fpm package_cloud diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0474ec066..09a843596 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -93,14 +93,14 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '2.7' # Version range or exact version of a Ruby version to use, using semvers version range syntax. + ruby-version: '3.3' # Version range or exact version of a Ruby version to use, using semvers version range syntax. + # gem install dotenv -v 2.8.1 # workaroaund for ruby version 2.7.8.225 - name: Install packaging dependencies run: | - gem install dotenv -v 2.8.1 # workaroaund for ruby version 2.7.8.225 gem install fpm package_cloud go install github.com/mitchellh/gox@latest - + - name: Check packaging run: | make DEVEL=1 gox-build fpm-deb fpm-rpm diff --git a/autocomplete/autocomplete.go b/autocomplete/autocomplete.go index 038c5c99f..338abd500 100644 --- a/autocomplete/autocomplete.go +++ b/autocomplete/autocomplete.go @@ -93,7 +93,7 @@ func (h *Handler) requestExpr(r *http.Request) (*where.Where, *where.Where, map[ return wr, pw, usedTags, err } - wr, pw, err = finder.TaggedWhere(terms) + wr, pw, err = finder.TaggedWhere(terms, h.config.FeatureFlags.UseCarbonBehavior, h.config.FeatureFlags.DontMatchMissingTags) if err != nil { return wr, pw, usedTags, err } diff --git a/config/config.go b/config/config.go index 09839e76f..611c14537 100644 --- a/config/config.go +++ b/config/config.go @@ -118,6 +118,12 @@ type Common struct { FindCache cache.BytesCache `toml:"-" json:"-"` } +// FeatureFlags contains feature flags that significantly change how gch responds to some requests +type FeatureFlags struct { + UseCarbonBehavior bool `toml:"use-carbon-behaviour" json:"use-carbon-behaviour" comment:"if true, prefers carbon's behaviour on how tags are treated"` + DontMatchMissingTags bool `toml:"dont-match-missing-tags" json:"dont-match-missing-tags" comment:"if true, seriesByTag terms containing '!=' or '!=~' operators will not match metrics that don't have the tag at all"` +} + // IndexReverseRule contains rules to use direct or reversed request to index table type IndexReverseRule struct { Suffix string `toml:"suffix,omitempty" json:"suffix" comment:"rule is used when the target suffix is matched"` @@ -341,15 +347,16 @@ type Debug struct { // Config is the daemon configuration type Config struct { - Common Common `toml:"common" json:"common"` - Metrics metrics.Config `toml:"metrics" json:"metrics"` - ClickHouse ClickHouse `toml:"clickhouse" json:"clickhouse"` - DataTable []DataTable `toml:"data-table" json:"data-table" comment:"data tables, see doc/config.md for additional info"` - Tags Tags `toml:"tags" json:"tags" comment:"is not recommended to use, https://github.com/lomik/graphite-clickhouse/wiki/TagsRU" commented:"true"` - Carbonlink Carbonlink `toml:"carbonlink" json:"carbonlink"` - Prometheus Prometheus `toml:"prometheus" json:"prometheus"` - Debug Debug `toml:"debug" json:"debug" comment:"see doc/debugging.md"` - Logging []zapwriter.Config `toml:"logging" json:"logging"` + Common Common `toml:"common" json:"common"` + FeatureFlags FeatureFlags `toml:"feature-flags" json:"feature-flags"` + Metrics metrics.Config `toml:"metrics" json:"metrics"` + ClickHouse ClickHouse `toml:"clickhouse" json:"clickhouse"` + DataTable []DataTable `toml:"data-table" json:"data-table" comment:"data tables, see doc/config.md for additional info"` + Tags Tags `toml:"tags" json:"tags" comment:"is not recommended to use, https://github.com/lomik/graphite-clickhouse/wiki/TagsRU" commented:"true"` + Carbonlink Carbonlink `toml:"carbonlink" json:"carbonlink"` + Prometheus Prometheus `toml:"prometheus" json:"prometheus"` + Debug Debug `toml:"debug" json:"debug" comment:"see doc/debugging.md"` + Logging []zapwriter.Config `toml:"logging" json:"logging"` } // New returns *Config with default values diff --git a/deploy/doc/config.md b/deploy/doc/config.md index 8c0f6a744..f625b1de4 100644 --- a/deploy/doc/config.md +++ b/deploy/doc/config.md @@ -29,6 +29,36 @@ shortTimeoutSec = 300 findTimeoutSec = 600 ``` +## Feature flags `[feature-flags]` + +`use-carbon-behaviour=true`. + +- Tagged terms with `=` operator and empty value (e.g. `t=`) match all metrics that don't have that tag. + +`dont-match-missing-tags=true`. + +- Tagged terms with `!=`, `!=~` operators only match metrics that have that tag. + +### Examples + +Given tagged metrics: +``` +metric.two;env=prod +metric.one;env=stage;dc=mydc1 +metric.one;env=prod;dc=otherdc1 +``` +| Target | use-carbon-behaviour | Matched metrics | +|-----------------------------|----------------------|---------------------------------------------------| +| seriesByTag('dc=') | false | - | +| seriesByTag('dc=') | true | metric.two;env=prod | + +| Target | dont-match-missing-tags | Matched metrics | +|--------------------------|-------------------------|--------------------------------------------------------| +| seriesByTag('dc!=mydc1') | false | metric.two;env=prod
metric.one;env=prod;dc=otherdc1 | +| seriesByTag('dc!=mydc1') | true | metric.one;env=prod;dc=otherdc1 | +| seriesByTag('dc!=~otherdc') | false | metric.two;env=prod
metric.one;env=stage;dc=mydc1 | +| seriesByTag('dc!=~otherdc') | true | metric.one;env=stage;dc=mydc1 | + ## ClickHouse `[clickhouse]` ### URL `url` diff --git a/doc/config.md b/doc/config.md index 23f6a5c1d..e55560c76 100644 --- a/doc/config.md +++ b/doc/config.md @@ -32,6 +32,36 @@ shortTimeoutSec = 300 findTimeoutSec = 600 ``` +## Feature flags `[feature-flags]` + +`use-carbon-behaviour=true`. + +- Tagged terms with `=` operator and empty value (e.g. `t=`) match all metrics that don't have that tag. + +`dont-match-missing-tags=true`. + +- Tagged terms with `!=`, `!=~` operators only match metrics that have that tag. + +### Examples + +Given tagged metrics: +``` +metric.two;env=prod +metric.one;env=stage;dc=mydc1 +metric.one;env=prod;dc=otherdc1 +``` +| Target | use-carbon-behaviour | Matched metrics | +|-----------------------------|----------------------|---------------------------------------------------| +| seriesByTag('dc=') | false | - | +| seriesByTag('dc=') | true | metric.two;env=prod | + +| Target | dont-match-missing-tags | Matched metrics | +|--------------------------|-------------------------|--------------------------------------------------------| +| seriesByTag('dc!=mydc1') | false | metric.two;env=prod
metric.one;env=prod;dc=otherdc1 | +| seriesByTag('dc!=mydc1') | true | metric.one;env=prod;dc=otherdc1 | +| seriesByTag('dc!=~otherdc') | false | metric.two;env=prod
metric.one;env=stage;dc=mydc1 | +| seriesByTag('dc!=~otherdc') | true | metric.one;env=stage;dc=mydc1 | + ## ClickHouse `[clickhouse]` ### URL `url` @@ -228,6 +258,12 @@ Only one tag used as filter for index field Tag1, see graphite_tagged table [str # offset beetween now and until for select short cache timeout short-offset = 0 +[feature-flags] + # if true, prefers carbon's behaviour on how tags are treated + use-carbon-behaviour = false + # if true, seriesByTag terms containing '!=' or '!=~' operators will not match metrics that don't have the tag at all + dont-match-missing-tags = false + [metrics] # graphite relay address metric-endpoint = "" diff --git a/finder/finder.go b/finder/finder.go index 589f08e52..520ce6a17 100644 --- a/finder/finder.go +++ b/finder/finder.go @@ -38,7 +38,16 @@ func newPlainFinder(ctx context.Context, config *config.Config, query string, fr var f Finder if config.ClickHouse.TaggedTable != "" && strings.HasPrefix(strings.TrimSpace(query), "seriesByTag") { - f = NewTagged(config.ClickHouse.URL, config.ClickHouse.TaggedTable, config.ClickHouse.TaggedUseDaily, false, opts, config.ClickHouse.TaggedCosts) + f = NewTagged( + config.ClickHouse.URL, + config.ClickHouse.TaggedTable, + config.ClickHouse.TaggedUseDaily, + config.FeatureFlags.UseCarbonBehavior, + config.FeatureFlags.DontMatchMissingTags, + false, + opts, + config.ClickHouse.TaggedCosts, + ) if len(config.Common.Blacklist) > 0 { f = WrapBlacklist(f, config.Common.Blacklist) @@ -121,7 +130,16 @@ func FindTagged(ctx context.Context, config *config.Config, terms []TaggedTerm, return Result(plain), nil } - fnd := NewTagged(config.ClickHouse.URL, config.ClickHouse.TaggedTable, config.ClickHouse.TaggedUseDaily, true, opts, config.ClickHouse.TaggedCosts) + fnd := NewTagged( + config.ClickHouse.URL, + config.ClickHouse.TaggedTable, + config.ClickHouse.TaggedUseDaily, + config.FeatureFlags.UseCarbonBehavior, + config.FeatureFlags.DontMatchMissingTags, + true, + opts, + config.ClickHouse.TaggedCosts, + ) err := fnd.ExecutePrepared(ctx, terms, from, until, stat) if err != nil { diff --git a/finder/tagged.go b/finder/tagged.go index a41aafc27..b63d97826 100644 --- a/finder/tagged.go +++ b/finder/tagged.go @@ -72,24 +72,28 @@ func (s TaggedTermList) Less(i, j int) bool { } type TaggedFinder struct { - url string // clickhouse dsn - table string // graphite_tag table - absKeepEncoded bool // Abs returns url encoded value. For queries from prometheus - opts clickhouse.Options // clickhouse query timeout - taggedCosts map[string]*config.Costs // costs for taggs (sor tune index search) - dailyEnabled bool + url string // clickhouse dsn + table string // graphite_tag table + absKeepEncoded bool // Abs returns url encoded value. For queries from prometheus + opts clickhouse.Options // clickhouse query timeout + taggedCosts map[string]*config.Costs // costs for taggs (sor tune index search) + dailyEnabled bool + useCarbonBehavior bool + dontMatchMissingTags bool body []byte // clickhouse response } -func NewTagged(url string, table string, dailyEnabled bool, absKeepEncoded bool, opts clickhouse.Options, taggedCosts map[string]*config.Costs) *TaggedFinder { +func NewTagged(url string, table string, dailyEnabled, useCarbonBehavior, dontMatchMissingTags, absKeepEncoded bool, opts clickhouse.Options, taggedCosts map[string]*config.Costs) *TaggedFinder { return &TaggedFinder{ - url: url, - table: table, - absKeepEncoded: absKeepEncoded, - opts: opts, - taggedCosts: taggedCosts, - dailyEnabled: dailyEnabled, + url: url, + table: table, + absKeepEncoded: absKeepEncoded, + opts: opts, + taggedCosts: taggedCosts, + dailyEnabled: dailyEnabled, + useCarbonBehavior: useCarbonBehavior, + dontMatchMissingTags: dontMatchMissingTags, } } @@ -102,12 +106,17 @@ func (term *TaggedTerm) concatMask() string { return fmt.Sprintf("%s=%s", term.Key, v) } -func TaggedTermWhere1(term *TaggedTerm) (string, error) { +func TaggedTermWhere1(term *TaggedTerm, useCarbonBehaviour, dontMatchMissingTags bool) (string, error) { // positive expression check only in Tag1 // negative check in all Tags switch term.Op { case TaggedTermEq: - if strings.Index(term.Value, "*") >= 0 { + if useCarbonBehaviour && term.Value == "" { + // special case + // container_name="" ==> response should not contain container_name + return fmt.Sprintf("NOT arrayExists((x) -> %s, Tags)", where.HasPrefix("x", term.Key+"=")), nil + } + if strings.Contains(term.Value, "*") { return where.Like("Tag1", term.concatMask()), nil } var values []string @@ -127,35 +136,52 @@ func TaggedTermWhere1(term *TaggedTerm) (string, error) { // container_name!="" ==> container_name exists and it is not empty return where.HasPrefixAndNotEq("Tag1", term.Key+"="), nil } - if strings.Index(term.Value, "*") >= 0 { - return fmt.Sprintf("NOT arrayExists((x) -> %s, Tags)", where.Like("x", term.concatMask())), nil + var whereLikeAnyVal string + if dontMatchMissingTags { + whereLikeAnyVal = where.HasPrefix("Tag1", term.Key+"=") + " AND " + } + if strings.Contains(term.Value, "*") { + whereLike := where.Like("x", term.concatMask()) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereLike), nil } var values []string if err := where.GlobExpandSimple(term.Value, term.Key+"=", &values); err != nil { return "", err } if len(values) == 1 { - return fmt.Sprintf("NOT arrayExists((x) -> %s, Tags)", where.Eq("x", values[0])), nil + whereEq := where.Eq("x", values[0]) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereEq), nil } else if len(values) > 1 { - return fmt.Sprintf("NOT arrayExists((x) -> %s, Tags)", where.In("x", values)), nil + whereIn := where.In("x", values) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereIn), nil } else { - return fmt.Sprintf("NOT arrayExists((x) -> %s, Tags)", where.Eq("x", term.concat())), nil + whereEq := where.Eq("x", term.concat()) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereEq), nil } case TaggedTermMatch: return where.Match("Tag1", term.Key, term.Value), nil case TaggedTermNotMatch: - // return fmt.Sprintf("NOT arrayExists((x) -> %s, Tags)", term.Key, term.Value), nil - return "NOT " + where.Match("Tag1", term.Key, term.Value), nil + var whereLikeAnyVal string + if dontMatchMissingTags { + whereLikeAnyVal = where.HasPrefix("Tag1", term.Key+"=") + " AND " + } + whereMatch := where.Match("x", term.Key, term.Value) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereMatch), nil default: return "", nil } } -func TaggedTermWhereN(term *TaggedTerm) (string, error) { +func TaggedTermWhereN(term *TaggedTerm, useCarbonBehaviour, dontMatchMissingTags bool) (string, error) { // arrayExists((x) -> %s, Tags) switch term.Op { case TaggedTermEq: - if strings.Index(term.Value, "*") >= 0 { + if useCarbonBehaviour && term.Value == "" { + // special case + // container_name="" ==> response should not contain container_name + return fmt.Sprintf("NOT arrayExists((x) -> %s, Tags)", where.HasPrefix("x", term.Key+"=")), nil + } + if strings.Contains(term.Value, "*") { return fmt.Sprintf("arrayExists((x) -> %s, Tags)", where.Like("x", term.concatMask())), nil } var values []string @@ -175,24 +201,37 @@ func TaggedTermWhereN(term *TaggedTerm) (string, error) { // container_name!="" ==> container_name exists and it is not empty return fmt.Sprintf("arrayExists((x) -> %s, Tags)", where.HasPrefixAndNotEq("x", term.Key+"=")), nil } - if strings.Index(term.Value, "*") >= 0 { - return fmt.Sprintf("NOT arrayExists((x) -> %s, Tags)", where.Like("x", term.concatMask())), nil + var whereLikeAnyVal string + if dontMatchMissingTags { + whereLikeAnyVal = fmt.Sprintf("arrayExists((x) -> %s, Tags) AND ", where.HasPrefix("x", term.Key+"=")) + } + if strings.Contains(term.Value, "*") { + whereLike := where.Like("x", term.concatMask()) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereLike), nil } var values []string if err := where.GlobExpandSimple(term.Value, term.Key+"=", &values); err != nil { return "", err } if len(values) == 1 { - return "NOT arrayExists((x) -> " + where.Eq("x", values[0]) + ", Tags)", nil + whereEq := where.Eq("x", values[0]) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereEq), nil } else if len(values) > 1 { - return "NOT arrayExists((x) -> " + where.In("x", values) + ", Tags)", nil + whereIn := where.In("x", values) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereIn), nil } else { - return "NOT arrayExists((x) -> " + where.Eq("x", term.concat()) + ", Tags)", nil + whereEq := where.Eq("x", term.concat()) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereEq), nil } case TaggedTermMatch: return fmt.Sprintf("arrayExists((x) -> %s, Tags)", where.Match("x", term.Key, term.Value)), nil case TaggedTermNotMatch: - return fmt.Sprintf("NOT arrayExists((x) -> %s, Tags)", where.Match("x", term.Key, term.Value)), nil + var whereLikeAnyVal string + if dontMatchMissingTags { + whereLikeAnyVal = fmt.Sprintf("arrayExists((x) -> %s, Tags) AND ", where.HasPrefix("x", term.Key+"=")) + } + whereMatch := where.Match("x", term.Key, term.Value) + return fmt.Sprintf("%sNOT arrayExists((x) -> %s, Tags)", whereLikeAnyVal, whereMatch), nil default: return "", nil } @@ -387,10 +426,10 @@ func ParseSeriesByTag(query string, config *config.Config) ([]TaggedTerm, error) return ParseTaggedConditions(conditions, config, false) } -func TaggedWhere(terms []TaggedTerm) (*where.Where, *where.Where, error) { +func TaggedWhere(terms []TaggedTerm, useCarbonBehaviour, dontMatchMissingTags bool) (*where.Where, *where.Where, error) { w := where.New() pw := where.New() - x, err := TaggedTermWhere1(&terms[0]) + x, err := TaggedTermWhere1(&terms[0], useCarbonBehaviour, dontMatchMissingTags) if err != nil { return nil, nil, err } @@ -400,7 +439,7 @@ func TaggedWhere(terms []TaggedTerm) (*where.Where, *where.Where, error) { w.And(x) for i := 1; i < len(terms); i++ { - and, err := TaggedTermWhereN(&terms[i]) + and, err := TaggedTermWhereN(&terms[i], useCarbonBehaviour, dontMatchMissingTags) if err != nil { return nil, nil, err } @@ -426,7 +465,7 @@ func (t *TaggedFinder) Execute(ctx context.Context, config *config.Config, query } func (t *TaggedFinder) whereFilter(terms []TaggedTerm, from int64, until int64) (*where.Where, *where.Where, error) { - w, pw, err := TaggedWhere(terms) + w, pw, err := TaggedWhere(terms, t.useCarbonBehavior, t.dontMatchMissingTags) if err != nil { return nil, nil, err } diff --git a/finder/tagged_test.go b/finder/tagged_test.go index 5c1b68f93..77b43d67d 100644 --- a/finder/tagged_test.go +++ b/finder/tagged_test.go @@ -45,10 +45,10 @@ func TestTaggedWhere(t *testing.T) { {"seriesByTag('name=rps')", 0, "Tag1='__name__=rps'", "", false}, {"seriesByTag('name=~cpu.usage')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu.usage')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu.usage')", false}, {"seriesByTag('name=~cpu.usage')", 1, "", "", true}, - {"seriesByTag('name=~cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu|mem')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu|mem')", false}, - {"seriesByTag('name=~cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu|mem$')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu|mem$')", false}, - {"seriesByTag('name=~^cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=cpu|mem')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=cpu|mem')", false}, - {"seriesByTag('name=~^cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=cpu|mem$')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=cpu|mem$')", false}, + {"seriesByTag('name=~cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem)')", false}, + {"seriesByTag('name=~cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem$)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem$)')", false}, + {"seriesByTag('name=~^cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem)')", false}, + {"seriesByTag('name=~^cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem$)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem$)')", false}, {"seriesByTag('name=rps', 'key=~value')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=%' AND match(x, '^key=.*value'), Tags))", "", false}, // test for issue #244 {"seriesByTag('name=rps', 'key=~^value')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=value%' AND match(x, '^key=value'), Tags))", "", false}, @@ -71,6 +71,14 @@ func TestTaggedWhere(t *testing.T) { {"seriesByTag('name=value','what=~*')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * // empty tag value during autocompletion {"seriesByTag('name=value','what=~')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + // testcases for useCarbonBehaviour=false + {"seriesByTag('what=')", 0, "Tag1='what='", "", false}, + {"seriesByTag('name=value','what=')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x='what=', Tags))", "", false}, + // testcases for dontMatchMissingTags=false + {"seriesByTag('key!=value')", 0, "NOT arrayExists((x) -> x='key=value', Tags)", "", false}, + {"seriesByTag('dc!=de', 'cpu=cpu-total')", 0, "(Tag1='cpu=cpu-total') AND (NOT arrayExists((x) -> x='dc=de', Tags))", "", false}, + {"seriesByTag('dc!=de', 'cpu!=cpu-total')", 0, "(NOT arrayExists((x) -> x='dc=de', Tags)) AND (NOT arrayExists((x) -> x='cpu=cpu-total', Tags))", "", false}, + {"seriesByTag('dc!=~de|us', 'cpu=cpu-total')", 0, "(Tag1='cpu=cpu-total') AND (NOT arrayExists((x) -> x LIKE 'dc=%' AND match(x, '^dc=.*(de|us)'), Tags))", "", false}, } for i, test := range table { @@ -90,7 +98,308 @@ func TestTaggedWhere(t *testing.T) { var w, pw *where.Where if err == nil { - w, pw, err = TaggedWhere(terms) + w, pw, err = TaggedWhere(terms, false, false) + } + + if test.isErr { + require.Error(err, testName+", err") + return + } else { + assert.NoError(err, testName+", err") + } + + assert.Equal(test.where, w.String(), testName+", where") + assert.Equal(test.prewhere, pw.String(), testName+", prewhere") + }) + } +} + +func TestTaggedWhere_UseCarbonBehaviourFlag(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + table := []struct { + query string + minTags int + where string + prewhere string + isErr bool + }{ + // test for issue #195 + {"seriesByTag()", 0, "", "", true}, + {"seriesByTag('')", 0, "", "", true}, + // incomplete + {"seriesByTag('key=value)", 0, "", "", true}, + // missing quote + {"seriesByTag(key=value)", 0, "", "", true}, + // info about _tag "directory" + {"seriesByTag('key=value')", 0, "Tag1='key=value'", "", false}, + {"seriesByTag('key=value')", 1, "Tag1='key=value'", "", false}, + {"seriesByTag('key=value')", 2, "", "", true}, + // test case for wildcarded name, must be not first check + {"seriesByTag('name=*', 'key=value')", 0, "(Tag1='key=value') AND (arrayExists((x) -> x LIKE '__name__=%', Tags))", "", false}, + {"seriesByTag('name=*', 'key=value')", 1, "(Tag1='key=value') AND (arrayExists((x) -> x LIKE '__name__=%', Tags))", "", false}, + {"seriesByTag('name=*', 'key=value')", 2, "", "", true}, + {"seriesByTag('name=*', 'key=value*')", 0, "(Tag1 LIKE '__name__=%') AND (arrayExists((x) -> x LIKE 'key=value%', Tags))", "", false}, + {"seriesByTag('name=rps')", 0, "Tag1='__name__=rps'", "", false}, + {"seriesByTag('name=~cpu.usage')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu.usage')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu.usage')", false}, + {"seriesByTag('name=~cpu.usage')", 1, "", "", true}, + {"seriesByTag('name=~cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem)')", false}, + {"seriesByTag('name=~cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem$)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem$)')", false}, + {"seriesByTag('name=~^cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem)')", false}, + {"seriesByTag('name=~^cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem$)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem$)')", false}, + {"seriesByTag('name=rps', 'key=~value')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=%' AND match(x, '^key=.*value'), Tags))", "", false}, + // test for issue #244 + {"seriesByTag('name=rps', 'key=~^value')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=value%' AND match(x, '^key=value'), Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~^value.*')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=value%' AND match(x, '^key=value.*'), Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~^valu[a-e]')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=valu%' AND match(x, '^key=valu[a-e]'), Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~^value$')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x='key=value', Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~hello.world')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=%' AND match(x, '^key=.*hello.world'), Tags))", "", false}, + {`seriesByTag('cpu=cpu-total','host=~Vladimirs-MacBook-Pro\.local')`, 0, `(Tag1='cpu=cpu-total') AND (arrayExists((x) -> x LIKE 'host=%' AND match(x, '^host=.*Vladimirs-MacBook-Pro\\.local'), Tags))`, "", false}, + // grafana multi-value variable produce this + {"seriesByTag('name=value','what=*')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + {"seriesByTag('name=value','what=*x')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%x', Tags))", "", false}, // If All masked to value with * + {"seriesByTag('name=value','what!=*x')", 0, "(Tag1='__name__=value') AND (NOT arrayExists((x) -> x LIKE 'what=%x', Tags))", "", false}, // If All masked to value with * + {"seriesByTag('name={avg,max}')", 0, "Tag1 IN ('__name__=avg','__name__=max')", "", false}, + {"seriesByTag('name=m{in}')", 0, "Tag1='__name__=min'", "", false}, + {"seriesByTag('name=m{in,ax}')", 0, "Tag1 IN ('__name__=min','__name__=max')", "", false}, + {"seriesByTag('name=m{in,ax')", 0, "", "", true}, + {"seriesByTag('name=value','what={avg,max}')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x IN ('what=avg','what=max'), Tags))", "", false}, + {"seriesByTag('name=value','what!={avg,max}')", 0, "(Tag1='__name__=value') AND (NOT arrayExists((x) -> x IN ('what=avg','what=max'), Tags))", "", false}, + // grafana workaround for multi-value variables default, masked with * + {"seriesByTag('name=value','what=~*')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + // empty tag value during autocompletion + {"seriesByTag('name=value','what=~')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + // testcases for useCarbonBehaviour=true + {"seriesByTag('what=')", 0, "NOT arrayExists((x) -> x LIKE 'what=%', Tags)", "", false}, + {"seriesByTag('name=value','what=')", 0, "(Tag1='__name__=value') AND (NOT arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, + // testcases for dontMatchMissingTags=false + {"seriesByTag('key!=value')", 0, "NOT arrayExists((x) -> x='key=value', Tags)", "", false}, + {"seriesByTag('dc!=de', 'cpu=cpu-total')", 0, "(Tag1='cpu=cpu-total') AND (NOT arrayExists((x) -> x='dc=de', Tags))", "", false}, + {"seriesByTag('dc!=de', 'cpu!=cpu-total')", 0, "(NOT arrayExists((x) -> x='dc=de', Tags)) AND (NOT arrayExists((x) -> x='cpu=cpu-total', Tags))", "", false}, + {"seriesByTag('dc!=~de|us', 'cpu=cpu-total')", 0, "(Tag1='cpu=cpu-total') AND (NOT arrayExists((x) -> x LIKE 'dc=%' AND match(x, '^dc=.*(de|us)'), Tags))", "", false}, + } + + for i, test := range table { + t.Run(test.query+"#"+strconv.Itoa(i), func(t *testing.T) { + testName := fmt.Sprintf("query: %#v", test.query) + + config := config.New() + config.ClickHouse.TagsMinInQuery = test.minTags + terms, err := ParseSeriesByTag(test.query, config) + + if test.isErr { + if err != nil { + return + } + } + require.NoError(err, testName+", err") + + var w, pw *where.Where + if err == nil { + w, pw, err = TaggedWhere(terms, true, false) + } + + if test.isErr { + require.Error(err, testName+", err") + return + } else { + assert.NoError(err, testName+", err") + } + + assert.Equal(test.where, w.String(), testName+", where") + assert.Equal(test.prewhere, pw.String(), testName+", prewhere") + }) + } +} + +func TestTaggedWhere_DontMatchMissingTagsFlag(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + table := []struct { + query string + minTags int + where string + prewhere string + isErr bool + }{ + // test for issue #195 + {"seriesByTag()", 0, "", "", true}, + {"seriesByTag('')", 0, "", "", true}, + // incomplete + {"seriesByTag('key=value)", 0, "", "", true}, + // missing quote + {"seriesByTag(key=value)", 0, "", "", true}, + // info about _tag "directory" + {"seriesByTag('key=value')", 0, "Tag1='key=value'", "", false}, + {"seriesByTag('key=value')", 1, "Tag1='key=value'", "", false}, + {"seriesByTag('key=value')", 2, "", "", true}, + // test case for wildcarded name, must be not first check + {"seriesByTag('name=*', 'key=value')", 0, "(Tag1='key=value') AND (arrayExists((x) -> x LIKE '__name__=%', Tags))", "", false}, + {"seriesByTag('name=*', 'key=value')", 1, "(Tag1='key=value') AND (arrayExists((x) -> x LIKE '__name__=%', Tags))", "", false}, + {"seriesByTag('name=*', 'key=value')", 2, "", "", true}, + {"seriesByTag('name=*', 'key=value*')", 0, "(Tag1 LIKE '__name__=%') AND (arrayExists((x) -> x LIKE 'key=value%', Tags))", "", false}, + {"seriesByTag('name=rps')", 0, "Tag1='__name__=rps'", "", false}, + {"seriesByTag('name=~cpu.usage')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu.usage')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu.usage')", false}, + {"seriesByTag('name=~cpu.usage')", 1, "", "", true}, + {"seriesByTag('name=~cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem)')", false}, + {"seriesByTag('name=~cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem$)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem$)')", false}, + {"seriesByTag('name=~^cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem)')", false}, + {"seriesByTag('name=~^cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem$)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem$)')", false}, + {"seriesByTag('name=rps', 'key=~value')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=%' AND match(x, '^key=.*value'), Tags))", "", false}, + // test for issue #244 + {"seriesByTag('name=rps', 'key=~^value')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=value%' AND match(x, '^key=value'), Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~^value.*')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=value%' AND match(x, '^key=value.*'), Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~^valu[a-e]')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=valu%' AND match(x, '^key=valu[a-e]'), Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~^value$')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x='key=value', Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~hello.world')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=%' AND match(x, '^key=.*hello.world'), Tags))", "", false}, + {`seriesByTag('cpu=cpu-total','host=~Vladimirs-MacBook-Pro\.local')`, 0, `(Tag1='cpu=cpu-total') AND (arrayExists((x) -> x LIKE 'host=%' AND match(x, '^host=.*Vladimirs-MacBook-Pro\\.local'), Tags))`, "", false}, + // grafana multi-value variable produce this + {"seriesByTag('name=value','what=*')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + {"seriesByTag('name=value','what=*x')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%x', Tags))", "", false}, // If All masked to value with * + // {"seriesByTag('name=value','what!=*x')", 0, "(Tag1='__name__=value') AND (NOT arrayExists((x) -> x LIKE 'what=%x', Tags))", "", false}, // If All masked to value with * + {"seriesByTag('name=value','what!=*x')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags) AND NOT arrayExists((x) -> x LIKE 'what=%x', Tags))", "", false}, + {"seriesByTag('name={avg,max}')", 0, "Tag1 IN ('__name__=avg','__name__=max')", "", false}, + {"seriesByTag('name=m{in}')", 0, "Tag1='__name__=min'", "", false}, + {"seriesByTag('name=m{in,ax}')", 0, "Tag1 IN ('__name__=min','__name__=max')", "", false}, + {"seriesByTag('name=m{in,ax')", 0, "", "", true}, + {"seriesByTag('name=value','what={avg,max}')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x IN ('what=avg','what=max'), Tags))", "", false}, + // {"seriesByTag('name=value','what!={avg,max}')", 0, "(Tag1='__name__=value') AND (NOT arrayExists((x) -> x IN ('what=avg','what=max'), Tags))", "", false}, + {"seriesByTag('name=value','what!={avg,max}')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags) AND NOT arrayExists((x) -> x IN ('what=avg','what=max'), Tags))", "", false}, + // grafana workaround for multi-value variables default, masked with * + {"seriesByTag('name=value','what=~*')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + // empty tag value during autocompletion + {"seriesByTag('name=value','what=~')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + // testcases for useCarbonBehaviour=false + {"seriesByTag('what=')", 0, "Tag1='what='", "", false}, + {"seriesByTag('name=value','what=')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x='what=', Tags))", "", false}, + // testcases for dontMatchMissingTags=true + {"seriesByTag('key!=value')", 0, "Tag1 LIKE 'key=%' AND NOT arrayExists((x) -> x='key=value', Tags)", "", false}, + {"seriesByTag('dc!=de', 'cpu=cpu-total')", 0, "(Tag1='cpu=cpu-total') AND (arrayExists((x) -> x LIKE 'dc=%', Tags) AND NOT arrayExists((x) -> x='dc=de', Tags))", "", false}, + {"seriesByTag('dc!=de', 'cpu!=cpu-total')", 0, "(Tag1 LIKE 'dc=%' AND NOT arrayExists((x) -> x='dc=de', Tags)) AND (arrayExists((x) -> x LIKE 'cpu=%', Tags) AND NOT arrayExists((x) -> x='cpu=cpu-total', Tags))", "", false}, + {"seriesByTag('dc!=~de|us', 'cpu=cpu-total')", 0, "(Tag1='cpu=cpu-total') AND (arrayExists((x) -> x LIKE 'dc=%', Tags) AND NOT arrayExists((x) -> x LIKE 'dc=%' AND match(x, '^dc=.*(de|us)'), Tags))", "", false}, + } + + for i, test := range table { + t.Run(test.query+"#"+strconv.Itoa(i), func(t *testing.T) { + testName := fmt.Sprintf("query: %#v", test.query) + + config := config.New() + config.ClickHouse.TagsMinInQuery = test.minTags + terms, err := ParseSeriesByTag(test.query, config) + + if test.isErr { + if err != nil { + return + } + } + require.NoError(err, testName+", err") + + var w, pw *where.Where + if err == nil { + w, pw, err = TaggedWhere(terms, false, true) + } + + if test.isErr { + require.Error(err, testName+", err") + return + } else { + assert.NoError(err, testName+", err") + } + + assert.Equal(test.where, w.String(), testName+", where") + assert.Equal(test.prewhere, pw.String(), testName+", prewhere") + }) + } +} + +func TestTaggedWhere_BothFeatureFlags(t *testing.T) { + assert := assert.New(t) + require := require.New(t) + + table := []struct { + query string + minTags int + where string + prewhere string + isErr bool + }{ + // test for issue #195 + {"seriesByTag()", 0, "", "", true}, + {"seriesByTag('')", 0, "", "", true}, + // incomplete + {"seriesByTag('key=value)", 0, "", "", true}, + // missing quote + {"seriesByTag(key=value)", 0, "", "", true}, + // info about _tag "directory" + {"seriesByTag('key=value')", 0, "Tag1='key=value'", "", false}, + {"seriesByTag('key=value')", 1, "Tag1='key=value'", "", false}, + {"seriesByTag('key=value')", 2, "", "", true}, + // test case for wildcarded name, must be not first check + {"seriesByTag('name=*', 'key=value')", 0, "(Tag1='key=value') AND (arrayExists((x) -> x LIKE '__name__=%', Tags))", "", false}, + {"seriesByTag('name=*', 'key=value')", 1, "(Tag1='key=value') AND (arrayExists((x) -> x LIKE '__name__=%', Tags))", "", false}, + {"seriesByTag('name=*', 'key=value')", 2, "", "", true}, + {"seriesByTag('name=*', 'key=value*')", 0, "(Tag1 LIKE '__name__=%') AND (arrayExists((x) -> x LIKE 'key=value%', Tags))", "", false}, + {"seriesByTag('name=rps')", 0, "Tag1='__name__=rps'", "", false}, + {"seriesByTag('name=~cpu.usage')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu.usage')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*cpu.usage')", false}, + {"seriesByTag('name=~cpu.usage')", 1, "", "", true}, + {"seriesByTag('name=~cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem)')", false}, + {"seriesByTag('name=~cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem$)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=.*(cpu|mem$)')", false}, + {"seriesByTag('name=~^cpu|mem')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem)')", false}, + {"seriesByTag('name=~^cpu|mem$')", 0, "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem$)')", "Tag1 LIKE '\\\\_\\\\_name\\\\_\\\\_=%' AND match(Tag1, '^__name__=(cpu|mem$)')", false}, + {"seriesByTag('name=rps', 'key=~value')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=%' AND match(x, '^key=.*value'), Tags))", "", false}, + // test for issue #244 + {"seriesByTag('name=rps', 'key=~^value')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=value%' AND match(x, '^key=value'), Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~^value.*')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=value%' AND match(x, '^key=value.*'), Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~^valu[a-e]')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=valu%' AND match(x, '^key=valu[a-e]'), Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~^value$')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x='key=value', Tags))", "", false}, + {"seriesByTag('name=rps', 'key=~hello.world')", 0, "(Tag1='__name__=rps') AND (arrayExists((x) -> x LIKE 'key=%' AND match(x, '^key=.*hello.world'), Tags))", "", false}, + {`seriesByTag('cpu=cpu-total','host=~Vladimirs-MacBook-Pro\.local')`, 0, `(Tag1='cpu=cpu-total') AND (arrayExists((x) -> x LIKE 'host=%' AND match(x, '^host=.*Vladimirs-MacBook-Pro\\.local'), Tags))`, "", false}, + // grafana multi-value variable produce this + {"seriesByTag('name=value','what=*')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + {"seriesByTag('name=value','what=*x')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%x', Tags))", "", false}, // If All masked to value with * + // {"seriesByTag('name=value','what!=*x')", 0, "(Tag1='__name__=value') AND (NOT arrayExists((x) -> x LIKE 'what=%x', Tags))", "", false}, // If All masked to value with * + {"seriesByTag('name=value','what!=*x')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags) AND NOT arrayExists((x) -> x LIKE 'what=%x', Tags))", "", false}, + {"seriesByTag('name={avg,max}')", 0, "Tag1 IN ('__name__=avg','__name__=max')", "", false}, + {"seriesByTag('name=m{in}')", 0, "Tag1='__name__=min'", "", false}, + {"seriesByTag('name=m{in,ax}')", 0, "Tag1 IN ('__name__=min','__name__=max')", "", false}, + {"seriesByTag('name=m{in,ax')", 0, "", "", true}, + {"seriesByTag('name=value','what={avg,max}')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x IN ('what=avg','what=max'), Tags))", "", false}, + // {"seriesByTag('name=value','what!={avg,max}')", 0, "(Tag1='__name__=value') AND (NOT arrayExists((x) -> x IN ('what=avg','what=max'), Tags))", "", false}, + {"seriesByTag('name=value','what!={avg,max}')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags) AND NOT arrayExists((x) -> x IN ('what=avg','what=max'), Tags))", "", false}, + // grafana workaround for multi-value variables default, masked with * + {"seriesByTag('name=value','what=~*')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + // empty tag value during autocompletion + {"seriesByTag('name=value','what=~')", 0, "(Tag1='__name__=value') AND (arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, // If All masked to value with * + // testcases for useCarbonBehaviour=true + {"seriesByTag('what=')", 0, "NOT arrayExists((x) -> x LIKE 'what=%', Tags)", "", false}, + {"seriesByTag('name=value','what=')", 0, "(Tag1='__name__=value') AND (NOT arrayExists((x) -> x LIKE 'what=%', Tags))", "", false}, + // testcases for dontMatchMissingTags=true + {"seriesByTag('key!=value')", 0, "Tag1 LIKE 'key=%' AND NOT arrayExists((x) -> x='key=value', Tags)", "", false}, + {"seriesByTag('dc!=de', 'cpu=cpu-total')", 0, "(Tag1='cpu=cpu-total') AND (arrayExists((x) -> x LIKE 'dc=%', Tags) AND NOT arrayExists((x) -> x='dc=de', Tags))", "", false}, + {"seriesByTag('dc!=de', 'cpu!=cpu-total')", 0, "(Tag1 LIKE 'dc=%' AND NOT arrayExists((x) -> x='dc=de', Tags)) AND (arrayExists((x) -> x LIKE 'cpu=%', Tags) AND NOT arrayExists((x) -> x='cpu=cpu-total', Tags))", "", false}, + {"seriesByTag('dc!=~de|us', 'cpu=cpu-total')", 0, "(Tag1='cpu=cpu-total') AND (arrayExists((x) -> x LIKE 'dc=%', Tags) AND NOT arrayExists((x) -> x LIKE 'dc=%' AND match(x, '^dc=.*(de|us)'), Tags))", "", false}, + } + + for i, test := range table { + t.Run(test.query+"#"+strconv.Itoa(i), func(t *testing.T) { + testName := fmt.Sprintf("query: %#v", test.query) + + config := config.New() + config.ClickHouse.TagsMinInQuery = test.minTags + terms, err := ParseSeriesByTag(test.query, config) + + if test.isErr { + if err != nil { + return + } + } + require.NoError(err, testName+", err") + + var w, pw *where.Where + if err == nil { + w, pw, err = TaggedWhere(terms, true, true) } if test.isErr { @@ -320,7 +629,16 @@ func TestTaggedFinder_whereFilter(t *testing.T) { if err != nil { t.Fatal(err) } - f := NewTagged("http://localhost:8123/", "graphite_tags", tt.dailyEnabled, false, clickhouse.Options{}, tt.taggedCosts) + f := NewTagged( + "http://localhost:8123/", + "graphite_tags", + tt.dailyEnabled, + false, + false, + false, + clickhouse.Options{}, + tt.taggedCosts, + ) got, gotDate, err := f.whereFilter(terms, tt.from, tt.until) if err != nil { t.Fatal(err) @@ -364,7 +682,7 @@ func TestTaggedFinder_Abs(t *testing.T) { if tt.cached { tf = NewCachedTags(nil) } else { - tf = NewTagged("http:/127.0.0.1:8123", "graphite_tags", true, false, clickhouse.Options{}, nil) + tf = NewTagged("http:/127.0.0.1:8123", "graphite_tags", true, false, false, false, clickhouse.Options{}, nil) } if got := string(tf.Abs(tt.v)); got != string(tt.want) { t.Errorf("TaggedDecode() =\n%q\nwant\n%q", got, string(tt.want)) diff --git a/pkg/where/where.go b/pkg/where/where.go index af5a90956..e526ef454 100644 --- a/pkg/where/where.go +++ b/pkg/where/where.go @@ -99,6 +99,14 @@ func escape(s string) string { return s } +func escapeRegex(s string) string { + s = escape(s) + if strings.Contains(s, "|") { + s = "(" + s + ")" + } + return s +} + func likeEscape(s string) string { s = strings.ReplaceAll(s, `_`, `\_`) s = strings.ReplaceAll(s, `%`, `\%`) @@ -125,9 +133,9 @@ func quote(value interface{}) string { func quoteRegex(key, value string) string { startLine := value[0] == '^' if startLine { - return fmt.Sprintf("'^%s%s%s'", key, opEq, escape(value[1:])) + return fmt.Sprintf("'^%s%s%s'", key, opEq, escapeRegex(value[1:])) } - return fmt.Sprintf("'^%s%s.*%s'", key, opEq, escape(value)) + return fmt.Sprintf("'^%s%s.*%s'", key, opEq, escapeRegex(value)) } func Like(field, s string) string { diff --git a/tests/feature_flags_both_true/carbon-clickhouse.conf.tpl b/tests/feature_flags_both_true/carbon-clickhouse.conf.tpl new file mode 100644 index 000000000..41d7ce56d --- /dev/null +++ b/tests/feature_flags_both_true/carbon-clickhouse.conf.tpl @@ -0,0 +1,45 @@ +[common] + +[data] +path = "/etc/carbon-clickhouse/data" +chunk-interval = "1s" +chunk-auto-interval = "" + +[upload.graphite_index] +type = "index" +table = "graphite_index" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +cache-ttl = "1h" + +[upload.graphite_tags] +type = "tagged" +table = "graphite_tags" +threads = 3 +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +cache-ttl = "1h" + +[upload.graphite_reverse] +type = "points-reverse" +table = "graphite_reverse" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +zero-timestamp = false + +[upload.graphite] +type = "points" +table = "graphite" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +zero-timestamp = false + +[tcp] +listen = ":2003" +enabled = true +drop-future = "0s" +drop-past = "0s" + +[logging] +file = "/etc/carbon-clickhouse/carbon-clickhouse.log" +level = "debug" diff --git a/tests/feature_flags_both_true/graphite-clickhouse.conf.tpl b/tests/feature_flags_both_true/graphite-clickhouse.conf.tpl new file mode 100644 index 000000000..9c2371186 --- /dev/null +++ b/tests/feature_flags_both_true/graphite-clickhouse.conf.tpl @@ -0,0 +1,37 @@ +[common] +listen = "{{ .GCH_ADDR }}" +max-cpu = 0 +max-metrics-in-render-answer = 10000 +max-metrics-per-target = 10000 +headers-to-log = [ "X-Ctx-Carbonapi-Uuid" ] + +[feature-flags] +use-carbon-behaviour = true +dont-match-missing-tags = true + +[clickhouse] +url = "{{ .CLICKHOUSE_URL }}/?max_rows_to_read=500000000&max_result_bytes=1073741824&readonly=2&log_queries=1" +data-timeout = "30s" + +index-table = "graphite_index" +index-use-daily = true +index-timeout = "1m" +internal-aggregation = true + +tagged-table = "graphite_tags" +tagged-autocomplete-days = 1 + +[[data-table]] +# # clickhouse table name +table = "graphite" +# # points in table are stored with reverse path +reverse = false +rollup-conf = "auto" + +[[logging]] +logger = "" +file = "{{ .GCH_DIR }}/graphite-clickhouse.log" +level = "info" +encoding = "json" +encoding-time = "iso8601" +encoding-duration = "seconds" diff --git a/tests/feature_flags_both_true/test.toml b/tests/feature_flags_both_true/test.toml new file mode 100644 index 000000000..83e039c91 --- /dev/null +++ b/tests/feature_flags_both_true/test.toml @@ -0,0 +1,979 @@ +[test] +precision = "10s" + +[[test.clickhouse]] +version = "21.3" +dir = "tests/clickhouse/rollup" + +[[test.clickhouse]] +version = "22.8" +dir = "tests/clickhouse/rollup" + +[[test.clickhouse]] +version = "24.2" +dir = "tests/clickhouse/rollup" + +[test.carbon_clickhouse] +template = "carbon-clickhouse.conf.tpl" + +[[test.graphite_clickhouse]] +template = "graphite-clickhouse.conf.tpl" + +####################################################################################### + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=q" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=qac" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=cqa" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=cqa" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "test;env=prod" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "test;env=dr" +points = [{value = 1.0, time = "rnow-10"}] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('t=') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('t=')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('t=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('t=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('t=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~')", +] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('dc!=ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('dc!=ru')", +] + +## seriesByTag('name=request_success_total.counter', 'dc!=ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'dc!=ru')", +] + +## seriesByTag('dc!=~ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('dc!=~ru')", +] + +## seriesByTag('name=request_success_total.counter','dc!=~ru') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter','dc!=~ru')", +] + +### seriesByTag('t!=~qac') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('t!=~qac')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('name=request_success_total.counter', 't!=~qac') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 't!=~qac')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')", +] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')", +] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~q*') ### + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ## seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=test') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=test')", +] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('name=test')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('name=test')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=test','env!=~stage|env') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=test','env!=~stage|env')", +] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('name=test','env!=~stage|env')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('name=test','env!=~stage|env')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# # End - Test no flags +# ######################################################################### + diff --git a/tests/feature_flags_dont_match_missing_tags/carbon-clickhouse.conf.tpl b/tests/feature_flags_dont_match_missing_tags/carbon-clickhouse.conf.tpl new file mode 100644 index 000000000..41d7ce56d --- /dev/null +++ b/tests/feature_flags_dont_match_missing_tags/carbon-clickhouse.conf.tpl @@ -0,0 +1,45 @@ +[common] + +[data] +path = "/etc/carbon-clickhouse/data" +chunk-interval = "1s" +chunk-auto-interval = "" + +[upload.graphite_index] +type = "index" +table = "graphite_index" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +cache-ttl = "1h" + +[upload.graphite_tags] +type = "tagged" +table = "graphite_tags" +threads = 3 +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +cache-ttl = "1h" + +[upload.graphite_reverse] +type = "points-reverse" +table = "graphite_reverse" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +zero-timestamp = false + +[upload.graphite] +type = "points" +table = "graphite" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +zero-timestamp = false + +[tcp] +listen = ":2003" +enabled = true +drop-future = "0s" +drop-past = "0s" + +[logging] +file = "/etc/carbon-clickhouse/carbon-clickhouse.log" +level = "debug" diff --git a/tests/feature_flags_dont_match_missing_tags/graphite-clickhouse.conf.tpl b/tests/feature_flags_dont_match_missing_tags/graphite-clickhouse.conf.tpl new file mode 100644 index 000000000..c58528f77 --- /dev/null +++ b/tests/feature_flags_dont_match_missing_tags/graphite-clickhouse.conf.tpl @@ -0,0 +1,36 @@ +[common] +listen = "{{ .GCH_ADDR }}" +max-cpu = 0 +max-metrics-in-render-answer = 10000 +max-metrics-per-target = 10000 +headers-to-log = [ "X-Ctx-Carbonapi-Uuid" ] + +[feature-flags] +dont-match-missing-tags = true + +[clickhouse] +url = "{{ .CLICKHOUSE_URL }}/?max_rows_to_read=500000000&max_result_bytes=1073741824&readonly=2&log_queries=1" +data-timeout = "30s" + +index-table = "graphite_index" +index-use-daily = true +index-timeout = "1m" +internal-aggregation = true + +tagged-table = "graphite_tags" +tagged-autocomplete-days = 1 + +[[data-table]] +# # clickhouse table name +table = "graphite" +# # points in table are stored with reverse path +reverse = false +rollup-conf = "auto" + +[[logging]] +logger = "" +file = "{{ .GCH_DIR }}/graphite-clickhouse.log" +level = "info" +encoding = "json" +encoding-time = "iso8601" +encoding-duration = "seconds" diff --git a/tests/feature_flags_dont_match_missing_tags/test.toml b/tests/feature_flags_dont_match_missing_tags/test.toml new file mode 100644 index 000000000..e58016cb6 --- /dev/null +++ b/tests/feature_flags_dont_match_missing_tags/test.toml @@ -0,0 +1,935 @@ +[test] +precision = "10s" + +[[test.clickhouse]] +version = "21.3" +dir = "tests/clickhouse/rollup" + +[[test.clickhouse]] +version = "22.8" +dir = "tests/clickhouse/rollup" + +[[test.clickhouse]] +version = "24.2" +dir = "tests/clickhouse/rollup" + +[test.carbon_clickhouse] +template = "carbon-clickhouse.conf.tpl" + +[[test.graphite_clickhouse]] +template = "graphite-clickhouse.conf.tpl" + +####################################################################################### + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=q" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=qac" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=cqa" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=cqa" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "test;env=prod" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "test;env=dr" +points = [{value = 1.0, time = "rnow-10"}] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=')", +] + +## seriesByTag('t=') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('t=')", +] + +# seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~')", +] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('dc!=ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('dc!=ru')", +] + +## seriesByTag('name=request_success_total.counter', 'dc!=ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'dc!=ru')", +] + +## seriesByTag('dc!=~ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('dc!=~ru')", +] + +## seriesByTag('name=request_success_total.counter','dc!=~ru') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter','dc!=~ru')", +] + +### seriesByTag('t!=~qac') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('t!=~qac')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('name=request_success_total.counter', 't!=~qac') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 't!=~qac')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')", +] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')", +] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~q*') ### + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ## seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=test') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=test')", +] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('name=test')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('name=test')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=test','env!=~stage|env') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=test','env!=~stage|env')", +] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('name=test','env!=~stage|env')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('name=test','env!=~stage|env')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# # End - Test no flags +# ######################################################################### + diff --git a/tests/feature_flags_false/carbon-clickhouse.conf.tpl b/tests/feature_flags_false/carbon-clickhouse.conf.tpl new file mode 100644 index 000000000..41d7ce56d --- /dev/null +++ b/tests/feature_flags_false/carbon-clickhouse.conf.tpl @@ -0,0 +1,45 @@ +[common] + +[data] +path = "/etc/carbon-clickhouse/data" +chunk-interval = "1s" +chunk-auto-interval = "" + +[upload.graphite_index] +type = "index" +table = "graphite_index" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +cache-ttl = "1h" + +[upload.graphite_tags] +type = "tagged" +table = "graphite_tags" +threads = 3 +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +cache-ttl = "1h" + +[upload.graphite_reverse] +type = "points-reverse" +table = "graphite_reverse" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +zero-timestamp = false + +[upload.graphite] +type = "points" +table = "graphite" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +zero-timestamp = false + +[tcp] +listen = ":2003" +enabled = true +drop-future = "0s" +drop-past = "0s" + +[logging] +file = "/etc/carbon-clickhouse/carbon-clickhouse.log" +level = "debug" diff --git a/tests/feature_flags_false/graphite-clickhouse.conf.tpl b/tests/feature_flags_false/graphite-clickhouse.conf.tpl new file mode 100644 index 000000000..b8584a164 --- /dev/null +++ b/tests/feature_flags_false/graphite-clickhouse.conf.tpl @@ -0,0 +1,33 @@ +[common] +listen = "{{ .GCH_ADDR }}" +max-cpu = 0 +max-metrics-in-render-answer = 10000 +max-metrics-per-target = 10000 +headers-to-log = [ "X-Ctx-Carbonapi-Uuid" ] + +[clickhouse] +url = "{{ .CLICKHOUSE_URL }}/?max_rows_to_read=500000000&max_result_bytes=1073741824&readonly=2&log_queries=1" +data-timeout = "30s" + +index-table = "graphite_index" +index-use-daily = true +index-timeout = "1m" +internal-aggregation = true + +tagged-table = "graphite_tags" +tagged-autocomplete-days = 1 + +[[data-table]] +# # clickhouse table name +table = "graphite" +# # points in table are stored with reverse path +reverse = false +rollup-conf = "auto" + +[[logging]] +logger = "" +file = "{{ .GCH_DIR }}/graphite-clickhouse.log" +level = "info" +encoding = "json" +encoding-time = "iso8601" +encoding-duration = "seconds" diff --git a/tests/feature_flags_false/test.toml b/tests/feature_flags_false/test.toml new file mode 100644 index 000000000..a6a9e6b1c --- /dev/null +++ b/tests/feature_flags_false/test.toml @@ -0,0 +1,1297 @@ +[test] +precision = "10s" + +[[test.clickhouse]] +version = "21.3" +dir = "tests/clickhouse/rollup" + +[[test.clickhouse]] +version = "22.8" +dir = "tests/clickhouse/rollup" + +[[test.clickhouse]] +version = "24.2" +dir = "tests/clickhouse/rollup" + +[test.carbon_clickhouse] +template = "carbon-clickhouse.conf.tpl" + +[[test.graphite_clickhouse]] +template = "graphite-clickhouse.conf.tpl" + +####################################################################################### + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=q" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=qac" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=cqa" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=cqa" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "test;env=prod" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "test;env=dr" +points = [{value = 1.0, time = "rnow-10"}] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=')", +] + +## seriesByTag('t=') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('t=')", +] + +# seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('dc!=ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('dc!=ru')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('name=request_success_total.counter', 'dc!=ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'dc!=ru')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('dc!=~ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('dc!=~ru')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('name=request_success_total.counter','dc!=~ru') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter','dc!=~ru')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter','dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter','dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter','dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter','dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('t!=~qac') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('t!=~qac')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('name=request_success_total.counter', 't!=~qac') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 't!=~qac')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ## seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=test') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=test')", +] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('name=test')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('name=test')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=test','env!=~stage|env') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=test','env!=~stage|env')", +] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('name=test','env!=~stage|env')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('name=test','env!=~stage|env')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# # End - Test no flags +# ######################################################################### + diff --git a/tests/feature_flags_use_carbon_behaviour/carbon-clickhouse.conf.tpl b/tests/feature_flags_use_carbon_behaviour/carbon-clickhouse.conf.tpl new file mode 100644 index 000000000..41d7ce56d --- /dev/null +++ b/tests/feature_flags_use_carbon_behaviour/carbon-clickhouse.conf.tpl @@ -0,0 +1,45 @@ +[common] + +[data] +path = "/etc/carbon-clickhouse/data" +chunk-interval = "1s" +chunk-auto-interval = "" + +[upload.graphite_index] +type = "index" +table = "graphite_index" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +cache-ttl = "1h" + +[upload.graphite_tags] +type = "tagged" +table = "graphite_tags" +threads = 3 +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +cache-ttl = "1h" + +[upload.graphite_reverse] +type = "points-reverse" +table = "graphite_reverse" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +zero-timestamp = false + +[upload.graphite] +type = "points" +table = "graphite" +url = "{{ .CLICKHOUSE_URL }}/" +timeout = "2m30s" +zero-timestamp = false + +[tcp] +listen = ":2003" +enabled = true +drop-future = "0s" +drop-past = "0s" + +[logging] +file = "/etc/carbon-clickhouse/carbon-clickhouse.log" +level = "debug" diff --git a/tests/feature_flags_use_carbon_behaviour/graphite-clickhouse.conf.tpl b/tests/feature_flags_use_carbon_behaviour/graphite-clickhouse.conf.tpl new file mode 100644 index 000000000..99b355032 --- /dev/null +++ b/tests/feature_flags_use_carbon_behaviour/graphite-clickhouse.conf.tpl @@ -0,0 +1,36 @@ +[common] +listen = "{{ .GCH_ADDR }}" +max-cpu = 0 +max-metrics-in-render-answer = 10000 +max-metrics-per-target = 10000 +headers-to-log = [ "X-Ctx-Carbonapi-Uuid" ] + +[feature-flags] +use-carbon-behaviour = true + +[clickhouse] +url = "{{ .CLICKHOUSE_URL }}/?max_rows_to_read=500000000&max_result_bytes=1073741824&readonly=2&log_queries=1" +data-timeout = "30s" + +index-table = "graphite_index" +index-use-daily = true +index-timeout = "1m" +internal-aggregation = true + +tagged-table = "graphite_tags" +tagged-autocomplete-days = 1 + +[[data-table]] +# # clickhouse table name +table = "graphite" +# # points in table are stored with reverse path +reverse = false +rollup-conf = "auto" + +[[logging]] +logger = "" +file = "{{ .GCH_DIR }}/graphite-clickhouse.log" +level = "info" +encoding = "json" +encoding-time = "iso8601" +encoding-duration = "seconds" diff --git a/tests/feature_flags_use_carbon_behaviour/test.toml b/tests/feature_flags_use_carbon_behaviour/test.toml new file mode 100644 index 000000000..61fb28012 --- /dev/null +++ b/tests/feature_flags_use_carbon_behaviour/test.toml @@ -0,0 +1,1341 @@ +[test] +precision = "10s" + +[[test.clickhouse]] +version = "21.3" +dir = "tests/clickhouse/rollup" + +[[test.clickhouse]] +version = "22.8" +dir = "tests/clickhouse/rollup" + +[[test.clickhouse]] +version = "24.2" +dir = "tests/clickhouse/rollup" + +[test.carbon_clickhouse] +template = "carbon-clickhouse.conf.tpl" + +[[test.graphite_clickhouse]] +template = "graphite-clickhouse.conf.tpl" + +####################################################################################### + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=q" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=qac" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=cqa" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "request_success_total.counter;app=test;project=Test;environment=TEST;t=cqa" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "test;env=prod" +points = [{value = 1.0, time = "rnow-10"}] + +[[test.input]] +name = "test;env=dr" +points = [{value = 1.0, time = "rnow-10"}] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('t=') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('t=')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('t=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('t=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('t=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('dc!=ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('dc!=ru')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('name=request_success_total.counter', 'dc!=ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'dc!=ru')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'dc!=ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('dc!=~ru') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('dc!=~ru')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('name=request_success_total.counter','dc!=~ru') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter','dc!=~ru')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter','dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter','dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter','dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter','dc!=~ru')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +### seriesByTag('t!=~qac') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('t!=~qac')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('t!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +## seriesByTag('name=request_success_total.counter', 't!=~qac') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 't!=~qac')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 't!=~qac')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 'logger!=default')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't!=~cq.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=q*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ## seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*') + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~c.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~q$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=cqa" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*a$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~.*c$')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')", +] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=q" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "request_success_total.counter;app=test;environment=TEST;project=Test;t=qac" +path = "seriesByTag('name=request_success_total.counter', 'app=test', 'project=Test', 'environment=TEST', 't=~^q.*')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=test') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=test')", +] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('name=test')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('name=test')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# ### seriesByTag('name=test','env!=~stage|env') ### + +[[test.render_checks]] +from = "rnow-10" +until = "rnow+1" +timeout = "1h" +targets = [ + "seriesByTag('name=test','env!=~stage|env')", +] + +[[test.render_checks.result]] +name = "test;env=dr" +path = "seriesByTag('name=test','env!=~stage|env')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +[[test.render_checks.result]] +name = "test;env=prod" +path = "seriesByTag('name=test','env!=~stage|env')" +consolidation = "avg" +start = "rnow-10" +stop = "rnow+10" +step = 10 +req_start = "rnow-10" +req_stop = "rnow+10" +values = [1.0, nan] + +# # End - Test no flags +# ######################################################################### +