From 142c29c54df7a2be391dc760e6b6ad614fe77255 Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Thu, 15 Oct 2026 01:09:35 -0400 Subject: [PATCH 1/3] feat(asap-tools): long and x5 variants of random workloads --variant stretches one dimension of a seed's workloads and keeps every random choice, so variant and base results pair query for query: long triples every lookback (max 60 min), x5 has 250 label_0 values per job (50,000 series, 500,000 samples/s). Freezes both for seed 862; the base manifests are unchanged. Co-Authored-By: Claude Opus 5.5 --- .../datasets/fake_metric/random_workloads.py | 78 +++- .../seed-862-long/workload-01.json | 363 +++++++++++++++++ .../seed-862-long/workload-02.json | 361 +++++++++++++++++ .../seed-862-long/workload-03.json | 361 +++++++++++++++++ .../seed-862-long/workload-04.json | 357 +++++++++++++++++ .../seed-862-long/workload-05.json | 361 +++++++++++++++++ .../seed-862-long/workload-06.json | 365 ++++++++++++++++++ .../seed-862-long/workload-07.json | 359 +++++++++++++++++ .../seed-862-long/workload-08.json | 351 +++++++++++++++++ .../seed-862-long/workload-09.json | 365 ++++++++++++++++++ .../seed-862-long/workload-10.json | 355 +++++++++++++++++ .../seed-862-x5/workload-01.json | 363 +++++++++++++++++ .../seed-862-x5/workload-02.json | 361 +++++++++++++++++ .../seed-862-x5/workload-03.json | 361 +++++++++++++++++ .../seed-862-x5/workload-04.json | 357 +++++++++++++++++ .../seed-862-x5/workload-05.json | 361 +++++++++++++++++ .../seed-862-x5/workload-06.json | 365 ++++++++++++++++++ .../seed-862-x5/workload-07.json | 359 +++++++++++++++++ .../seed-862-x5/workload-08.json | 351 +++++++++++++++++ .../seed-862-x5/workload-09.json | 365 ++++++++++++++++++ .../seed-862-x5/workload-10.json | 355 +++++++++++++++++ .../tests/test_random_workloads.py | 20 + 22 files changed, 7275 insertions(+), 19 deletions(-) create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-04.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10.json diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads.py b/asap-tools/experiments/datasets/fake_metric/random_workloads.py index 9e39a690..24834873 100644 --- a/asap-tools/experiments/datasets/fake_metric/random_workloads.py +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads.py @@ -62,6 +62,16 @@ ZIPF_EXPONENT = 1.1 USER_ID_UNIVERSE_SIZE = 10_000 USER_IDS_PER_LEAF = 1_000 +# A variant stretches one dimension of a seed's workloads and keeps every +# random choice, so its workloads pair with the base's: (lookback scale, +# label_0 values per job). +VARIANTS = { + "base": (1, 50), + # Lookbacks x3: 1m -> 3m, ..., 20m -> 60m; quantiles 100s -> 300s. + "long": (3, 50), + # x5 series: 50,000 at 10/s, 500,000 samples/s. + "x5": (1, 250), +} def duration(milliseconds): @@ -125,19 +135,33 @@ def rqe_query(rqe): raise ValueError(f"unknown capability {capability!r}") +def metric_labels(label_0_cardinality): + """METRIC_LABELS with `label_0_cardinality` label_0 values per job.""" + return [ + ( + {**label, "cardinality": label_0_cardinality} + if label["name"] == "label_0" + else label + ) + for label in METRIC_LABELS + ] + + def choose_temporal_time(rng): lookback_ms, intervals = rng.choice(TEMPORAL_TIMES) return lookback_ms, rng.choice(intervals) -def workload_data_facts(seed): +def workload_data_facts( + seed, leaf_count=LEAF_SERIES_COUNT, backfill_history_ms=BACKFILL_HISTORY_MS +): """Return the feeder contract shared by every workload from one seed.""" return { "feeder_seed": seed, "scrape_interval_ms": SECOND_MS // SAMPLES_PER_SEC_PER_SERIES, - "backfill_history_ms": BACKFILL_HISTORY_MS, + "backfill_history_ms": backfill_history_ms, "series": { - "leaf_count": LEAF_SERIES_COUNT, + "leaf_count": leaf_count, "ranking": { "kind": "deterministic_zipf_like", "exponent": ZIPF_EXPONENT, @@ -221,13 +245,13 @@ def sum_query(query_id, grouping, lookback_ms, interval_ms): ) -def quantile_query(query_id, grouping, phi): - rendered = f"avg by ({grouping_text(grouping)}) (quantile_over_time({phi:.2f}, data[{QUANTILE_LOOKBACK_MS // SECOND_MS}s]))" +def quantile_query(query_id, grouping, phi, lookback_ms=QUANTILE_LOOKBACK_MS): + rendered = f"avg by ({grouping_text(grouping)}) (quantile_over_time({phi:.2f}, data[{lookback_ms // SECOND_MS}s]))" return query( query_id, "quantile", grouping, - QUANTILE_LOOKBACK_MS, + lookback_ms, QUANTILE_INTERVAL_MS, rendered, "common-promql", @@ -297,22 +321,26 @@ def cardinality_query(query_id, grouping, lookback_ms, interval_ms): ) -def generate_workload(seed, index): - """Return one validated ten-query workload for `seed` and one-based `index`.""" +def generate_workload(seed, index, variant="base"): + """Return one validated ten-query workload for `seed` and one-based + `index`, stretched as VARIANTS[`variant`] says.""" + scale, label_0_cardinality = VARIANTS[variant] rng = random.Random(f"{seed}/{index}") fine, coarse = GROUPINGS[2], GROUPINGS[1] rollup_w, rollup_t = choose_temporal_time(rng) - short_w, short_t = MINUTE_MS, rng.choice((SECOND_MS, 2 * SECOND_MS)) - long_w, long_t = 20 * MINUTE_MS, rng.choice((30 * SECOND_MS, MINUTE_MS)) + rollup_w *= scale + short_w, short_t = scale * MINUTE_MS, rng.choice((SECOND_MS, 2 * SECOND_MS)) + long_w, long_t = scale * 20 * MINUTE_MS, rng.choice((30 * SECOND_MS, MINUTE_MS)) + quantile_w = scale * QUANTILE_LOOKBACK_MS quantile_specs = rng.sample( [(grouping, phi) for grouping in GROUPINGS for phi in QUANTILES], 3 ) queries = [ sum_query("q01-sum-fine", fine, rollup_w, rollup_t), sum_query("q02-sum-coarse", coarse, rollup_w, rollup_t), - quantile_query("q03-quantile", *quantile_specs[0]), - quantile_query("q04-quantile", *quantile_specs[1]), - quantile_query("q05-quantile", *quantile_specs[2]), + quantile_query("q03-quantile", *quantile_specs[0], quantile_w), + quantile_query("q04-quantile", *quantile_specs[1], quantile_w), + quantile_query("q05-quantile", *quantile_specs[2], quantile_w), topk_sum_query( "q06-topk-sum", rng.choice(GROUPINGS[:2]), @@ -343,15 +371,22 @@ def generate_workload(seed, index): ), cardinality_query("q10-cardinality", rng.choice(GROUPINGS), rollup_w, rollup_t), ] + labels = metric_labels(label_0_cardinality) workload = { "version": 1, "id": f"workload-{index:02d}", "seed": seed, - "labels": METRIC_LABELS, + "labels": labels, "samples_per_sec_per_series": SAMPLES_PER_SEC_PER_SERIES, - "data_facts": workload_data_facts(seed), + "data_facts": workload_data_facts( + seed, + math.prod(label["cardinality"] for label in labels), + scale * BACKFILL_HISTORY_MS, + ), "queries": queries, } + if variant != "base": + workload["variant"] = variant validate_workload(workload) return workload @@ -362,7 +397,8 @@ def validate_workload(workload): data_facts = workload["data_facts"] if data_facts["scrape_interval_ms"] != SECOND_MS // SAMPLES_PER_SEC_PER_SERIES: raise ValueError("data facts must declare the 100 ms scrape interval") - if data_facts["series"]["leaf_count"] != LEAF_SERIES_COUNT: + leaf_count = math.prod(label["cardinality"] for label in workload["labels"]) + if data_facts["series"]["leaf_count"] != leaf_count: raise ValueError("data facts must declare every leaf series") if data_facts["metrics"]["data_total"]["resets"] != "none": raise ValueError("the pilot counter contract must be monotonic") @@ -410,18 +446,22 @@ def validate_workload(workload): raise ValueError("a workload must contain the fine side of a roll-up chain") -def generate_workloads(seed, workload_count=WORKLOAD_COUNT): +def generate_workloads(seed, workload_count=WORKLOAD_COUNT, variant="base"): """Generate the deterministic workload suite for one experiment seed.""" - return [generate_workload(seed, index) for index in range(1, workload_count + 1)] + return [ + generate_workload(seed, index, variant) + for index in range(1, workload_count + 1) + ] def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--seed", type=int, required=True) parser.add_argument("--out", type=Path, required=True) + parser.add_argument("--variant", choices=sorted(VARIANTS), default="base") args = parser.parse_args() args.out.mkdir(parents=True, exist_ok=True) - for workload in generate_workloads(args.seed): + for workload in generate_workloads(args.seed, variant=args.variant): path = args.out / f"{workload['id']}.json" path.write_text(json.dumps(workload, indent=2, sort_keys=True) + "\n") print(path) diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01.json new file mode 100644 index 00000000..334a66f3 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01.json @@ -0,0 +1,363 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-01", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 20000, + "lookback_ms": 1800000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 20000, + "lookback_ms": 1800000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 4, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 20) * 20 - 1800) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 20) * 20 - 1800)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 20) * 20 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 20) * 20 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 20000, + "k": 8, + "lookback_ms": 1800000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q10-cardinality", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 20000, + "lookback_ms": 1800000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -1800, NOW()) AND NOW() GROUP BY region, service", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02.json new file mode 100644 index 00000000..90f033d2 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02.json @@ -0,0 +1,361 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-02", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 5000, + "lookback_ms": 900000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 5000, + "lookback_ms": 900000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 5000, + "lookback_ms": 900000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 5000, + "lookback_ms": 900000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 4, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 5) * 5 - 900) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 5) * 5 - 900)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 5) * 5 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 5) * 5 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q08-topk-count", + "interval_ms": 5000, + "lookback_ms": 900000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, increase(data_total[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 5000, + "k": 4, + "lookback_ms": 900000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 5) * 5 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 5000, + "lookback_ms": 900000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 5000, + "lookback_ms": 900000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -900, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03.json new file mode 100644 index 00000000..c02a641e --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03.json @@ -0,0 +1,361 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-03", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 1000, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 1000, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.90, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.90, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 4, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 1) * 1 - 180) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 1) * 1 - 180)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 1) * 1 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 1) * 1 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 1000, + "k": 8, + "lookback_ms": 180000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 1000, + "lookback_ms": 180000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -180, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-04.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-04.json new file mode 100644 index 00000000..3580ae7e --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-04.json @@ -0,0 +1,357 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-04", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 10000, + "lookback_ms": 1800000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 10000, + "lookback_ms": 1800000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 10000, + "lookback_ms": 1800000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 10000, + "lookback_ms": 1800000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 2000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 2000, + "k": 4, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 10) * 10 - 1800) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 10) * 10 - 1800)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 10) * 10 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 10) * 10 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 10000, + "lookback_ms": 1800000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, increase(data_total[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 10000, + "k": 4, + "lookback_ms": 1800000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 32, + "promql": "topk by (region) (8, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 8, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 10) * 10 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 10000, + "lookback_ms": 1800000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 10000, + "lookback_ms": 1800000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -1800, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05.json new file mode 100644 index 00000000..df5a7125 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05.json @@ -0,0 +1,361 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-05", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 10000, + "lookback_ms": 900000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 10000, + "lookback_ms": 900000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 10000, + "lookback_ms": 900000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 10000, + "lookback_ms": 900000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.99, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.50)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.50, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.5 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.90, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 8, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 10) * 10 - 900) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 10) * 10 - 900)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 10) * 10 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 10) * 10 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 10000, + "lookback_ms": 900000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 10000, + "k": 8, + "lookback_ms": 900000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 32, + "promql": "topk by (region) (8, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 10) * 10 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 10000, + "lookback_ms": 900000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 10000, + "lookback_ms": 900000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -900, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06.json new file mode 100644 index 00000000..eb22e7d3 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06.json @@ -0,0 +1,365 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-06", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 5000, + "lookback_ms": 900000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 5000, + "lookback_ms": 900000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 5000, + "lookback_ms": 900000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 5000, + "lookback_ms": 900000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.50)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.50, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.5 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.50)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.50, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.5 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.90, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 2000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 2000, + "k": 4, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 5) * 5 - 900) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 5) * 5 - 900)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 5) * 5 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 5) * 5 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 5000, + "lookback_ms": 900000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 5000, + "k": 8, + "lookback_ms": 900000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region", + "service" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 5) * 5 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 5000, + "lookback_ms": 900000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 5000, + "lookback_ms": 900000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -900, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07.json new file mode 100644 index 00000000..1cae4473 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07.json @@ -0,0 +1,359 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-07", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 20000, + "lookback_ms": 1800000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 20000, + "lookback_ms": 1800000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.50)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.50, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.5 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q06-topk-sum", + "interval_ms": 2000, + "lookback_ms": 180000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 2000, + "k": 4, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 20) * 20 - 1800) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 20) * 20 - 1800)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 20) * 20 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 20) * 20 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q08-topk-count", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, increase(data_total[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 20000, + "k": 4, + "lookback_ms": 1800000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region", + "service" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q10-cardinality", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 20000, + "lookback_ms": 1800000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -1800, NOW()) AND NOW() GROUP BY region", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08.json new file mode 100644 index 00000000..bc4aa1f8 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08.json @@ -0,0 +1,351 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-08", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 10000, + "lookback_ms": 900000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 10000, + "lookback_ms": 900000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 10000, + "lookback_ms": 900000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 10000, + "lookback_ms": 900000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 4, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 10) * 10 - 900) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 10) * 10 - 900)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 10) * 10 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 10) * 10 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region", + "grouping": [ + "region" + ], + "id": "q08-topk-count", + "interval_ms": 10000, + "lookback_ms": 900000, + "output_groups": 4, + "output_series_upper_bound": 32, + "promql": "topk by (region) (8, increase(data_total[15m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 10000, + "k": 8, + "lookback_ms": 900000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 10) * 10 - 900, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q10-cardinality", + "interval_ms": 10000, + "lookback_ms": 900000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 10000, + "lookback_ms": 900000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -900, NOW()) AND NOW() GROUP BY region", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09.json new file mode 100644 index 00000000..1dce21aa --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09.json @@ -0,0 +1,365 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-09", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 2000, + "lookback_ms": 180000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 2000, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 2000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 2000, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 8, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 8, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 2) * 2 - 180) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 2) * 2 - 180)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 2) * 2 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 2) * 2 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q08-topk-count", + "interval_ms": 2000, + "lookback_ms": 180000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, increase(data_total[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 2000, + "k": 4, + "lookback_ms": 180000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region", + "service" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 2) * 2 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q10-cardinality", + "interval_ms": 2000, + "lookback_ms": 180000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 2000, + "lookback_ms": 180000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -180, NOW()) AND NOW() GROUP BY region, service", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10.json new file mode 100644 index 00000000..567b5cf8 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10.json @@ -0,0 +1,355 @@ +{ + "data_facts": { + "backfill_history_ms": 3600000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 10000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-10", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 20000, + "lookback_ms": 1800000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 20000, + "lookback_ms": 1800000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.99, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.90, data[300s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 300000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 180, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region", + "grouping": [ + "region" + ], + "id": "q06-topk-sum", + "interval_ms": 2000, + "lookback_ms": 180000, + "output_groups": 4, + "output_series_upper_bound": 32, + "promql": "topk by (region) (8, sum_over_time(data[3m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 2000, + "k": 8, + "lookback_ms": 180000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 3600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 20) * 20 - 1800) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 20) * 20 - 1800)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 20) * 20 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 20) * 20 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[30m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 20000, + "k": 8, + "lookback_ms": 1800000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 3600 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 3600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 3600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 3600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 3600000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, rate(data_total[60m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region", + "service" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 3600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 20) * 20 - 1800, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q10-cardinality", + "interval_ms": 20000, + "lookback_ms": 1800000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 20000, + "lookback_ms": 1800000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -1800, NOW()) AND NOW() GROUP BY region", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "long", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01.json new file mode 100644 index 00000000..1b962723 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01.json @@ -0,0 +1,363 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-01", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 20000, + "lookback_ms": 600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 20000, + "lookback_ms": 600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 4, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 20) * 20 - 600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 20) * 20 - 600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 20) * 20 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 20) * 20 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 20000, + "k": 8, + "lookback_ms": 600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q10-cardinality", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 20000, + "lookback_ms": 600000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -600, NOW()) AND NOW() GROUP BY region, service", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02.json new file mode 100644 index 00000000..3b816263 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02.json @@ -0,0 +1,361 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-02", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 5000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 5000, + "lookback_ms": 300000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 5000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 5000, + "lookback_ms": 300000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 4, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 5) * 5 - 300) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 5) * 5 - 300)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 5) * 5 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 5) * 5 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q08-topk-count", + "interval_ms": 5000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, increase(data_total[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 5000, + "k": 4, + "lookback_ms": 300000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 5) * 5 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 5000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 5000, + "lookback_ms": 300000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -300, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03.json new file mode 100644 index 00000000..a99c8b3c --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03.json @@ -0,0 +1,361 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-03", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 1000, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 1000, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 4, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 1) * 1 - 60) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 1) * 1 - 60)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 1) * 1 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 1) * 1 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 1000, + "k": 8, + "lookback_ms": 60000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 1000, + "lookback_ms": 60000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -60, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04.json new file mode 100644 index 00000000..9f66741e --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04.json @@ -0,0 +1,357 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-04", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 10000, + "lookback_ms": 600000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 10000, + "lookback_ms": 600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 10000, + "lookback_ms": 600000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 10000, + "lookback_ms": 600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 2000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 2000, + "k": 4, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 10) * 10 - 600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 10) * 10 - 600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 10) * 10 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 10) * 10 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 10000, + "lookback_ms": 600000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, increase(data_total[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 10000, + "k": 4, + "lookback_ms": 600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 32, + "promql": "topk by (region) (8, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 8, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 10) * 10 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 10000, + "lookback_ms": 600000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 10000, + "lookback_ms": 600000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -600, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05.json new file mode 100644 index 00000000..9705c2e8 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05.json @@ -0,0 +1,361 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-05", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 10000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 10000, + "lookback_ms": 300000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 10000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 10000, + "lookback_ms": 300000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.99, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.50)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.50, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.5 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 8, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 10) * 10 - 300) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 10) * 10 - 300)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 10) * 10 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 10) * 10 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 10000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 10000, + "k": 8, + "lookback_ms": 300000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 32, + "promql": "topk by (region) (8, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 10) * 10 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 10000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 10000, + "lookback_ms": 300000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -300, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06.json new file mode 100644 index 00000000..6c263d1b --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06.json @@ -0,0 +1,365 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-06", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 5000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 5000, + "lookback_ms": 300000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 5000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 5000, + "lookback_ms": 300000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.50)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.50, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.5 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.50)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.50, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.5 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 2000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 2000, + "k": 4, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 5) * 5 - 300) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 5) * 5 - 300)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 5) * 5 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 5) * 5 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 5) * 5 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 5000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 5000, + "k": 8, + "lookback_ms": 300000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region", + "service" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 5) * 5 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 5) * 5, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality", + "interval_ms": 5000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 5000, + "lookback_ms": 300000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, job, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -300, NOW()) AND NOW() GROUP BY region, service, job", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07.json new file mode 100644 index 00000000..4eb1693d --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07.json @@ -0,0 +1,359 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-07", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 20000, + "lookback_ms": 600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 20000, + "lookback_ms": 600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.50)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.50, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.5 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q06-topk-sum", + "interval_ms": 2000, + "lookback_ms": 60000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 2000, + "k": 4, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 20) * 20 - 600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 20) * 20 - 600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 20) * 20 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 20) * 20 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q08-topk-count", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, increase(data_total[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 20000, + "k": 4, + "lookback_ms": 600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region", + "service" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q10-cardinality", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 20000, + "lookback_ms": 600000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -600, NOW()) AND NOW() GROUP BY region", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08.json new file mode 100644 index 00000000..75133fba --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08.json @@ -0,0 +1,351 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-08", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 10000, + "lookback_ms": 300000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 10000, + "lookback_ms": 300000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 10000, + "lookback_ms": 300000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 10000, + "lookback_ms": 300000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 4, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 10) * 10 - 300) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 10) * 10 - 300)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 10) * 10 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 10) * 10 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 10) * 10 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region", + "grouping": [ + "region" + ], + "id": "q08-topk-count", + "interval_ms": 10000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 32, + "promql": "topk by (region) (8, increase(data_total[5m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 10000, + "k": 8, + "lookback_ms": 300000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 10) * 10 - 300, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 10) * 10, 3) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q10-cardinality", + "interval_ms": 10000, + "lookback_ms": 300000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 10000, + "lookback_ms": 300000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -300, NOW()) AND NOW() GROUP BY region", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09.json new file mode 100644 index 00000000..2b8ca993 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09.json @@ -0,0 +1,365 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-09", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 2000, + "lookback_ms": 60000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 2000, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 2000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 2000, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.95)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "avg by (region, service, job) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q06-topk-sum", + "interval_ms": 1000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 1000, + "k": 8, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 30000, + "k": 8, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 2) * 2 - 60) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 2) * 2 - 60)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 2) * 2 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 2) * 2 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region", + "grouping": [ + "region" + ], + "id": "q08-topk-count", + "interval_ms": 2000, + "lookback_ms": 60000, + "output_groups": 4, + "output_series_upper_bound": 16, + "promql": "topk by (region) (4, increase(data_total[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 2000, + "k": 4, + "lookback_ms": 60000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 30) * 30 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 30) * 30 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 30) * 30 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 30) * 30 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 30) * 30 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 30) * 30, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q09-rate", + "interval_ms": 30000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region", + "service" + ], + "id": "q09-rate/rqe", + "interval_ms": 30000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 2) * 2 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q10-cardinality", + "interval_ms": 2000, + "lookback_ms": 60000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region", + "service" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 2000, + "lookback_ms": 60000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, service, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -60, NOW()) AND NOW() GROUP BY region, service", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10.json new file mode 100644 index 00000000..bf6652ff --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10.json @@ -0,0 +1,355 @@ +{ + "data_facts": { + "backfill_history_ms": 1200000, + "events": { + "assignment": "deterministic_rotating_pool_with_cross_leaf_overlap", + "distinct_key": "user_id", + "table": "events", + "time_column": "ts", + "user_id_universe_size": 10000, + "user_ids_per_leaf": 1000 + }, + "feeder_seed": 862, + "metrics": { + "data": { + "kind": "gauge", + "pareto_shape": 2.0, + "value_shape": "rank_scaled_pareto" + }, + "data_total": { + "increment_shape": "rank_scaled_positive_deterministic", + "kind": "counter", + "resets": "none" + } + }, + "scrape_interval_ms": 100, + "series": { + "leaf_count": 50000, + "ranking": { + "exponent": 1.1, + "kind": "deterministic_zipf_like", + "rank_scope": "leaf_series" + } + } + }, + "id": "workload-10", + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "queries": [ + { + "clickhouse_sql": "SELECT region, service, job, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job", + "grouping": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 200, + "output_series_upper_bound": 200, + "promql": "sum by (region, service, job) (sum_over_time(data[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service", + "job" + ], + "id": "q01-sum-fine/rqe", + "interval_ms": 20000, + "lookback_ms": 600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q02-sum-coarse", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "sum by (region, service) (sum_over_time(data[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "sum", + "grouping_labels": [ + "region", + "service" + ], + "id": "q02-sum-coarse/rqe", + "interval_ms": 20000, + "lookback_ms": 600000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.99)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q03-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 20, + "output_series_upper_bound": 20, + "promql": "avg by (region, service) (quantile_over_time(0.99, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region", + "service" + ], + "id": "q03-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.99 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.75)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q04-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q04-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, avg(value) AS value FROM (SELECT region, service, job, label_0, quantileExactInclusive(0.90)(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 1) * 1 - 100, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 1) * 1, 3) GROUP BY region, service, job, label_0) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q05-quantile", + "interval_ms": 1000, + "lookback_ms": 100000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": "avg by (region) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "quantile", + "grouping_labels": [ + "region" + ], + "id": "q05-quantile/rqe", + "interval_ms": 1000, + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 2) * 2 - 60, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 2) * 2, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region", + "grouping": [ + "region" + ], + "id": "q06-topk-sum", + "interval_ms": 2000, + "lookback_ms": 60000, + "output_groups": 4, + "output_series_upper_bound": 32, + "promql": "topk by (region) (8, sum_over_time(data[1m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region" + ], + "id": "q06-topk-sum/rqe", + "interval_ms": 2000, + "k": 8, + "lookback_ms": 60000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, sum(value) AS value FROM data WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q07-topk-sum", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, sum_over_time(data[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_value", + "grouping_labels": [ + "region", + "service" + ], + "id": "q07-topk-sum/rqe", + "interval_ms": 60000, + "k": 8, + "lookback_ms": 1200000, + "metric": "data" + } + ], + "sql": null, + "support": "common-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 20) * 20 - 600) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 20) * 20 - 600)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 20) * 20 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 20) * 20 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 8 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q08-topk-count", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 20, + "output_series_upper_bound": 160, + "promql": "topk by (region, service) (8, increase(data_total[10m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "topk_by_count", + "grouping_labels": [ + "region", + "service" + ], + "id": "q08-topk-count/rqe", + "interval_ms": 20000, + "k": 8, + "lookback_ms": 600000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, service, job, label_0, delta * (sampled + to_start + to_end) / sampled / 1200 AS value FROM (SELECT region, service, job, label_0, last_v - first_v AS delta, first_v, last_t - first_t AS sampled, sampled / (n - 1) AS avg_step, if(first_t - (intDiv({{ end_time }}, 60) * 60 - 1200) >= 1.1 * avg_step, avg_step / 2, first_t - (intDiv({{ end_time }}, 60) * 60 - 1200)) AS to_start_clamped, if(delta > 0 AND first_v >= 0, least(to_start_clamped, sampled * first_v / delta), to_start_clamped) AS to_start, if(intDiv({{ end_time }}, 60) * 60 - last_t >= 1.1 * avg_step, avg_step / 2, intDiv({{ end_time }}, 60) * 60 - last_t) AS to_end FROM (SELECT region, service, job, label_0, argMin(value, ts) AS first_v, argMax(value, ts) AS last_v, toFloat64(min(ts)) AS first_t, toFloat64(max(ts)) AS last_t, count() AS n FROM data_total WHERE ts >= toDateTime64(intDiv({{ end_time }}, 60) * 60 - 1200, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 60) * 60, 3) GROUP BY region, service, job, label_0 HAVING n >= 2)) ORDER BY value DESC, region, service, job, label_0 LIMIT 4 BY region, service", + "grouping": [ + "region", + "service" + ], + "id": "q09-rate", + "interval_ms": 60000, + "lookback_ms": 1200000, + "output_groups": 20, + "output_series_upper_bound": 80, + "promql": "topk by (region, service) (4, rate(data_total[20m]))", + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "rate", + "grouping_labels": [ + "region", + "service" + ], + "id": "q09-rate/rqe", + "interval_ms": 60000, + "k": 4, + "lookback_ms": 1200000, + "metric": "data_total" + } + ], + "sql": null, + "support": "counter-gated-promql" + }, + { + "clickhouse_sql": "SELECT region, uniqExact(user_id) AS value FROM events WHERE ts > toDateTime64(intDiv({{ end_time }}, 20) * 20 - 600, 3) AND ts <= toDateTime64(intDiv({{ end_time }}, 20) * 20, 3) GROUP BY region", + "grouping": [ + "region" + ], + "id": "q10-cardinality", + "interval_ms": 20000, + "lookback_ms": 600000, + "output_groups": 4, + "output_series_upper_bound": 4, + "promql": null, + "rqes": [ + { + "accuracy_sla": 0.95, + "capability": "cardinality", + "grouping_labels": [ + "region" + ], + "id": "q10-cardinality/rqe", + "interval_ms": 20000, + "lookback_ms": 600000, + "metric": "events", + "value": "user_id" + } + ], + "sql": "SELECT region, COUNT(DISTINCT user_id) FROM events WHERE ts BETWEEN DATEADD(s, -600, NOW()) AND NOW() GROUP BY region", + "support": "sql-only" + } + ], + "samples_per_sec_per_series": 10, + "seed": 862, + "variant": "x5", + "version": 1 +} diff --git a/asap-tools/experiments/tests/test_random_workloads.py b/asap-tools/experiments/tests/test_random_workloads.py index 00a8bc97..953e2c3e 100644 --- a/asap-tools/experiments/tests/test_random_workloads.py +++ b/asap-tools/experiments/tests/test_random_workloads.py @@ -81,6 +81,26 @@ def test_quantiles_cover_a_thousand_samples_per_series(self): self.assertIn("data[100s]", query["promql"]) self.assertEqual(query["interval_ms"], workloads.SECOND_MS) + def test_variants_pair_with_the_base_query_for_query(self): + # A variant stretches one dimension and keeps every random choice, so + # its results compare with the base's query for query. + base = workloads.generate_workloads(seed=862) + for variant, scale, series in (("long", 3, 10_000), ("x5", 1, 50_000)): + for b, v in zip( + base, workloads.generate_workloads(seed=862, variant=variant) + ): + with self.subTest(variant=variant, workload=b["id"]): + self.assertEqual(v["variant"], variant) + self.assertEqual(v["data_facts"]["series"]["leaf_count"], series) + for bq, vq in zip(b["queries"], v["queries"]): + self.assertEqual(vq["lookback_ms"], scale * bq["lookback_ms"]) + bq_rqe, vq_rqe = bq["rqes"][0], vq["rqes"][0] + for key in ("capability", "grouping_labels", "interval_ms"): + self.assertEqual(vq_rqe[key], bq_rqe[key]) + self.assertEqual(vq_rqe.get("phi"), bq_rqe.get("phi")) + self.assertEqual(vq_rqe.get("k"), bq_rqe.get("k")) + self.assertNotIn("variant", base[0]) + def test_manifest_declares_deterministic_feeder_facts(self): facts = workloads.generate_workloads(seed=4)[0]["data_facts"] From 7adbf10ada4d739fb0c632037d51a3a6602253e4 Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Thu, 15 Oct 2026 01:11:36 -0400 Subject: [PATCH 2/3] feat(asap-tools): saved plans for the long and x5 random workloads Each of the 20 workloads exported (sketch-bench a3753f2), solved and converted by --planner saved like the base; none drops an RQE. Run configs go under their set, random_workload/seed-862[-variant]/, as the variants share workload ids. Tests cover every set's archive. Co-Authored-By: Claude Opus 5.5 --- .../fake_metric/random_workload_artifacts.py | 8 +- .../workload-01-pilot/eval_table.json | 578 ++++++++++++++++++ .../workload-01-pilot/inference_config.yaml | 80 +++ .../workload-01-pilot/plans.json.gz | Bin 0 -> 2667 bytes .../workload-01-pilot/streaming_config.yaml | 89 +++ .../workload-02-pilot/eval_table.json | 577 +++++++++++++++++ .../workload-02-pilot/inference_config.yaml | 79 +++ .../workload-02-pilot/plans.json.gz | Bin 0 -> 2516 bytes .../workload-02-pilot/streaming_config.yaml | 89 +++ .../workload-03-pilot/eval_table.json | 520 ++++++++++++++++ .../workload-03-pilot/inference_config.yaml | 80 +++ .../workload-03-pilot/plans.json.gz | Bin 0 -> 2372 bytes .../workload-03-pilot/streaming_config.yaml | 89 +++ .../workload-04-pilot/eval_table.json | 521 ++++++++++++++++ .../workload-04-pilot/inference_config.yaml | 77 +++ .../workload-04-pilot/plans.json.gz | Bin 0 -> 2370 bytes .../workload-04-pilot/streaming_config.yaml | 89 +++ .../workload-05-pilot/eval_table.json | 573 +++++++++++++++++ .../workload-05-pilot/inference_config.yaml | 79 +++ .../workload-05-pilot/plans.json.gz | Bin 0 -> 2512 bytes .../workload-05-pilot/streaming_config.yaml | 89 +++ .../workload-06-pilot/eval_table.json | 527 ++++++++++++++++ .../workload-06-pilot/inference_config.yaml | 79 +++ .../workload-06-pilot/plans.json.gz | Bin 0 -> 2418 bytes .../workload-06-pilot/streaming_config.yaml | 89 +++ .../workload-07-pilot/eval_table.json | 574 +++++++++++++++++ .../workload-07-pilot/inference_config.yaml | 80 +++ .../workload-07-pilot/plans.json.gz | Bin 0 -> 2545 bytes .../workload-07-pilot/streaming_config.yaml | 89 +++ .../workload-08-pilot/eval_table.json | 518 ++++++++++++++++ .../workload-08-pilot/inference_config.yaml | 78 +++ .../workload-08-pilot/plans.json.gz | Bin 0 -> 2375 bytes .../workload-08-pilot/streaming_config.yaml | 89 +++ .../workload-09-pilot/eval_table.json | 529 ++++++++++++++++ .../workload-09-pilot/inference_config.yaml | 81 +++ .../workload-09-pilot/plans.json.gz | Bin 0 -> 2410 bytes .../workload-09-pilot/streaming_config.yaml | 89 +++ .../workload-10-pilot/eval_table.json | 571 +++++++++++++++++ .../workload-10-pilot/inference_config.yaml | 77 +++ .../workload-10-pilot/plans.json.gz | Bin 0 -> 2557 bytes .../workload-10-pilot/streaming_config.yaml | 89 +++ .../workload-01-pilot/eval_table.json | 574 +++++++++++++++++ .../workload-01-pilot/inference_config.yaml | 80 +++ .../workload-01-pilot/plans.json.gz | Bin 0 -> 2503 bytes .../workload-01-pilot/streaming_config.yaml | 89 +++ .../workload-02-pilot/eval_table.json | 573 +++++++++++++++++ .../workload-02-pilot/inference_config.yaml | 79 +++ .../workload-02-pilot/plans.json.gz | Bin 0 -> 2497 bytes .../workload-02-pilot/streaming_config.yaml | 89 +++ .../workload-03-pilot/eval_table.json | 520 ++++++++++++++++ .../workload-03-pilot/inference_config.yaml | 80 +++ .../workload-03-pilot/plans.json.gz | Bin 0 -> 2319 bytes .../workload-03-pilot/streaming_config.yaml | 89 +++ .../workload-04-pilot/eval_table.json | 519 ++++++++++++++++ .../workload-04-pilot/inference_config.yaml | 77 +++ .../workload-04-pilot/plans.json.gz | Bin 0 -> 2330 bytes .../workload-04-pilot/streaming_config.yaml | 89 +++ .../workload-05-pilot/eval_table.json | 571 +++++++++++++++++ .../workload-05-pilot/inference_config.yaml | 79 +++ .../workload-05-pilot/plans.json.gz | Bin 0 -> 2509 bytes .../workload-05-pilot/streaming_config.yaml | 89 +++ .../workload-06-pilot/eval_table.json | 523 ++++++++++++++++ .../workload-06-pilot/inference_config.yaml | 79 +++ .../workload-06-pilot/plans.json.gz | Bin 0 -> 2349 bytes .../workload-06-pilot/streaming_config.yaml | 89 +++ .../workload-07-pilot/eval_table.json | 572 +++++++++++++++++ .../workload-07-pilot/inference_config.yaml | 80 +++ .../workload-07-pilot/plans.json.gz | Bin 0 -> 2566 bytes .../workload-07-pilot/streaming_config.yaml | 89 +++ .../workload-08-pilot/eval_table.json | 518 ++++++++++++++++ .../workload-08-pilot/inference_config.yaml | 78 +++ .../workload-08-pilot/plans.json.gz | Bin 0 -> 2331 bytes .../workload-08-pilot/streaming_config.yaml | 89 +++ .../workload-09-pilot/eval_table.json | 525 ++++++++++++++++ .../workload-09-pilot/inference_config.yaml | 81 +++ .../workload-09-pilot/plans.json.gz | Bin 0 -> 2324 bytes .../workload-09-pilot/streaming_config.yaml | 89 +++ .../workload-10-pilot/eval_table.json | 569 +++++++++++++++++ .../workload-10-pilot/inference_config.yaml | 77 +++ .../workload-10-pilot/plans.json.gz | Bin 0 -> 2567 bytes .../workload-10-pilot/streaming_config.yaml | 89 +++ .../tests/test_random_workload_artifacts.py | 29 +- 82 files changed, 14341 insertions(+), 8 deletions(-) create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-04-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-04-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-04-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-04-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/streaming_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/eval_table.json create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/inference_config.yaml create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/plans.json.gz create mode 100644 asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/streaming_config.yaml diff --git a/asap-tools/experiments/datasets/fake_metric/random_workload_artifacts.py b/asap-tools/experiments/datasets/fake_metric/random_workload_artifacts.py index 75181522..289236a8 100644 --- a/asap-tools/experiments/datasets/fake_metric/random_workload_artifacts.py +++ b/asap-tools/experiments/datasets/fake_metric/random_workload_artifacts.py @@ -127,6 +127,12 @@ def query_groups(queries, query_key): ] +def workload_set(workload): + """The directory of `workload`'s seed and variant: seed-862, seed-862-long.""" + variant = workload.get("variant") + return f"seed-{workload['seed']}" + (f"-{variant}" if variant else "") + + def pilot_configs(workload, pilot_dir): """The five-system pilot's run configs, {path under EXPERIMENTS_DIR: content}: ASAPQuery (the saved plan in `pilot_dir`) and Prometheus in @@ -146,7 +152,7 @@ def pilot_configs(workload, pilot_dir): feed_secs = starting_delay + FEED_BOUND_QUERY_PHASES * duration seed = workload["data_facts"]["feeder_seed"] table = pilot_dir / "eval_table.json" - out_dir = Path(CONFIG_DIR) / workload["id"] + out_dir = Path(CONFIG_DIR) / workload_set(workload) / workload["id"] e2e, _ = build_config( str(table), diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/eval_table.json new file mode 100644 index 00000000..71b97d49 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/eval_table.json @@ -0,0 +1,578 @@ +{ + "inputs": { + "workload-01.json": "91737ac13f717e5b156ab3f91f5a0a85c3a7a3db5ee8ebe7649170142dceeb25" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-01", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 10000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-01/q01-sum-fine/keys/1800s", + "lookback_ms": 1800000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service, job) (sum_over_time(data[30m]))", + "rqes": [ + "random/seed=862/workload-01/q01-sum-fine/keys/1800s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-01/q02-sum-coarse/keys/1800s", + "lookback_ms": 1800000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service) (sum_over_time(data[30m]))", + "rqes": [ + "random/seed=862/workload-01/q02-sum-coarse/keys/1800s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q03-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.99 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[300s]))", + "rqes": [ + "random/seed=862/workload-01/q03-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q04-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + "random/seed=862/workload-01/q04-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q05-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + "random/seed=862/workload-01/q05-quantile/values/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/topk4_q06-topk-sum/keys/180s", + "k": 4, + "lookback_ms": 180000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region, service) (4, sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-01/topk4_q06-topk-sum/keys/180s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/topk4_q07-topk-sum/keys/3600s", + "k": 4, + "lookback_ms": 3600000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 30, + "promql": "topk by (region, service) (4, sum_over_time(data[60m]))", + "rqes": [ + "random/seed=862/workload-01/topk4_q07-topk-sum/keys/3600s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 900000.0, + "covered_min_N": 900000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-01/q01-sum-fine/keys/1800s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 1800.0, + "max_N": 900000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 900000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "1800s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 9000000.0, + "covered_min_N": 9000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-01/q02-sum-coarse/keys/1800s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 1800.0, + "max_N": 9000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 9000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "1800s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q03-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q04-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q05-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [ + "500 keys per heap read at the curves' 1000" + ], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 900000.0, + "covered_min_N": 900000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "topk", + "grid_K": 1000, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-01/topk4_q06-topk-sum/keys/180s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": 1000 + }, + "lookback_secs": 180.0, + "max_N": 900000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 900000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [ + "500 keys per heap read at the curves' 1000" + ], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 18000000.0, + "covered_min_N": 18000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "topk", + "grid_K": 1000, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-01/topk4_q07-topk-sum/keys/3600s", + "instant": false, + "interval_secs": 30, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": 1000 + }, + "lookback_secs": 3600.0, + "max_N": 18000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 18000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk4_q07-topk-sum", + "range": "3600s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/inference_config.yaml new file mode 100644 index 00000000..e8ed7e89 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/inference_config.yaml @@ -0,0 +1,80 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service) (sum_over_time(data[30m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[30m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service, job) (sum_over_time(data[30m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[30m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 176 + query: topk by (region, service) (4, sum_over_time(data[3m])) + planned_subquery: topk by (region, service) (4, sum_over_time(data[3m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 120 + query: topk by (region, service) (4, sum_over_time(data[60m])) + planned_subquery: topk by (region, service) (4, sum_over_time(data[60m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 251 + query: avg by (region, service, job) (quantile_over_time(0.99, data[300s])) + planned_subquery: quantile_over_time(0.99, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 251 + query: avg by (region) (quantile_over_time(0.95, data[300s])) + planned_subquery: quantile_over_time(0.95, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 251 + query: avg by (region, service, job) (quantile_over_time(0.75, data[300s])) + planned_subquery: quantile_over_time(0.75, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-01-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..351c0eeeaba7a13716b6734045d3f168deb8f447 GIT binary patch literal 2667 zcmZY6dpHyNAHZ?caVe2eNue^=P^lT#9zt8jiJ|9)Qq~x(1?|sCCcYNK^f%-my z7_`W@EEf#hO36~Vqn*`>{zdp-X#ifm2(e-|7WA^V6H_i5wN=fhas?Zi6ue?=f@x&crwVkwS2G z)I_HJ2MguYAG2L|uXRN@j^-*BvM`Z?@rJp@PE7RbDs@;W;2z704njvdwy*@xmK?8r z7Vw@2f|Qc*X55vsljZp6V8+jqwE1b{rVz#`C$GpmYxTG)928va;e@R6cw}g-%za$V z5=Nb`I|zUBYDyL#rL^yIRr!N~3g3dUU=Z96jqh%`gEZP{!$rZuR~@@^63`FMz=KF9 zI+<_Va!Z&czC$+7cLp2q-Qk&@Em;6%ZrO>Q7|Hh6?N2l1A z=0m0uM#~&i=ZbSe1e~NJ z^K~RKl z1E)x#;;0|_1%IX#%YIOV*CpS}wF$N@dyd~H8JWcQm=%d6yj!rV)FHWGfaS5YkcdbcqL>^G;3k*eLp zMRJCLuLn|U9Q``9Xs?xoGhKc~dDnH=P*Aqa+)b|MByOU2G8~kiz-SqOgR)!k1+EnC zjS8ey9TLJ1{Lp=+HKwmyg_`(c>U3XCX-3evzEY1K#4FvW|9WYLtG08~K_kiz61p^A zrbqae4T>BrkrQT;dOL=^>V>r>Xs6fnWpU@=(fK<$Z`6bG=>p2~DZh})k<^B4_}swE zyoLwl+H>S+G;6{d^)V${zNMt!O{beJl6FWYNMxm5^u5i>SGo6-p@w>mSac%2BQxAs zTfX_-plG3;Sp>y^TrGv1C~U5CACe!Do~65&RP_{(`3}jSnbH_h5aCAt);Y%UwR;gJ zrpMCFmTXp=ku*U-M&!b_s|+ifbb5~pLfn9mVN&vP^{MuqQ~6j910J}yuc$tqY9^(L zlZ8=o`x9*)?;Xln85B=gO?zKtl;!UuF9Q81laSuV4(^#8F~V|2`MHehRZ0LE<#M{x zsrHS-)J)&fw&1~O(C58PM%a|>a<+e^ZIi$9D8HEevnbepnv(dVE!Y>XUn_7ihmJ?Z z%6!2YT}yf8T$k{79!rAGSb9>9pDLv(f=#rW&WB75-&g!Xsr6u>Y+btW6J_vnTM4qk z(Z)sjxbU9apH5-S66%kFCDRqa;S}N(K2<3RmVmSQQugkeMd9r3&|9B>9DU*MvWW05 zJgYSwx1WUV1v@Qt?m&TV9ex$&9ar6|=Xu+Q34F&;Gdw`b9|&uH7V(=>6NhD?%Qik! zz^|{eu{0#k;(9CQ$$Q4xADCBf<`eeTd0N1fGm(a+d#sD;A6YG-rSIuyHF1WP;xT*T z*FY=ahpa2$6}xV$B%iK9^OaF+yUn8dU9n3~ihJ_CHNTCUcGA@cY~|N#p46|Go?OYE z{V|OLAib?`dd7C%U>7!tkTsY%ak~*A|?jb6|H@VOg&b3%UcslG29nz%`ZqKP?bIH$A zK_^{3nQ6}Fk;oSH204a~oEx3DWMvLDhvLv;PB`?M?_}}Me$ðYHj&O5N4gclC!p z&6*K3?AmXpQ;$?xmvP!3YPO}1pNfE--Cynyff+L=niFGH|A8ze8`G24{vH-}_tR9} zg-*%C{oVe4jK!DN8Iy#|msLO5)LQ@=RgDQDkAJZ(iS~xPT}5^{ietu+u5mBgb4+uMLe)-aZIyH2j~FoYK>`@cgKy|1aQML)Dc5u5{{$@m z^)wcE7-|I|tS2CpV4k;G?2*N<5D(j}Kt?+x@Pva0@Puy}8_LuN7AdjxkVu5~gl|I4)*fNsAGpQ%)yB&NWQton3vHnzb8|n`PBgubyFmG|l^cC+upL-T+bVLQH&)B-z4w;Cok2 z8?lX80o0YUMnJ9tQexGIMXk{%w5k7j*8Z%*^}(YwTgCE}AeeW4rK}<nr zj0)KZYi2W-L<3N;&Tb>gen&g%^* zS3pct$Q*)fPtVaJt-py*SdYp>bz7ay4l~cw2wJ4A^s)mJ?Vtq-c2F6c4U2?>E4##F z)f~iftw_zl<5HKz9X>Y&83o9)qyVKf|ECZO1+4Ckp?B+u zUa5xN0Hkf#_yf8gS@FkPC**P(vCwMR7VUe{eFF~0#l=r2f#A41Q_(_1?P>|U!DxA%4v+so=0-lcz zlDj|f%PA_*o#_0r2ZIXR2*2tfqm&&&^ z4_K$xF<5@eGVq4pVMeY@(41l9Lv=C6k3g1TG0S?e)1SKRq!}o8$Vxtba* zTX0qvr<^q1Rxy646QoMN%mC|dS_uZ-bBv@pUT`WagO-M&44yH1f#k@BFE9F}6yO?_ z&+yMjNAx4^KFw z{iW2RySDn{iuKUU#yWf!ElC8+P3PK;GYiL|c;6rK`m8a%cg%lzJ=}2AR4`I(AD#gI z-ZMr;E4H&2G>P^s{HN^nMD`OfrB#BU)C?0! zpSAL%SA^;P2)XognO2}rFEd*xO785A!c5+tL{BqIph_8W(&KGDO4fw+d{oJVOQi*@ z76n_h8|X1^wS1AMqAp%fN4+gdA2L?m%=VsdA7368?_YYvse}z+0E3B2{jK)?Pz#z3N4b&Ui3K= zTWpch-ZU_+FIcA?3Fhh?a+U)>*V&h_Zu;}O3DGQ&lf5y7OX_dZ3Z@H=zA0RtRreFQ z5LajpBSTd`R9;n^jsC6?;ZWLOlqx#$`D~Yp+`o%fV0;|xhsrd>jVq}hi7LbXHc64V zMmvR+Cn7npqIeBRjPcpNzY2=Hl!$ZH>p6MW`VlCt=Z<3^MW3q zFu@cVTBVAx50jYRbfrRr5Vn13<*FoH06_?s9HOjj=LLz1Sy(>dqEyykiBieXmpa|w zS&!;Mi3(-eS50bVLkA{1!^k~Mkf!|kX`(HhT|Mp6NY^MPo5TG_H88LfbuZk}Oz!Kt zta?Cm&8T7YBCFkv2UgZ7i85$pVK^ z7Mfif?ni8>aqJfm^0B{-jO!7eEc0|@E{7k?E_Ugp*J9IUe9wj=qvZuINU<~Y=<3*B)giHcNAHK8l58atuDHL2oeh{XhKZ%CD2Zqyc6m477xIbW zV#a!%i&5lFFh=MvzYdGON+gS1R4D*x6wnM?)b3@D+PmYlK)AaAaG>!+K}Ndx_miT z;x2y|XXkqHe!TEHY#;c*pN@|Ya=V^%pmK@wesqPvW2AMRw$^UABMYDCZy%r+BMtER zstb8~1jqxpx*awo_)WrYp{ISPbiV5DEttHM8fbs)BJ1EL$%3P##Rbl+&;>@4Y5zv*N}qV2J?Kk(l61Z5q-M9 zlDJP^x_9{cT+Z>@uJlil@vya1LGY~~fdlkN@5Z4ArHTgNk8Eu;ZAT`Evf9YeJhTQJ z!)XJckofJ}Y-KD;Mj&91h))g2aoT&ar!140MtG;KVH5tVw-U%^tdDeD&F0ZMdX9p) zAP~)Sb~{*gn3M5tka(I4EZ2B1Z7>ht6Z|RBC-`q^JIXlg#Z8m literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02-pilot/streaming_config.yaml new file mode 100644 index 00000000..955cf6fb --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-02-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 50000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 5000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 5000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 144 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 5000 + windowType: sliding +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 4096 + slideIntervalMs: 60000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 60000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/eval_table.json new file mode 100644 index 00000000..c5757b94 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/eval_table.json @@ -0,0 +1,520 @@ +{ + "inputs": { + "workload-03.json": "0884d85ddc189d536ac0ec327fd34168cafe87b1ab5e0b5453bc7d2fd1a00c80" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-03", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 10000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-03/q01-sum-fine/keys/180s", + "lookback_ms": 180000, + "metric": "data" + } + }, + "interval_secs": 1, + "promql": "sum by (region, service, job) (sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-03/q01-sum-fine/keys/180s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-03/q02-sum-coarse/keys/180s", + "lookback_ms": 180000, + "metric": "data" + } + }, + "interval_secs": 1, + "promql": "sum by (region, service) (sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-03/q02-sum-coarse/keys/180s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q03-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + "random/seed=862/workload-03/q03-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q04-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.9 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.90, data[300s]))", + "rqes": [ + "random/seed=862/workload-03/q04-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q04-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.9 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.90, data[300s]))", + "rqes": [ + "random/seed=862/workload-03/q04-quantile/values/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/topk4_q06-topk-sum/keys/180s", + "k": 4, + "lookback_ms": 180000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region) (4, sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-03/topk4_q06-topk-sum/keys/180s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/topk4_q07-topk-sum/keys/3600s", + "k": 4, + "lookback_ms": 3600000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 30, + "promql": "topk by (region) (4, sum_over_time(data[60m]))", + "rqes": [ + "random/seed=862/workload-03/topk4_q07-topk-sum/keys/3600s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 90000.0, + "covered_min_N": 90000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-03/q01-sum-fine/keys/180s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 180.0, + "max_N": 90000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 90000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 900000.0, + "covered_min_N": 900000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-03/q02-sum-coarse/keys/180s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 180.0, + "max_N": 900000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 900000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q03-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q04-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 4500000.0, + "covered_min_N": 4500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-03/topk4_q06-topk-sum/keys/180s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 4, + "keys_per_window": 2500 + }, + "lookback_secs": 180.0, + "max_N": 4500000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 4500000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 90000000.0, + "covered_min_N": 90000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-03/topk4_q07-topk-sum/keys/3600s", + "instant": false, + "interval_secs": 30, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 4, + "keys_per_window": 2500 + }, + "lookback_secs": 3600.0, + "max_N": 90000000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 90000000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q07-topk-sum", + "range": "3600s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/inference_config.yaml new file mode 100644 index 00000000..fa7a3352 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/inference_config.yaml @@ -0,0 +1,80 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 180 + query: sum by (region, service) (sum_over_time(data[3m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[3m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 180 + query: sum by (region, service, job) (sum_over_time(data[3m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[3m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 178 + query: topk by (region) (4, sum_over_time(data[3m])) + planned_subquery: topk by (region) (4, sum_over_time(data[3m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 120 + query: topk by (region) (4, sum_over_time(data[60m])) + planned_subquery: topk by (region) (4, sum_over_time(data[60m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service) (quantile_over_time(0.95, data[300s])) + planned_subquery: quantile_over_time(0.95, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service) (quantile_over_time(0.90, data[300s])) + planned_subquery: quantile_over_time(0.9, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service, job) (quantile_over_time(0.90, data[300s])) + planned_subquery: quantile_over_time(0.9, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-03-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..1bfeea874cbdabeaf049d5d86a0924d3654ec9d7 GIT binary patch literal 2372 zcmY+?dpHvc9|v%k$r>js3?Is=xBzKm~`BesKY3XGAuHeVbxr6>EgcRCHKqb z?vyk!x4CvAyvNco)Iu&{@6LN3=Y9A4Jiq7rJikA_fBlpn0)cv-%$p*-Ab+pGJ32S- zU;~8~bM3G*R)-T`foAmUCZKE6jxAXoH~UZYd7}#CQbX?g3U}15l0Rs z*sA+&E2;FOd*ci_+J`1q}G{`75H-YHzqpC;_gzn_lcHLVX!tp$1Xeu2=Z z84I7;Qf+nf{!Ziw47?3@b-M-L<4nIEGW??menO6I(YBDJwi&{uILr3by2-Mr!?Rk~ zUbO9Un+T__>RTFT$!zLX=6U4Fm0kFt)yIi^_Sju+c%{2E(8;}WIPKfwz;$YthivdO zc@2vD$$rD*4$LWdv9xpK0&Qj9HPZF~ap;Z4F`CTfD+9snL26k2oiesn&?`U>+E)4m! z!-L@4Dg(>X(4pb4(0AsZD`b{EFHKy7RSiKNuK7crL`_DFr=(o`mn|*PFPyd2fN8jA z5}NADV$FjvwA=j#^vZsgeet?7JbRP+L9gnYPx=61+5-LOUQ zUHgwC#oVNY5Vtjpn!~n3-|5$CLj5Xyxc){u3Aj_uRU^38Lky1Y#hIvAcj&+CDC9ZM z-c>m9wDTnogCF~-K;NXg>nFN7I1e|jr!4ho1$14f6jeKU?;h(Z&(cd_w3bd&nVpz+ z2|sdmJ05cd;!$5t`5qTuWsT=ahmHo-5qBc%b3XMAc8|@Ds6XLE)@1cR7%q#fPnNRL zuJ1Xk)KF3gnbdiK=O8<0ytN;)ZF*+nV`Sf4sK^ZIj|d2p83>TYI`jwLDjo6|qC$8@ zWM3Z==d&cMs_ZuYRIAl#%N|hiPrY9+H>R&%X>Q7I{$aVY1zY+aO1HzexqU9{?sm-4 z?XjjEjx|Fe>Z3Mpj@E7)v!^ZPs>Xj2LIKusLS({A;ja392xBfUIU3Tk9GlXo5qTsP z4e>^%;EXS)joqr6@vg`iugUN?b+p;Qd0sn?`qY@6*N=tj;XISN3nHW zN%d^1RKCvCc?;uZZ9fcK3=?WQsVDvBUAJ*=rL@~(>&%qcVmS9+a51j?ZD?O_&*&oE z@7=3qeQh_B`Orz!z>}{Pe(cO(_Px=;R{YWRg52Ed!qBO1hDL>Lkm_775$u+MRbSRW zy`6$I7C$fjU0!rztF90{!;$}^p^|r^9Ub}Jsj*J0vYn4=QJPY|GV#J4P0C!>hl-E#}=59X$0HY;H~eMbEikCOOKYC?<*0i zBP?GRE|x)RafvfDkl$2uYJ^R_YeCye!qQQT2==jGE40TpGo0Bqq!hfR)oiRIx1$l% zsZk6c&EJr}tx56>$!Rz=;Ua9OAfaEf@z7#u~3mUnJY*N2Ca$nB}$U{B(01h z0W*=4yIc44#TsT`^qrb3*jbT0=_hO7%`i8gGK9iqRMaz^lIEl{u-3cLPg`+}%|^UC zUD?J)9wColO0A0SAkOn+W#|wyeeQ<2Py7Q()@eC*arAzofYpvH#DIQ8Y&zO7mwuLE zgoOvF9Bad&vuy%G?#5miI8Yq$n`)s=f&@{*yii;Y$VWoiO_+EW4Ax-_i}Pk1CT7F( zecmp8qQgZF-lm8hB>#8sH3Nf6QLxQ8N{Nr~nF@Mqm;JB|A!| ziP(`|OW2W8$$L2e!#d-E`k3HqqLh*EjU1%>UsO;0%vX3NWCQqivw3Ijhc75_ z;^equ+zo&EB`?WeMD5%x{A=|FAHmUGKLvDIcsM30%4A>}yy(3D{i2pd(CTIU{-p1z*s`7(FVg~sIi`qT1PgpEn35K5Vq}i*PDIyg`qQQxO z5h|$PRuU@s!UWxADBe93L+&cSGf}@r;SL@n281I zt57T8p;)2{)T$&KMl=yL(&hx-62u(jVZ1lYV4fRhFMRgsCmo1W1E_x89|M#TiAO*$ z0c936Kwe-$xM~F=Qc%d^G=hjU-jZ{~^Qmy1LpW}w$Vzq%TcJqH9N&MhDv>M0tA*^lGPw?kEw3`VF!J@TcQT4E+ z)Gu#+#(BMJ19-%j!ihyU+vUD-+Ns?64?*1eaaw^-cF&_Dir}neIu@fvjrF)OX9phe zy|c73k-pyD)pT_9Ljzn6&s$rl@V-$Vh3}V5Yx-1n+nbzcOaJJbljkx;$bJ6#Q=?6H z`$LIVA}E1@Rj>R#wjMkC=aiP}6blifK@K&9O_6I=Q@oSuGV*`Tjgw7=pq^m=1w(86 z1<&GuC1d%VG<>A-p()PAeD7|JJl`5miLX?Rc^tXC>~^*NV|ht;yi2f{Z5=grnX$^( zN;~UX-JRJN^$lOR_}ao4KH@(nQE<_5O7rh>mcC~5MBKQ&)k)Q$Ct@-211s!-xM<|! zpqEVcAd41h6g1*SZ?Up0^dSre%gvolE7BUZMQ+r!SkJX0FKQNIcEvC&&Z;S^&d<#} zY6|LQij!3Dx`%scrB1F1f95;Q&INKlvd*|j7KFY2YQSAk#YhbGtQXPPV6D;h%vK9b zrQAbe%!3tz+Z1Qa5o<$@iL3EXIC>(EFwx9pmZjO9P_J-Bnw%?j^%2Yb$si~^Js zGhPDsVL~7Kar`^~QcBd5@)S3}1rtd)1@auUzTu5c7y7-jNSazHpTXeT-+DMee<*@_L_O4D?AY z$%@Hg`3;eBvqPDdlxvsJ=*pIoQcU02K&H)s(!v4!!6b*(fy^{q)qqp)EifN18TcA80Hx$6Gh9uuE8 z*elVC+V3tq*G(Hu%rxZRsrqZ`~ZlgWbK5KK}Ab6MYOFL-T)zsN~Z zs=N#xK2iN-!a$L$F_;|PLfL>?>i3r_Eb-X<#8Ya`foh{3*}NfYMTl`-G!vfP`9l5X zYsV+Kh-3B9Q6@|ImrM(q$Rp@73Mfqc#Mr}HRbA#-dR$h6$~3ph+nK!4I}mO=f_ziu zgZ0kyR;1o2NX`c9NH4VrebALH#MUkEOSl&# z^1p()!|-=G*@mg_flBx8XQ=C@A4b1@Agx=O%E1Ddy}8x3WKWGl7DeE_P zi37!fYdZ+fl)s5>2KG20Haj6A!w`lmoqg$9ebfjffYC=4Ioi)5c?S3o>DE&BxYg?vy5h?rC0~X`MYwzdFu{qc2-Od$i z+ARl&HR8vJSI9r4cNIGlWOQczQ5iA?AX&gp6v_c48xb$tZprHE>HN=k*!oT0mG7hG zCiwru5}7Sg&P+#xp$n#9C`{$2VprO39f~;0ZrXIS?B7nttRtvV5M#5Dkt|5k1^nuF za6H6GJ06m$w=LEp4kXhCnoiOIh+ajV2FU|Nl^~)x2|-F;V4%OC>CmS*pg-}QxIeLi zyzOj1vOP%;U__Dl*>x3VNkqZS1a%DWG*u8}^gcwPO#%9S^WZ8!6?@UZdXQgR?X1i~ zL5cveR#YfMHw-i^h|$lx%199;>Ar8JQGa1;ga-A-$4oU8Dj5(BC8i3?um`d)GQ!E2 zGbp-RQgmIPg8#8Wy;XfTgmT*E27fdWySGe(6V&v6Zm`aeh5)3#)?E<|nO2XtUYjKM z8&b{f*^s8ZRN7${Cb8adY{#vIGw~^En%NmRLVTNIo1$>?afky@b~7kbD2nAEMGXcE zq~t`7pUS)Z&^DoS)FteepT5FE-m-_V+UI5~UL>oJgjP0H7QV(v-E#U~uf)Nfpatpm zdmU>OOI<55e4?~lK|5;re7Z%FfQ85Wr+RRxuMQkqba-1MI`&v#8&vpi4e`I9s8~SY zPyt1gGh#R?K}u@`TngG;a`U3l+umAnNw(4E-(>bn!2#l}rZpgVLD_J62t~7 zpva7m+O-gJy00+k?T|Ch0PkWk8_VT;<330e zLBt=yq8TJ5EB)^g&xc}OzuXK&tr5Mf25yq+CqUd09m>$FVz-zXM<~4~Hn~J4uiDeZKJW&M9@%DAgmTNc~yMgDqY>g-s7@kx4FwE9Bh3-6M^vE z54}O77u{R$)sZ%npUU?qvh3BT8Ux9W*HGa@_2U6#T!6*-rLl#w6K1;KX7HGSCHzwn zXv#4r@y&J+OiR*iv=o%~?3J>6nss{O5|e(_PW_eg*=nUW1?o~B%d4W@gwAg4njjKw z^IWou3QNGZlD-S(rh3VEoPSp~?@UY`>9FjgO#T8w0Tz|xJV39lzFI+rtO;>)V( z8%^mheabT_C6oR-YZaz}^I7%Ei7u>PlbKmPfylp+5q29}pVzg(Dkm$aq$g)nDm=&2 zYzVqrqW^rXZ#ThMX;8UCibp{kxr&~^B~)qFnGq1|UUjw6A`RxH0J;hwyjAWI(T%1~ z_1O|wQikAUZeDUJ9(JL7GjZD_q07EJN`Z~mzSZdvn72-`o<`-rXgF(Z6g2UOg#BHM zR`5#MN)<~DZ7g7~WTVp_7q|wNxRA6_M%!=e|3tyrOw;T-rrsz>+^+nAG{%rsho_k? zsO7A>hDD#z8vWNd`t9Q`x;AXj?OF{(UlWZBit?q*tc%*i)oB|Gj%eg3HiF=5ixi)J zLbIOHmSBkEb7NLMy~xgt(V=CNSkTTFvAv?TgYGQZfJU!?byo`NI)2H`g5cck6^HGJ zxI?MOt-^JC3WkT@E2ksd7C(ZT-|JVs(4uFi0-m2q3|C^sG>ITZ??5;|S}1kcLn3?`08e6D#q?uHH`cXBuhSe>u$Hfjfg zyCcuajNV?*a+XFFAU&fz%BCNXG2sR=D3#KWoyj^muEcMxIz?i4X;gCFRikA7eqwgc zFzjuOr84WHiJVWLUbOk?H*iqqrTn8fqSKoyiZwQNQ}OqjhTDB+igS+UcH^hmH5!`j z`5S$cJvqWk=wK_ygD1r-AIfsL;|7nvYeb@pYA4=6xlfw4<+3BD)u#OxW?>79rm{{W zTZTz}zAuuhuw|?Pw@)o=-{=?JBj$z1W?@DmLkoV9Xijy^qWeH!-4K*sX=Sw8>G$PN z<%&%}RzCojC58^%ygM-1pM~K7#F@8YbK&;^2*c_}h*?j3cC(|=l{NUUx70HrED<6Jq zz2Odh=FMumHKj%!6ID^F9n!a3ZWVGJa|PGmb$U=%WZ&LXbwU`_YW+pkSjAOs{tTrd zJSzRs24ukN_(^7Q8mHrZy+3N?7Q2Lh+OXJ8VA`eF-*MVt2K-jB(6}H}7!db^!LUIw zFFc!vyBPuGyjh0iCI+BTj_I#14!VGUUCXaqcwk-B=MY1z>F~)Ab5{x$1Fo+?L4ND) zPs&fsXXenM?3_h(g*(z2?hLO<5QPXJKwvlk7{Wyp+oRX=L;6}F4=o3Ix6}5hWe=_` zqrF?j=y>kRh>-$GLffyb3!f8jH&!9VvB(zbe=FP1F>iW!Un)`xQF~MyxFbG>4bzFS zIA|ARUm=x(@GixEH3ii>@HPBBzFh(xPf6KzQk(ecwRAAqGdc`!M4amjq5 z8wTfw$QQE*hWtF7SM4`}kcxfQs!R_6?f1hok&?cMklVh9W{+JX31O_WI+c=G;Fp#} z0k9ri6d1Nsi%Eb;)x89DJqAKrDEqxrA3fw0|5?H*zA9x`kev5wR}ZI^BA}xt|KEdw zVMKX-N9113vG(P%YV!MOqAK;0Ahnm0ARPIh@*EIjTg~U{yyYiQsfZK6hhbm`_)evF z#lgvY@lD<_g%=|B=`j7aR&{QjmTzXEVVx4IKXN5w_bF@r=P7@f^%c}FM%yG{4omjR z_whv5MdEnjSsgEVCj>Peve#T;h@xW+;P1cM*^`5g3xmIs zdb>7qh6W>B1ni(<%fR4dONX1OmaxwAQbrjD8IS|v@|lPkfT=#YcTy*>L-^3tjW|m* zu88E@PkmxzRI6-34~wgmC1@U6)sv7k*l-q*0-;U_8qA=Hq#{@x}*RS_e1LC~z3ya3s$+DSy2@m}VO iGzOy1c#qEXu>$Ve)HWX<-}d$aKJR6e$PLafe18EJKHK;J literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05-pilot/streaming_config.yaml new file mode 100644 index 00000000..fb521627 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-05-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 50000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 10000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 10000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 4096 + slideIntervalMs: 60000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 60000 + windowType: tumbling +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 6000 + windowType: sliding +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/eval_table.json new file mode 100644 index 00000000..13fc4d1d --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/eval_table.json @@ -0,0 +1,527 @@ +{ + "inputs": { + "workload-06.json": "092dda4aa53cb57e6493c990db237f7dff57af5457414986293c1abf08331d25" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-06", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 10000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-06/q01-sum-fine/keys/900s", + "lookback_ms": 900000, + "metric": "data" + } + }, + "interval_secs": 5, + "promql": "sum by (region, service, job) (sum_over_time(data[15m]))", + "rqes": [ + "random/seed=862/workload-06/q01-sum-fine/keys/900s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-06/q02-sum-coarse/keys/900s", + "lookback_ms": 900000, + "metric": "data" + } + }, + "interval_secs": 5, + "promql": "sum by (region, service) (sum_over_time(data[15m]))", + "rqes": [ + "random/seed=862/workload-06/q02-sum-coarse/keys/900s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q03-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.5 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.50, data[300s]))", + "rqes": [ + "random/seed=862/workload-06/q03-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q03-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.5 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.50, data[300s]))", + "rqes": [ + "random/seed=862/workload-06/q03-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q05-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.9 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.90, data[300s]))", + "rqes": [ + "random/seed=862/workload-06/q05-quantile/values/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/topk4_q06-topk-sum/keys/180s", + "k": 4, + "lookback_ms": 180000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 2, + "promql": "topk by (region, service) (4, sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-06/topk4_q06-topk-sum/keys/180s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/topk8_q07-topk-sum/keys/3600s", + "k": 8, + "lookback_ms": 3600000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 60, + "promql": "topk by (region, service) (8, sum_over_time(data[60m]))", + "rqes": [ + "random/seed=862/workload-06/topk8_q07-topk-sum/keys/3600s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 450000.0, + "covered_min_N": 450000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-06/q01-sum-fine/keys/900s", + "instant": false, + "interval_secs": 5, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 900.0, + "max_N": 450000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 450000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "900s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 4500000.0, + "covered_min_N": 4500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-06/q02-sum-coarse/keys/900s", + "instant": false, + "interval_secs": 5, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 900.0, + "max_N": 4500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 4500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "900s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q03-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q05-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [ + "500 keys per heap read at the curves' 1000" + ], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 900000.0, + "covered_min_N": 900000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "topk", + "grid_K": 1000, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-06/topk4_q06-topk-sum/keys/180s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": 1000 + }, + "lookback_secs": 180.0, + "max_N": 900000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 900000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [ + "500 keys per heap read at the curves' 1000" + ], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 18000000.0, + "covered_min_N": 18000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "topk", + "grid_K": 1000, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-06/topk8_q07-topk-sum/keys/3600s", + "instant": false, + "interval_secs": 60, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": 1000 + }, + "lookback_secs": 3600.0, + "max_N": 18000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 18000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q07-topk-sum", + "range": "3600s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/inference_config.yaml new file mode 100644 index 00000000..121756c0 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/inference_config.yaml @@ -0,0 +1,79 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 180 + query: sum by (region, service) (sum_over_time(data[15m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[15m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 180 + query: sum by (region, service, job) (sum_over_time(data[15m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[15m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 88 + query: topk by (region, service) (4, sum_over_time(data[3m])) + planned_subquery: topk by (region, service) (4, sum_over_time(data[3m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 60 + query: topk by (region, service) (8, sum_over_time(data[60m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[60m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service, job) (quantile_over_time(0.50, data[300s])) + planned_subquery: quantile_over_time(0.5, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service) (quantile_over_time(0.50, data[300s])) + planned_subquery: quantile_over_time(0.5, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region) (quantile_over_time(0.90, data[300s])) + planned_subquery: quantile_over_time(0.9, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..6c7366cf85ffae55599d88eb79d2a23ada2517f8 GIT binary patch literal 2418 zcmY+?dpHw{9|rKbwaLk*I=ST7loDddb<^0gElSGm6gCw{Bf>)2l6xd7k2OH>UtD1vpr0eAC-!^UIj7kLq4@iZ0?1Wwp84Ww6#T?L z#N1p0#rWWp=Fu#<2@Zuf+u&O_C!l|yh1LtktJYV)*>YWKXB)8B{g7(4>dZ$p6z_y8 z#{)H!KD?N0zs4QbbNWahv*M-S5 z?amsOZVfW9zST>I&o@6O<+p=QXg_OuR)VA7|+uafr!>%?8lj=@F+; zv|Wa>KZ^Q`Dc$7-8ak)jfmPTf9x?8gI<0v4qJg3o2mM0cuDM*XhkAXH`q;jWY@ftu zNqc!bz9hQ=MLp}{hNEYwR`@NxQ5&Yy@-`wfoIL?EU&LOmWl`G6YYiPPg8n-4)?8{Im z@FBbMSxE^rtJpL2r$Isb7EbH$>)v+ZXj?U-DwxqJ2kD+nlY`~u6b|Oms4HZeFJn+W z>ebfRmaP9Sv-HT_`7bW-9hzGAnK1Jf{3@$IIi=V_U9{-^=XF`uCFRq)L)tu?F+MvU z!Hh?Ec7DbTRB7gTQKtCMZ_>f4gB zg$A>w1~Xh@#i|Xzk~dy$vow2E_4)6M&d0{OquX?!I-SjUCY%mGU(WEPB+t?v;XsDUIBC77ap_ZefI7)t8 z4xugfW?itet`zqb@~iYqv5kPgLAGK2YKEYVC#Ld6akE{~TvARQ7wG-K4~Xa#e;WKy zwYUJth!=a80`@tmY$Ad9qKU?PBZuBro^qlnV-%{as)_0B^Rs0FB_q{hL3IwN+U|II@s1q+cr3&QLBm;$hp&Gl z_#i*(9cjg%OIt*`R4fHX4`>uy`R|!YfeTh%KjK$ailzk-iCPQudG_#Di{e^K#qkJP zt1IJF_=U?oTm9@@`utn)@`tS zic7XuKo_wcB)A;F2#iHA#j9+wgmxueK@XDV_@`n^;E5H}^iYPD=8gpF-3_3cpI|w) zjauF1YlAJr$)StSSO4;-K33kRSsP>7FK(_wdf~pTqRV!uv72YJ8x9}v$gH(Hfz^x~ zgeGcV)4mp}lmVO)p=`utt~gEgCLWm`f6`Jz*=IdeiUkxh*+fEhFaolyX!W+n_6S;3 zz^7+(u2ILU(j!fuxo1RI-qF)h-(jWDk@Ickdq7$6Z`H0VasvotWxx}UN=JCjLWV;` zj}myX{{wGy^_7W{>1&rw(d`yBsKE;aZo{fbigt(@lnq=I2{xmF!%@h!KUZ;ltnQYj zyKxD>gdJ9Kh31Yoakh0n{(q(=OE0C7l#p#PTwYc~#1`{ixL;bnJ1h1y$qa^VANeK$ z9}{Unm4WBPR$ie9=b&}cV%tFf6I0qWb+i=-1__z+HG!!?!a$W9*R+Ww_1WAq)eNv> zKjf>}D!}v=_$x<#87+YkGGo~Rlm!Wy%6KdpDP_)xk}_AsZE_*W+B8atruv43LPvqi zBG*G{?XSRE5Fsc3rl6ji35(`A!`xuynr^Up?M(_tkeS;JAg?30i3`k3+2BPnfq(RM zc9<{(ht~jX6oNPaooY2;rxckSYku!F4=Rk4wfQ;Hf4l*UHQN(gL^K%o4b(|z4(r8U zrLm-AO{w!*q}}lZQ|C@zRJj2`v#XkM+*}f~Vb9LJ8?ucVe;>$m>LL*|~^dIGzJf~A}`h!UhtO*%2B07hxcfXm}_L1}bn8kAw<)SG)uc zhX`Sdpbmr3F$GfSn5%J{q&rI(kuY(6Wf0m70udJ%L7NTjfr%>%$-Gn%0*MqR{Y?@h zhjAmwVLrNUV#EZt?AxhaCW!@!i-wuOARzG>IngnYuz(_wNEKm=GW#++M%KUp!1}rv NpwNBmp!G8mz<-4uftdgR literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/streaming_config.yaml new file mode 100644 index 00000000..ff0a0cd5 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-06-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 5000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 5000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 120 + width: 1024 + slideIntervalMs: 2000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 6000 + windowType: sliding +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 480 + width: 4096 + slideIntervalMs: 60000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 60000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/eval_table.json new file mode 100644 index 00000000..93d227f0 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/eval_table.json @@ -0,0 +1,574 @@ +{ + "inputs": { + "workload-07.json": "9be510d78088784322b43830c443a351256659fe1af84b93dc1636f6b8e11058" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-07", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 10000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-07/q01-sum-fine/keys/1800s", + "lookback_ms": 1800000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service, job) (sum_over_time(data[30m]))", + "rqes": [ + "random/seed=862/workload-07/q01-sum-fine/keys/1800s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-07/q02-sum-coarse/keys/1800s", + "lookback_ms": 1800000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service) (sum_over_time(data[30m]))", + "rqes": [ + "random/seed=862/workload-07/q02-sum-coarse/keys/1800s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-07/q03-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.99 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[300s]))", + "rqes": [ + "random/seed=862/workload-07/q03-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-07/q04-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + "random/seed=862/workload-07/q04-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-07/q05-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.5 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.50, data[300s]))", + "rqes": [ + "random/seed=862/workload-07/q05-quantile/values/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-07/topk4_q06-topk-sum/keys/180s", + "k": 4, + "lookback_ms": 180000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 2, + "promql": "topk by (region) (4, sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-07/topk4_q06-topk-sum/keys/180s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-07/topk8_q07-topk-sum/keys/3600s", + "k": 8, + "lookback_ms": 3600000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 60, + "promql": "topk by (region, service) (8, sum_over_time(data[60m]))", + "rqes": [ + "random/seed=862/workload-07/topk8_q07-topk-sum/keys/3600s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 900000.0, + "covered_min_N": 900000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-07", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-07/q01-sum-fine/keys/1800s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 1800.0, + "max_N": 900000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 900000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "1800s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 9000000.0, + "covered_min_N": 9000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-07", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-07/q02-sum-coarse/keys/1800s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 1800.0, + "max_N": 9000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 9000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "1800s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-07", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-07/q03-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-07", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-07/q04-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-07", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-07/q05-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 4500000.0, + "covered_min_N": 4500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-07", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-07/topk4_q06-topk-sum/keys/180s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 4, + "keys_per_window": 2500 + }, + "lookback_secs": 180.0, + "max_N": 4500000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 4500000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [ + "500 keys per heap read at the curves' 1000" + ], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 18000000.0, + "covered_min_N": 18000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-07", + "families": [ + { + "family": "topk", + "grid_K": 1000, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-07/topk8_q07-topk-sum/keys/3600s", + "instant": false, + "interval_secs": 60, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": 1000 + }, + "lookback_secs": 3600.0, + "max_N": 18000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 18000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q07-topk-sum", + "range": "3600s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/inference_config.yaml new file mode 100644 index 00000000..4b9bdfc8 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/inference_config.yaml @@ -0,0 +1,80 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service) (sum_over_time(data[30m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[30m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service, job) (sum_over_time(data[30m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[30m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 89 + query: topk by (region) (4, sum_over_time(data[3m])) + planned_subquery: topk by (region) (4, sum_over_time(data[3m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 60 + query: topk by (region, service) (8, sum_over_time(data[60m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[60m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 251 + query: avg by (region, service, job) (quantile_over_time(0.99, data[300s])) + planned_subquery: quantile_over_time(0.99, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 251 + query: avg by (region, service, job) (quantile_over_time(0.95, data[300s])) + planned_subquery: quantile_over_time(0.95, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 251 + query: avg by (region) (quantile_over_time(0.50, data[300s])) + planned_subquery: quantile_over_time(0.5, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..5714d6f914e17f3f948a0726a2e23d29707cca40 GIT binary patch literal 2545 zcmZwFdpHyNAHZ>H52iY5Zbc4iHkXhJg+u&mY?*R9oG`hak;`VT3sH#N*<8YMo7<2R zM(&aLnK)r0x9Ol}WMY)-e&tucr-$G3`s4k4|M@(h=lgu5V+8~>ZoR&JfQ$8T@bXc) z?St{+Ss=kNW7c9YZp@UWmEW0Ge2Iaw1l227lX@F)Kv}JpRwYj`8;9NCHZuyMMkG9L znw}{P1_6#;jHb&We`T|FwRA{EK zvT}4eCS3&hB^GItBZgde$C$n9nOiFQY=bdF{!ROHQu49*^js9mu8(pDm9Pv$6C5+^ zHW;dg;?r)8buU(`G74X=EcD>+qNwJvMH#aS!?Rx&f+uSZ^@-sTejDgZ*@=4TZkbFa z2eM%2+;L}P?jxbPLtdEy8oJ08XZtU?O?9$@vW5Qjf&tREu#f5>k*ur>U3_Tbsy?OW zO21dYSw%E~^}Z^*b~BYheS%Zqi+wxwgmRAEi60^kjtSWuj*9iQ@Zv*KOQP_@i92>; zz4hx86L@u?jdt4_xK=ig*)YolsTOUiT+rnGu zbsQ~7`aQ6$853)lQ%LH==+R<3ng+^CV*MjkLnj`e##`lFBA7gh(D4#W@5<>MT%O5q zax-y0n%|v6sh9uoVr7eOmTNY*?D%n}JJ8~nOx(z#)g;qTOO!HSNf;<<_33UgIgvdy z295WZJqi|hUoN%?l zm6duY0j3m5RPw7~HzqvLS|lgiqMm#B0Gx*#t%La4X4_PmY8)$uI;(lAp>kGJvPT+ax|2j> zr_(A)U*2pq4h3ZihlY40w)K$lIu+;Il^bNy8^QyAu$$5a{u^rEPx|fvvLO-`k-oC` zM%J3#hCdaBX$qxkQkm9Oz8gBFk79rEkC1XOWC>`uC;T$coc43fbo8Vlq^S zDE`*P2tw4oc>Fe7Frmn2r~~)b--HQGG&9YuiHKCZ_Zz1Jmo|Im78{c)b31cgH5V%~p)Ah(+NG;*A5g zig9GMw!nEO3jWTzh!$z7&q$c4-tU1VjUnpYGblnVyzS?m4ZEotQE~_)8 z<0s^g&q#6#OzoB`_K0!J*lJ8rC?}1#c0;1uMH*xY3cHdDW0Qt-K{@kxM-)S%A+|)3NXh*UN9wLjI$dL z`ZeQP95}s@U^*lJ`m%`Eog{f8nDK)SJQ<_Grq|H5z2)(zG#4J~0}b2tu;7zllZ*u? z-n^3kvl-Lauo?d&@H2>gXlTB7xuzhO0#i_^@OOi?;GMhSPZ@#4=g?o}WPnBoQo_Ky z(dLC;LF{FO>q!GcofIU7(|Yugu$F=9%X0Q&FW?53L(_J3x8 z>s_va2>UJ9CtoZflHZmP!Ban6P=P;ZI07!J$Z;NC1HuhblEC2I%y=1r9_>RMuT^-6 z+;9Ex<(37ryNax8i&sM?VkfNpWN_d>?_Oi1y|LEu(fN%H0O-=|0 zE4ml@4rqz{b`*UBJ_v1;I|%)X;lnqn&Uf?cfp4Z=FXIL**t8fF20zfFnj zMuP9+1~f`C+(4y!En~QUVaSM6o@9h0_J_>$jw#HNvlJO2AX55mp*;BRUU}W5ez2L` zUh?&xPJ8EmdoRycYIRY-gPjyGKlHoeAowpkVu>UAWdQwt#Wpw=lnsFHW?ahTAIrVk zQ*7!W$CUQ7KS>I=hEw9L;UJSAHdDY`%CN}Ozu(V|PMrc@1e)9@>}K&ObpHg0?g|@1 zbn1SpLVvfFgWq(Pg9V}A6^Ft_b|BO3rb-Ss=!ihj;|SwqG literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/streaming_config.yaml new file mode 100644 index 00000000..c67c7738 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-07-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 50000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 20000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 20000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 180 + width: 1024 + slideIntervalMs: 2000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 4000 + windowType: sliding +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 480 + width: 4096 + slideIntervalMs: 60000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 60000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/eval_table.json new file mode 100644 index 00000000..1a773256 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/eval_table.json @@ -0,0 +1,518 @@ +{ + "inputs": { + "workload-08.json": "9997b5baa03117509e1d8336278ecf23851806dac73551f79c371b50f72fc032" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-08", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 10000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-08/q01-sum-fine/keys/900s", + "lookback_ms": 900000, + "metric": "data" + } + }, + "interval_secs": 10, + "promql": "sum by (region, service, job) (sum_over_time(data[15m]))", + "rqes": [ + "random/seed=862/workload-08/q01-sum-fine/keys/900s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-08/q02-sum-coarse/keys/900s", + "lookback_ms": 900000, + "metric": "data" + } + }, + "interval_secs": 10, + "promql": "sum by (region, service) (sum_over_time(data[15m]))", + "rqes": [ + "random/seed=862/workload-08/q02-sum-coarse/keys/900s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q03-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + "random/seed=862/workload-08/q03-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q04-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + "random/seed=862/workload-08/q04-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q04-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + "random/seed=862/workload-08/q04-quantile/values/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/topk4_q06-topk-sum/keys/180s", + "k": 4, + "lookback_ms": 180000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region) (4, sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-08/topk4_q06-topk-sum/keys/180s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/topk4_q07-topk-sum/keys/3600s", + "k": 4, + "lookback_ms": 3600000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 30, + "promql": "topk by (region) (4, sum_over_time(data[60m]))", + "rqes": [ + "random/seed=862/workload-08/topk4_q07-topk-sum/keys/3600s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 450000.0, + "covered_min_N": 450000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-08/q01-sum-fine/keys/900s", + "instant": false, + "interval_secs": 10, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 900.0, + "max_N": 450000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 450000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "900s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 4500000.0, + "covered_min_N": 4500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-08/q02-sum-coarse/keys/900s", + "instant": false, + "interval_secs": 10, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 900.0, + "max_N": 4500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 4500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "900s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q03-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q04-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 4500000.0, + "covered_min_N": 4500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-08/topk4_q06-topk-sum/keys/180s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 4, + "keys_per_window": 2500 + }, + "lookback_secs": 180.0, + "max_N": 4500000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 4500000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 90000000.0, + "covered_min_N": 90000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-08/topk4_q07-topk-sum/keys/3600s", + "instant": false, + "interval_secs": 30, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 4, + "keys_per_window": 2500 + }, + "lookback_secs": 3600.0, + "max_N": 90000000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 90000000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q07-topk-sum", + "range": "3600s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/inference_config.yaml new file mode 100644 index 00000000..7bcb05e9 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/inference_config.yaml @@ -0,0 +1,78 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service) (sum_over_time(data[15m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[15m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service, job) (sum_over_time(data[15m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[15m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 178 + query: topk by (region) (4, sum_over_time(data[3m])) + planned_subquery: topk by (region) (4, sum_over_time(data[3m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 120 + query: topk by (region) (4, sum_over_time(data[60m])) + planned_subquery: topk by (region) (4, sum_over_time(data[60m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service) (quantile_over_time(0.75, data[300s])) + planned_subquery: quantile_over_time(0.75, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service) (quantile_over_time(0.95, data[300s])) + planned_subquery: quantile_over_time(0.95, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region) (quantile_over_time(0.95, data[300s])) + planned_subquery: quantile_over_time(0.95, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..20afa36b5b55e559e70c7aadf094611fbeceb208 GIT binary patch literal 2375 zcmZY7dpHvc9|!Q6$y~Cz#7bl?jS`9SvJkn%CUSBwi{ySw7($K~!=w`Cp1WKc*`&iL zlA=>HmU3A%V(y3B)6P!s>v`Wj@AG-S&-ZzLe|-P?9ZCg*b+6F;fSiy3_n;dZem8=H z0CNSGgTH<}V9pW#T5aI{U~Vy8e)VhBpv8^**`OczuaE6Z1Jwm7F zVYS+1^AtkbJa%}lYg_%z)X#8x47%E5fb)0|GtgBZaDK+)RCNWy+WBsr*!hByx=>{k z&RG%$lV$BPT#iYyZ-k+1F6h0@!$1;Ot}SAyoS$pGkoF&2!|Bvp>rVvxL!(<%cN`eH zMsd>xcM%z(14t_SSl+S`)v`g=yEBjZfogdYc{I-~IMR*aeJDCyk2GVZ*MlsuNpWV* zE*5Reu$*s_J6E0(D;X=D{h`<0D5%s5;*`qZ?q6dEepL%1X2$feXv(G zmcSG`7C_eDg4FCQik=II$(7IOHc5uwzOElxT-(Sl9+rfmSD1v;9~E6>u6;jc<-2^q ztmVtgs(hR3JYPNk^xg>*l>~-MV&t>gvjcZg$vJ zDY|elWj(NAwlR#h$+n2fB}U%oEB-Q^kQRvWbaUVved-Rsc=v+2pG@py_RbTx6I%_X~KCiTOn2}PH;-#f2J!RqO z+f(bu@C8Tg=li@l>6mfGnn(I{S&P z{~vMkneQmi4vq0|01V?H+-g0tp)SLik83|?u<&W<5#4B<={mimj3Na7FK@{ zT`M!c>bEvSZoJ8e$SZGYqXo947m~(ZJKtj~3fAo{R=$PD@XZkyuuo4|`AZhyhw@-o zla>R^86|Dx3%hnFLM@O>9d`YeeYXqHM6h9_CM}q5p0EqwJApj z-%s4qjXZT|D-WA5?dC)xoQDKAVMiKJjhC9Y7nv%H;9R6;K$2Q6l5`y9-@h6=nlM>KCPKsqeckiN#&)ft6aH z(n#p{U$YT?En8PI_}UOC4<`uIm1iucS=OKEhHJ?dW_bMy1Xg%ckSj@)z$J>_$`wEN zrhjK^l!$A2Kxb+F>kMZ~&(mtcw}fIBMT&U{xoK*L|Ly_5oy_ie7L=BQ7Nz&|VOs^>jz`6S7*(3Afg+U)sEe3yU4PRD4F_tX;U*_`>6;;!Br2d|I5iN6&-e@!3IfR;1i1_IlC$Fo z{s!jZV`B|hv%Pb!m7BM_eD=))(ak3JB%eT~Kmx|bwos|CNGY5;uP|FVg#b8@;+-8g z?&XAL06g@>u4pqPK(Yxsfjjn}Es%hmynwq1FS(0?U{_u~>FuuI%Xpf|W&9(;F0Vd~ zS2#_O{0PMDWpjoR-~an(Y@Au>rMathu6Sd_*%k0BKigi@eeDuS6j4% zu=6kj`P;E`FzSo_(PBj<&knmB&0O!X*gUR_LRxAbJV7Kb0B1jLynUrWMK@joinMDR zjqe@b`_iNystyw27Oke9Ci#`74U?jvnpyogm9%}|8Vt&C*$#Uq^Y`|hen%r{I}Gb6 zYTWvUVL`?re8wAR|8d6F8!RCY-rBRbxDr%?&^i~TR#|tse?!K)U8U4ZC1;7-%F&fs)j)5m2^B29U1b7bB@lffO_eAqQD%a&^p z$^gfAC<7DY;a9*gV4|3GqHQuSF|rB{#f!ZD#S(`yl}bdJ#+dJ7RrPz*LXrWhmlS_Z z{aWl$;Z^egTbwT_9NJVm5p5c0zH6##xRO?%te_g8=mS2GkoXABEfWMU;O(VkUTZHA XTN{HMJ^+Bj;Rk>QIw|sve1N|Jl)h%C literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/streaming_config.yaml new file mode 100644 index 00000000..31dcc733 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-08-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 10000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 10000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 3000 + windowType: sliding +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 480 + width: 4096 + slideIntervalMs: 30000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/eval_table.json new file mode 100644 index 00000000..98124078 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/eval_table.json @@ -0,0 +1,529 @@ +{ + "inputs": { + "workload-09.json": "b3bf334dba7733249950dae33ac04d875f81291849da88445379c026c8138867" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-09", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 10000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-09/q01-sum-fine/keys/180s", + "lookback_ms": 180000, + "metric": "data" + } + }, + "interval_secs": 2, + "promql": "sum by (region, service, job) (sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-09/q01-sum-fine/keys/180s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-09/q02-sum-coarse/keys/180s", + "lookback_ms": 180000, + "metric": "data" + } + }, + "interval_secs": 2, + "promql": "sum by (region, service) (sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-09/q02-sum-coarse/keys/180s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q03-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + "random/seed=862/workload-09/q03-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q04-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.95, data[300s]))", + "rqes": [ + "random/seed=862/workload-09/q04-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q03-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + "random/seed=862/workload-09/q03-quantile/values/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/topk8_q06-topk-sum/keys/180s", + "k": 8, + "lookback_ms": 180000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region, service) (8, sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-09/topk8_q06-topk-sum/keys/180s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/topk8_q07-topk-sum/keys/3600s", + "k": 8, + "lookback_ms": 3600000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 30, + "promql": "topk by (region, service) (8, sum_over_time(data[60m]))", + "rqes": [ + "random/seed=862/workload-09/topk8_q07-topk-sum/keys/3600s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 90000.0, + "covered_min_N": 90000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-09/q01-sum-fine/keys/180s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 180.0, + "max_N": 90000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 90000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 900000.0, + "covered_min_N": 900000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-09/q02-sum-coarse/keys/180s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 180.0, + "max_N": 900000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 900000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q03-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q04-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [ + "500 keys per heap read at the curves' 1000" + ], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 900000.0, + "covered_min_N": 900000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "topk", + "grid_K": 1000, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-09/topk8_q06-topk-sum/keys/180s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": 1000 + }, + "lookback_secs": 180.0, + "max_N": 900000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 900000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q06-topk-sum", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [ + "500 keys per heap read at the curves' 1000" + ], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 18000000.0, + "covered_min_N": 18000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "topk", + "grid_K": 1000, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-09/topk8_q07-topk-sum/keys/3600s", + "instant": false, + "interval_secs": 30, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": 1000 + }, + "lookback_secs": 3600.0, + "max_N": 18000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 18000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q07-topk-sum", + "range": "3600s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/inference_config.yaml new file mode 100644 index 00000000..692b1ede --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/inference_config.yaml @@ -0,0 +1,81 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service) (sum_over_time(data[3m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[3m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service, job) (sum_over_time(data[3m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[3m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 175 + query: topk by (region, service) (8, sum_over_time(data[3m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[3m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 119 + query: topk by (region, service) (8, sum_over_time(data[60m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[60m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service, job) (quantile_over_time(0.75, data[300s])) + planned_subquery: quantile_over_time(0.75, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service, job) (quantile_over_time(0.95, data[300s])) + planned_subquery: quantile_over_time(0.95, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 271 + query: avg by (region, service) (quantile_over_time(0.75, data[300s])) + planned_subquery: quantile_over_time(0.75, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..b9c85d52b8b300f093db6713f19570ff9465189e GIT binary patch literal 2410 zcmY+H;(q7YBSWHU+1B@{vy^SH(ExYg#)bi-qgTcx=ymo-Mm zrLtT?k~xgIH8LDI#&Rf^+T0GW=XlQ9>;3w?KCjpBkMHmMg{6Q%MjpMl#kWENJ%hru zZ-)g30lt#0!bbd#T5Ro`9$dCgZC)!WBlHdOE1%j_l{#ceKPpO-%XxRqS#v7}*%^sF zb3Bps$-*~7ld}I{mG*ewnsQr5<|w7%*Zn{|~x7z}I^RR3Uc7veU)rK2{NhIJa_R)T=eg2A@p zW!lMwSp2YYfpwXHdM9?+%}LN4)gPF_x_75>oY0Sr%y3TOhCH+JSs-{Lb(j~Cv~!38 zpBh5>*2djXqbK@N#>z9C^I8~I6H{@D^5m%_ry)Ny@2d8P6q-v&Q$?A=Ox#Rc`xo`A z{pPo3Cz2v;sS_oO!m*7|Hy?NFp8nIEVdg0>qKtMaUc1-@{1)|w_F64@PD!KgK+j2j z(slob6`VPbELK_jm?JV^l{t`odd^HbXQ}0ajd$brhfLoeFnuMN+}X#U574kKGJGgX z@GFbvjlY#8tdTjE>mTWU7C5c0Q;yc}VG`0fp$MC6&4GmR`iUV_ z`rLg8R)M`QxbBC|i>{Q~{*}@6xr^9F_W4saKFR3?|7MX0&ds66$nN{`u3A;LC~F@9 z$2-=U+zF=%FF583u!fbxtgT#4XPrUod|L}aA@hEB&>+x|ytjRRM#F#mFwCt|X>BIf z=;}&&I=gec9UtcMMKKdQ^z}A|Yt0@Sf2~t3&%WzP|85J!fp7Q>X5nxA=Dk8mHfZS} zAxq>87!!eAtz9|#14UIANZ-HR`fO)b@7kIfh=BQab32Eo2g-)K0$)A0UaH9pWLV#^ z(i-YAI%-n>Jlg4!7Q@|gsX93erxPj~bKeS& z_0HYVqa0BV%F}0eUDRz>zFE3O%$cS;gOUO!ZTZeC*^TpT7{;+|#b-fro#dE;e+4Pv z7H3qSbj%aJg}KIZK1+`d#7*_S#l*d?-?T9QQL?G7Oxuj5Z;m`%FadNQsg2z8zU)Ug z`lrDWa?hiqh@5#@4RS||;e6JT+1Zy%M>6tRgha~^QVZ?__DXdq6^;$@IK0^TvSqhF zrxY{$*+t`VK;?Nq;7CGbA#}TpWam#Swzow#KSWdp<9d6_si|SQR910~e~$@|+SH3+ zUcdXqwBtRs07_|!CIm=%D)HXr?t#|L60hZbz-c_Qf;pK7Gz_-{Bc{Ftz{$0%>E7fa zHF>_i@y$*d8^oF-u33elr4z(>)P!lxRVNpuBC5*&_*XLj6M?EfzYulBA4ie5k6N3j z;fTs~uI$uT{3$ zIm4F=$x5+cgkK1?ReHX@Nq?rOri?z}Th^0H$y^$HUTvV2;&*dg%|JSR%OLxuk!n?P zaMs3)7o3oHk4;-P6 zvSO~0cBrLm*|0LtxYx_CBsF6wU@~zC-To$)MB(rE#vy2IMy;JWAH7Y5r@Bo%eHFwQ zL1qUZ#k;ZlZVQb4R-zANQWRR%91iM=_0cv1-COPDQ&ajNbSK@*QNJ8C$9q-iM|m9# z0tbOVN_>w$58o+ei+K*yxbAOXtx2kTgKZG?a?!FPxTJ}i#uu3nOb|15B#hdSKatFO zny%nlyk;irieIRRX*JR_q*F39$MP#8qRvIUjQ$@6RsbO&j90^H{*ld?RUT>#?79}6 z%nB<4a)AFtuc`=C{|gaxW#k(_Iv;Ox67}vN6FedD6M&2dPb{gw^DRR~kIP2MJ#0B| zj{VaaaK@)Rztu(Dy^lTrFW5N}b04|^-2|g1FWv!e+*e5b6RggVn?phpx7t{EwAD`( z3H(JuV2UKMl+<9c0&y|WUmo0Q;#s@}N`OT0?n=Wo?BYRn+iBg!ld9`Dt_%;60)m#s zVoYJZz~xzx5H6-7BBFRQNs=fc{Q9^AQPR93S<+m=V%IgQzPhJag4GSvLNHH47>_Kx zdZ`z7fPDh4Cd4pWkq=Bo zx%&$|#63kov!#}CVBQ5MOfeR@@U6Hbq=ab2n$)|IhoOHowZGzZaZxYr2BRKma?gzk z@ozk=?FYS{%D;4q(PTHIUYI>plB}vHyCVUzgIr`H{`XhumU$N3oV23B?=UYfKcGA> z;G;snTfMoBs=A@;Au2u7AIc8NN7f@s8SzXdFFHr*$zsA{!aLX^a9u2JyL^M! zIjR!469wU}mu4Ccv&%`$=>ko(gI`9_A++CgW6kPiL-nM7&7&{aCS9(t&j~#Cc>X1# z9i$h}np{JUh8NO#*S55Be|?C@E)EsTLp4Amc!L|35C>T)MF-gzkX_wHP)jKd&~Ik@ z#CKNN*$6>IS)xUa&91>ERYX9ig70}s%Kg5blwEz$5y|Y{L=W{^_)p+wLfi!GXPMP{ zk|I&WKv54ED=VT`F4k@PMMV)S+XC4&UqrT((gpdLNhj`1+8M}rk9vR>1)W=m?^O{2 zojSMIb8klIc2als!A8=u?ULfv2jBn@Ks+7*2T-p8h)SXcO1R)qSrNT%SxMYDAqoHh RY;8#Zq{kQT3SWu={sTzmVa@;m literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/streaming_config.yaml new file mode 100644 index 00000000..482636cf --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-09-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 2000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 2000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 6000 + windowType: sliding +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 480 + width: 4096 + slideIntervalMs: 30000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 60000 + windowType: sliding +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/eval_table.json new file mode 100644 index 00000000..9c848e11 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/eval_table.json @@ -0,0 +1,571 @@ +{ + "inputs": { + "workload-10.json": "fe5f7e0880c815499f13880029c60858f53ac2613048624b8abb039464146b8b" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-10", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 10000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-10/q01-sum-fine/keys/1800s", + "lookback_ms": 1800000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service, job) (sum_over_time(data[30m]))", + "rqes": [ + "random/seed=862/workload-10/q01-sum-fine/keys/1800s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-10/q02-sum-coarse/keys/1800s", + "lookback_ms": 1800000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service) (sum_over_time(data[30m]))", + "rqes": [ + "random/seed=862/workload-10/q02-sum-coarse/keys/1800s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q03-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.99 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.99, data[300s]))", + "rqes": [ + "random/seed=862/workload-10/q03-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q04-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.75, data[300s]))", + "rqes": [ + "random/seed=862/workload-10/q04-quantile/values/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q05-quantile/values/300s", + "lookback_ms": 300000, + "metric": "data", + "phi": 0.9 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.90, data[300s]))", + "rqes": [ + "random/seed=862/workload-10/q05-quantile/values/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/topk8_q06-topk-sum/keys/180s", + "k": 8, + "lookback_ms": 180000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 2, + "promql": "topk by (region) (8, sum_over_time(data[3m]))", + "rqes": [ + "random/seed=862/workload-10/topk8_q06-topk-sum/keys/180s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/topk8_q07-topk-sum/keys/3600s", + "k": 8, + "lookback_ms": 3600000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 60, + "promql": "topk by (region, service) (8, sum_over_time(data[60m]))", + "rqes": [ + "random/seed=862/workload-10/topk8_q07-topk-sum/keys/3600s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 900000.0, + "covered_min_N": 900000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-10/q01-sum-fine/keys/1800s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 1800.0, + "max_N": 900000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 900000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "1800s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 9000000.0, + "covered_min_N": 9000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-10/q02-sum-coarse/keys/1800s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 1800.0, + "max_N": 9000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 9000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "1800s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q03-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q04-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 10000, + "covered_max_N": 3000.0, + "covered_min_N": 3000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q05-quantile/values/300s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 10000, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 3000.0, + "max_covered_share": 0.0001, + "metric": "data", + "min_N": 3000.0, + "min_covered_share": 0.0001, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "300s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 4500000.0, + "covered_min_N": 4500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-10/topk8_q06-topk-sum/keys/180s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 4, + "keys_per_window": 2500 + }, + "lookback_secs": 180.0, + "max_N": 4500000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 4500000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk8_q06-topk-sum", + "range": "180s", + "stream": "data/value" + }, + { + "assumptions": [ + "500 keys per heap read at the curves' 1000" + ], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 18000000.0, + "covered_min_N": 18000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "topk", + "grid_K": 1000, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-10/topk8_q07-topk-sum/keys/3600s", + "instant": false, + "interval_secs": 60, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 100000, + "groups": 20, + "keys_per_window": 1000 + }, + "lookback_secs": 3600.0, + "max_N": 18000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 18000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q07-topk-sum", + "range": "3600s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 50, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/inference_config.yaml new file mode 100644 index 00000000..040b0032 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/inference_config.yaml @@ -0,0 +1,77 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service) (sum_over_time(data[30m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[30m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 90 + query: sum by (region, service, job) (sum_over_time(data[30m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[30m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 89 + query: topk by (region) (8, sum_over_time(data[3m])) + planned_subquery: topk by (region) (8, sum_over_time(data[3m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 60 + query: topk by (region, service) (8, sum_over_time(data[60m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[60m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 251 + query: avg by (region, service) (quantile_over_time(0.99, data[300s])) + planned_subquery: quantile_over_time(0.99, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 251 + query: avg by (region) (quantile_over_time(0.75, data[300s])) + planned_subquery: quantile_over_time(0.75, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 251 + query: avg by (region) (quantile_over_time(0.90, data[300s])) + planned_subquery: quantile_over_time(0.9, data[5m]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..9e3f2e2a51ac5b2c50f624bb8e35545303ddb8be GIT binary patch literal 2557 zcmZY7dpHvcAHZ?SiPdpABTmL4ZRT%HEGcJRKgxIlI9 zKz|(HT(+|{=cDw69c1eV>|3$bHF%i|rlF!g(?vF3ff_0gX>CG3^6K9quIjwuL-0`n zVEYs?JN(>VVGW$$*`D(g%S{drxu{Y%!lM1cbr-3YC;Fx2nPQl+cV__45mhl3uIOjD#OV|TTET$sYycU@MfWINfFfJ%!05r`76(~Qr*+RPy-(JxEi6^ z9sX@(npFL@#&B>9d+ANz?8cYn0OI9ZOL9@#B*bZQeS*NQQSFfoLj-L(>1QQsbk$h# zXp7CAJdj`i`KNCc%hz5xLpdBm>KyrcgI$x}O#b3v;R~E-6h3DSa(5P_Tr1q8#3f;{ z@%h8t>zE$J4=Z8%euDs+JETMa%MW!OlM75kJqw zX7I)Xnm#4eIyrYKZ8k~otPGTw|>>(8j@`Uqnu=TYMXnKdit%x z9Qr%t$w{Q_{AL9`FX2iFeK<(gemupO`A^q|i?4bu**E(&coVzB?r7-9)e z*Pf9tXsi*R&zyH)Sw7BO_72w3vy6&Kfb@W3n(pH7Z#c4$#D)ZQT39GsW@?ztSTFIK zs&*sZ3Qd1SFa0p9Z=*W>(l_9!`@mC8Iaq3x@N32c=c>A`3uYlsMDaQYVk2go;MQ2X zja%vNj*T*^n;s48{UggUeN1xrKlY!@QdGQsBBei~hv7YE*M@KO6w`%gXrsViW4hDd zSKL7J2Yyiv^nO?6j^#5fPA7{HW8}u*vqHwriHjVgC61fR@Rzkqp@c|RXNh(*HO7)r zTIJlc)d~;+voW6Z$oA57_RaP|8nr+5ZaS?39 zy?OoZTu1%4vS#|s)w5Ms>*gK&Hb1Wm2mL+Q{alq)8LnpN+&27#PUOHkzm?KAT)4%n zWeLI4K@t3a4EF3;A3OOVP*WvrdGsv?XQ*4cAOw1UgQcSPTq@ZG>z6NXyTIc4lOAl? z8l2}a7#fluk;8=}#qaq<+N0)`**>}zOzttQcJ0rkrS^iTY)1dBWgG{cZrke{fsJx} z=R4HCS*;_>^}0G@I532@?qrG4pZH(4C|hMboH9@=kP3ISc)>Mc@tq*$k34H3(v$Dq zcyH|jsjI&!m_2idmTA{hWa+4Cjk}O7L=mEhfdv5P?chSd=otC6-oywAIT~u= zc~9{p59zliV;1B4usq>QUn}TK&EfQz5F-_}_$V*r5$c6?cKPWO|A`Td<4lvEP1O|)$UrUyA`f{P% z?@Zqd3aI8B3o0JGbr{~9ga^xPZ0jxE%{^Wt6G**n`Vc(&qlIeF>yG3zKiyZ>vubiZ zDq@dMi*AvSDH=Wf)AY^T{UiA{OLvE~PueQQvi5A4m>Z4MTMpRyx8+TAF~_X6kr#nS zq9Lw`i@=l^$VQL38S+Q0z+V!Eo=GnA^69mAzT%?=*K}Lphg4q;pP&P#%YfldZunw|1-0?W(+*jp1gcmR)MsYVo zzo8T``f_=>6(5hmA(#}wtn@qZ5hx3C1p2R$pr6^a^?^H99qh@L*&R@L zs>W%RTm_qjS`=Z@#Kv(JQf?QXPFzx{@<=q`LrIlog}^e^ua)DOC+;XXC^(o1>{Ww zrVJ51moy(Q*=AsL8jcyzqf@Z>V|Sfm_t{w3Vf)u3?fmMI6#SmSRPdPp62u^sCZ^;9 z(FUM)_xheIbVNOJzl#B!9&S5?|O`TEQMSi}202S8wQ2+n{ literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/streaming_config.yaml new file mode 100644 index 00000000..1c4afbd3 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-long/workload-10-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 50000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 20000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 20000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 360 + width: 1024 + slideIntervalMs: 2000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 4000 + windowType: sliding +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 480 + width: 4096 + slideIntervalMs: 60000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 60000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/eval_table.json new file mode 100644 index 00000000..ea24f386 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/eval_table.json @@ -0,0 +1,574 @@ +{ + "inputs": { + "workload-01.json": "9a11ea2e20d19f2c710fb9866b23f7371fc12061411208c876bc6cf3004d8435" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-01", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 50000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-01/q01-sum-fine/keys/600s", + "lookback_ms": 600000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service, job) (sum_over_time(data[10m]))", + "rqes": [ + "random/seed=862/workload-01/q01-sum-fine/keys/600s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-01/q02-sum-coarse/keys/600s", + "lookback_ms": 600000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service) (sum_over_time(data[10m]))", + "rqes": [ + "random/seed=862/workload-01/q02-sum-coarse/keys/600s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.99 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[100s]))", + "rqes": [ + "random/seed=862/workload-01/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q04-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + "random/seed=862/workload-01/q04-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q05-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + "random/seed=862/workload-01/q05-quantile/values/100s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/topk4_q06-topk-sum/keys/60s", + "k": 4, + "lookback_ms": 60000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region, service) (4, sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-01/topk4_q06-topk-sum/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/topk4_q07-topk-sum/keys/1200s", + "k": 4, + "lookback_ms": 1200000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 30, + "promql": "topk by (region, service) (4, sum_over_time(data[20m]))", + "rqes": [ + "random/seed=862/workload-01/topk4_q07-topk-sum/keys/1200s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-01/q01-sum-fine/keys/600s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 600.0, + "max_N": 1500000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "600s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 15000000.0, + "covered_min_N": 15000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-01/q02-sum-coarse/keys/600s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 600.0, + "max_N": 15000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 15000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "600s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q03-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q04-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-01/q05-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-01/topk4_q06-topk-sum/keys/60s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 60.0, + "max_N": 1500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 30000000.0, + "covered_min_N": 30000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-01", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-01/topk4_q07-topk-sum/keys/1200s", + "instant": false, + "interval_secs": 30, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 1200.0, + "max_N": 30000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 30000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk4_q07-topk-sum", + "range": "1200s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/inference_config.yaml new file mode 100644 index 00000000..9a005085 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/inference_config.yaml @@ -0,0 +1,80 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service) (sum_over_time(data[10m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[10m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service, job) (sum_over_time(data[10m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[10m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 59 + query: topk by (region, service) (4, sum_over_time(data[1m])) + planned_subquery: topk by (region, service) (4, sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 40 + query: topk by (region, service) (4, sum_over_time(data[20m])) + planned_subquery: topk by (region, service) (4, sum_over_time(data[20m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region, service, job) (quantile_over_time(0.99, data[100s])) + planned_subquery: quantile_over_time(0.99, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region) (quantile_over_time(0.95, data[100s])) + planned_subquery: quantile_over_time(0.95, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region, service, job) (quantile_over_time(0.75, data[100s])) + planned_subquery: quantile_over_time(0.75, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..e680d181513260ef8f5c5fda78b44b11998f40a6 GIT binary patch literal 2503 zcmZY7dpy(o9|v&7@37*?iefI&TyhuX*3plX@x|n>=^^AtF1h5IYbW+|VzJD~B~8PY z+o*POjHQE!;jkJRT464AFpRZDPW1Ep{T@7?f4m-__v7<;eLjD@l~7`0=Dq_V`!^%6 z`GrU8hD1k%3;k6Jzc6`G4z_965ket~@xJ(bQID-AR*Y~%+_D@d(u@H4zeIk>|JeE` z^+$0Lu>M^k_gER#%Jo~N!#Rr|Qu-x)Bz0>9*IcB_({FNrl!-OaE-9xJW>?QSyB3tQ z(p_zgOXLqEaH`^+aQEO$Ch=Z-HA0-gcyxbiTu-!}|AZI1h`af9sqx&`jTt>^D^FMS zbyOl%gIfKu#>Zkcrz;OI{ixuxS^(!?ig3~H8R1m(k|JFC9D4!>ArE9GM~Iib`)d-N zbCxY<@~#x11-N?AtCNVNXYH?_6cYPZJ_a|L)G;fqU3*tBw5a4LN)S_GhSpMH_O(V{ zxASO#mztpefRq*Iou(f=2InyvhKN07;aKx8mT7$@x^tuqdCIJgVzKdukrIucYSi}b zt3Bk%yrpP)ltmSZz^?tNss&GqQuu+!e^046h3g1rV4pI~bu!umC{WLIg4a-c@;lK@ zO;jMFJ_N)1_&%^?t=BpUuG>SAH6mJ<@(Oj-^T^z_*8+CD@381C1U-{)Nx&6(3C`wQ~Ul11i>r`~gl!cku(d7n&qh#xytL#BU z0z=+ZxpXGW(|deR@G*2eUqvh z_St-WA7XlI_2gQ#^MgAzh$K=#ih-l(<`}hq=p>|6T;+g2L-$iH(@e4kAO5b1-f1I6 z_OQ#~(qpw+K3!~w<66F`8ih)q)lge`jsNNNNK>(ZlZ@zBMH?kL z!T1eXYw9HY!z}Yh_>@IW*wL1G56apcqcYBA4eoFvXCQb09|!n7x!e`7_6>dF2Oz>aLUx3WyuQH3c`#^E8OPiZM!^leIB@@lw(kzx%Dy6nw zr#02&QSj1ybQ0(Rf!2=5?+zOQ8B%jQO+%3lUV!w1?{tQHyn&&eQU!2C^WRAZflPSe z$rruotRi|mspzf$pf9XYDiA5_w-w1chPp=?tJiTNoiXaf{ji8@;#M7zG*rn@ZR8*~ z-R@7Qe}I@;$LC*U!fY;b7eT1R*W(1^Tj)2Im+DFnGHvzR2$Id~hZ+jwSXw&8{ihG} zP}A|A6ugpSfd|s+k|6ck<%pmsbby^XvLI@gBgoLCpz3V+Yksgj$w zDVhI=Kdtokar9!Yp6t~S3D?j@PO6bLr@Wr<#zDR(mL{X zLn`71Z=T2QHMSppAr!N<$kJTD5FPp~iJEO?E_MHO>Uh492dF6ZDt%Bi#rWBfv)N&* z=^N_8BD_!%RbfBLP@p+@vr_sB-sW0kknFZ&aC{z;?Jp zr})yt7KX-w`TUk!w$a8LGAhbM?ocMONG={64@P#Beuq?H<)~0^sqhBSV}uLgY+Efi zeH9Ien^O%L@+)|k<*p6Xm$E)7!#)!2@y949b(k2}eL&7R@6 zYs-U~CbzNYM{Z*)SUbo%Kr8Ru1|$!>-cf;6^#d+~3$`Q5Q#;dcH;~QqN9vjOyYcgy YvAEU^Ng<)lO<^IzOCR>Y!akwD0Y%HSI{*Lx literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/streaming_config.yaml new file mode 100644 index 00000000..c0e3e9f7 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-01-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 25000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 20000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 20000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 120 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 2000 + windowType: sliding +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 160 + width: 4096 + slideIntervalMs: 30000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/eval_table.json new file mode 100644 index 00000000..2d1255fb --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/eval_table.json @@ -0,0 +1,573 @@ +{ + "inputs": { + "workload-02.json": "5d07ed44756aca3220a5126bc1e1595817967875aa21d90696b91e2879e3541f" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-02", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 50000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-02/q01-sum-fine/keys/300s", + "lookback_ms": 300000, + "metric": "data" + } + }, + "interval_secs": 5, + "promql": "sum by (region, service, job) (sum_over_time(data[5m]))", + "rqes": [ + "random/seed=862/workload-02/q01-sum-fine/keys/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-02/q02-sum-coarse/keys/300s", + "lookback_ms": 300000, + "metric": "data" + } + }, + "interval_secs": 5, + "promql": "sum by (region, service) (sum_over_time(data[5m]))", + "rqes": [ + "random/seed=862/workload-02/q02-sum-coarse/keys/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-02/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + "random/seed=862/workload-02/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-02/q04-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + "random/seed=862/workload-02/q04-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-02/q05-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.99 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.99, data[100s]))", + "rqes": [ + "random/seed=862/workload-02/q05-quantile/values/100s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-02/topk4_q06-topk-sum/keys/60s", + "k": 4, + "lookback_ms": 60000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region, service) (4, sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-02/topk4_q06-topk-sum/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-02/topk4_q07-topk-sum/keys/1200s", + "k": 4, + "lookback_ms": 1200000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 60, + "promql": "topk by (region, service) (4, sum_over_time(data[20m]))", + "rqes": [ + "random/seed=862/workload-02/topk4_q07-topk-sum/keys/1200s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 750000.0, + "covered_min_N": 750000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-02", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-02/q01-sum-fine/keys/300s", + "instant": false, + "interval_secs": 5, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 750000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 750000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "300s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 7500000.0, + "covered_min_N": 7500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-02", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-02/q02-sum-coarse/keys/300s", + "instant": false, + "interval_secs": 5, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 7500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 7500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "300s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-02", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-02/q03-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-02", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-02/q04-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-02", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-02/q05-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-02", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-02/topk4_q06-topk-sum/keys/60s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 60.0, + "max_N": 1500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 30000000.0, + "covered_min_N": 30000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-02", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-02/topk4_q07-topk-sum/keys/1200s", + "instant": false, + "interval_secs": 60, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 1200.0, + "max_N": 30000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 30000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk4_q07-topk-sum", + "range": "1200s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/inference_config.yaml new file mode 100644 index 00000000..3d590028 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/inference_config.yaml @@ -0,0 +1,79 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 60 + query: sum by (region, service) (sum_over_time(data[5m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[5m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 60 + query: sum by (region, service, job) (sum_over_time(data[5m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[5m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 59 + query: topk by (region, service) (4, sum_over_time(data[1m])) + planned_subquery: topk by (region, service) (4, sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 20 + query: topk by (region, service) (4, sum_over_time(data[20m])) + planned_subquery: topk by (region, service) (4, sum_over_time(data[20m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region) (quantile_over_time(0.75, data[100s])) + planned_subquery: quantile_over_time(0.75, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region, service) (quantile_over_time(0.95, data[100s])) + planned_subquery: quantile_over_time(0.95, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region, service, job) (quantile_over_time(0.99, data[100s])) + planned_subquery: quantile_over_time(0.99, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d2bcc0c9ad41524775388bb34a1f0198e4af7ec9 GIT binary patch literal 2497 zcmZY7dpOhmAIEXJD-@9uQ;u7UaXU;Ra+u6Ep`4aOlE|rzA%|(E`)A3V=FrmZR52rl zaz2;Cl2LN*cFyrm!jO>NZs~Sizl-Z}eXr+#ug~|7w^S4_?}Zy5JojzlFiu{6N}hh+ zUR<+j4wmCa;zpa1tyf#-xHv=kn8}+8efHFpYgzPb4ZZimuz;5EE0#+m<@VtK%mnNp zKiE%6E?PHknU!#4-mjl9=a|&Pq_rV9j=>x_RWNFu#&XN_4Ym+v{@pj)-7+MLF!-jo zyxw!myg4g`a9;5X^M+k)B+8BxtdgpHcXNjGoiajP|N32zILE0D)OmcOYXHTzwjJ8o zcowLYZW3uezf3P@L~SmE*D@Xpcn7~)0Z+~{aztxC;dRqP{B!8eD;qtTsY zX%lydLmIQz>{V#@DPKEm`c-@}Yg#!^1KHm^TF;jb`e?< z)*#N)N9&=~ z?00bU)R*Kfd+UCbTaD$yF;9T!?vHSC7y}aR`KW+fl$?DVCyLI6!+aB z#!*Kl)*5qEwx`aS+;zwmCqHN&Or49(8^|7DEaL2>vhoWa{dm|Hg|E}ptBTAqN9T6Q z2eANg4o@5`k_)_toPmZoTNf$kQmcZj_1xNZqqBV-*l&%OL`J-i>!tTjKYE3aE9e^` zD@&zVE@;|FzGE3;Tg^zHO&QP1b!9V!*a9IG6?@kqpvk-gn4}8hS-R6yf{l>ZZ)-F( zIjxOW)IEL9_@Ht_)Pk%vN%Rvuh>Z*Ksg(0B{~@Pn95{=aiv9rhgIYF(+-LUMD%hND zhOsnTXlR!jF3A-j7J**&Zi%e=%9-kai}1k4T<%Ww7$*$WT1f7Lyea*DD2ndKZ2HG| zr88%BIYZ|&_wQQ6le6RPZg_o$oMU<9;?rFBVGofWm~}@TUL^1yd;qOAw7#HX@#f@> zjj*+qay^SG^p)-z4lZLL^qa#p{l3rxD^4FbbJg@^d@_38KaH+?cA}6 zZSG^$P+!O1v%K@Rv35C%O>QqEkQJ`y>5nqnYD(ED2tUIupfWJ-bQyRH(X?jpGe6Qv zTca~e6@2}ak{lJ~R;@O*4p?PdHP64MU+s05&o?)apY9DoNRR|yj#{J$_1anvEc1AR zHzEx>BswHMn>57WfYzjwpNuNlLkbl8XC1f9AbHU${T0;U$d!m)R>M3f1KQE=Tct6) z^~RzA6-G7X&(4{G#-NdqWtjrutLo>}<3Mx3IiQ5mAmW$g=)!In{$$B0XW7zxBEF?G<|!cWnR z-|e1rc>&N2w1>-pjW`Wy;7LRJVs}&}PW0auD~b`}!`*}%P(A>cd3Cn4dMDU0YB$m; z?G*{O>|XY-***%3me=l9Og``iBPA1W$WJlSLmKHon#Q*IW$io7#dP#%k^rR6zVF5htXWa5#a&UkOhbjHT>c zDvkdO-GyFK)!6)lP80N@R^+}U9|6&~tVYO_xADR1gkc8-^y`9-`KBmTipV%j(TZ5S znKAY;Aq`1QyKEr-@x~HR|GP~<6?yH@qPh(I*a+2FO}KHU4#dxQu_12jpMIv@1xY~d z#^qZM2G#8~Q6>mRJO))7JqFE!|3kM%eXQ-Q8-7q1Tz;xpXN+O-J7KX)TZ z2VyRcne62S@Cs8y1;nVK22FPqCRE%l9Iy5Pe=^T7?`uYitkXJScS7`q2)u=FTdW4E>O Z;6$lc8&X_co14FJwV`D-7Qb?H{R@an$*TYW literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/streaming_config.yaml new file mode 100644 index 00000000..984fbe74 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-02-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 25000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 5000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 5000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 120 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 2000 + windowType: sliding +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 80 + width: 4096 + slideIntervalMs: 60000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 60000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/eval_table.json new file mode 100644 index 00000000..a46a691e --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/eval_table.json @@ -0,0 +1,520 @@ +{ + "inputs": { + "workload-03.json": "f31cb884c2d6e9652dc3bd3deb1c6b9b9a5641bf44e77101b84b4e552300aca5" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-03", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 50000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-03/q01-sum-fine/keys/60s", + "lookback_ms": 60000, + "metric": "data" + } + }, + "interval_secs": 1, + "promql": "sum by (region, service, job) (sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-03/q01-sum-fine/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-03/q02-sum-coarse/keys/60s", + "lookback_ms": 60000, + "metric": "data" + } + }, + "interval_secs": 1, + "promql": "sum by (region, service) (sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-03/q02-sum-coarse/keys/60s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + "random/seed=862/workload-03/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q04-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + "random/seed=862/workload-03/q04-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q04-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + "random/seed=862/workload-03/q04-quantile/values/100s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/topk4_q06-topk-sum/keys/60s", + "k": 4, + "lookback_ms": 60000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region) (4, sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-03/topk4_q06-topk-sum/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/topk4_q07-topk-sum/keys/1200s", + "k": 4, + "lookback_ms": 1200000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 30, + "promql": "topk by (region) (4, sum_over_time(data[20m]))", + "rqes": [ + "random/seed=862/workload-03/topk4_q07-topk-sum/keys/1200s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 150000.0, + "covered_min_N": 150000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-03/q01-sum-fine/keys/60s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 60.0, + "max_N": 150000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 150000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-03/q02-sum-coarse/keys/60s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 60.0, + "max_N": 1500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q03-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-03/q04-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 7500000.0, + "covered_min_N": 7500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "topk", + "grid_K": 12500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-03/topk4_q06-topk-sum/keys/60s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 4, + "keys_per_window": 12500 + }, + "lookback_secs": 60.0, + "max_N": 7500000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 7500000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 150000000.0, + "covered_min_N": 150000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-03", + "families": [ + { + "family": "topk", + "grid_K": 12500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-03/topk4_q07-topk-sum/keys/1200s", + "instant": false, + "interval_secs": 30, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 4, + "keys_per_window": 12500 + }, + "lookback_secs": 1200.0, + "max_N": 150000000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 150000000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q07-topk-sum", + "range": "1200s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/inference_config.yaml new file mode 100644 index 00000000..3e9e32f5 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/inference_config.yaml @@ -0,0 +1,80 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 60 + query: sum by (region, service) (sum_over_time(data[1m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[1m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 60 + query: sum by (region, service, job) (sum_over_time(data[1m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 60 + query: topk by (region) (4, sum_over_time(data[1m])) + planned_subquery: topk by (region) (4, sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 40 + query: topk by (region) (4, sum_over_time(data[20m])) + planned_subquery: topk by (region) (4, sum_over_time(data[20m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service) (quantile_over_time(0.95, data[100s])) + planned_subquery: quantile_over_time(0.95, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service) (quantile_over_time(0.90, data[100s])) + planned_subquery: quantile_over_time(0.9, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service, job) (quantile_over_time(0.90, data[100s])) + planned_subquery: quantile_over_time(0.9, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..0ae2b998f71979baf3449617a95f7443df38282b GIT binary patch literal 2319 zcmY+^7$YRYm7SqMvSeTHShL*5o%12yDvitg*_=p7*I5#Zy^w47(? zGcm%YM^7vuc=>qd?-uETb-PciEzFCuyCu|`8@{<~5S$`Rr@g*)vzDTNIj_f06ei5Z zqN(F=rj8^{E7Dq`%!aeRRPby^EpBH8DahpD@Yzo*#%;`A6y1+8bA@uNa^UHuqt(?t z60j9wuj8-`80TSbyt$|nJL5EbSi8HF-%6Wng#S1y+?}54M_CT6N|snzL>&H^GqwLf z4R-tE=EPKmRMe_bl8Y*IYA15R2)nO4E)({rpTf)5g<;B@iY&@ipFjoJEE-D>n{LhR zoA@Z0+UxX;YY^v3@kiF1C6!u}rBoP1~i5eX%AS*fQ@=C(E%2X5rH8;1^ zk(&MnYjhduB&+v7FEi%h%rm#WD(87OV0AZAzBlKb2yAA!44TPxmE^^yM{%;99Oywe znMjP*_PFp=a>X7dHXO>od*vS)Qqbx9-oTX{JYw}?L?jgv! zGBUn02XS3?vAHY!MqX(-U}y4$>TN5? z@}{G{MxLj7B)yR(SxiN}KYUD%pkba8#xv6-`#plG-imUAvb__teF+j!^8g!J%-_wS z`ymxbhqrm^dC5HpGdB3hfOsZO9e-Rqyw zfGsWEA?;19>T)5@R@Da}_!nqGNtGl~0Q<(<0oT`6=KR%GikE0OTD92V%&cM`V6x;o z+A}Iwn&d}VeYK1nqP;7Qnh{Od`#n{L0M2Y zsnbk4E?o^smu2w^x&O)i@XO9*Tu)<6xMVNbMJMe3`_DM)NY?OQ{=P5QxCNzit>j~+ zXN;-Xa2uZw%NX3OxX-rthY(#H@>1`{=OFwo%X+?#Us1wMsUKRFjCykMZ&Nb6uspLp>g7DypxMW&D7NET1_fC5 zE=D%pv=$zS>52-^hZ{9C|sQ`Im=g3tL@=V{w5TIrBtrYagfN;E;Xgi>a2=!1woAa1j3j z(o0CE|9}@#9dV|GjY1At=}=Ajqs2CJ+bhf1Sl@?FCB*;u+X4Yj-8#$CsDXwIx=UWJ z6-59cIcKx|JkfZdwOJRdFYOAre2sP(;4VsileOvbQJ`#rvJCqpv|VK_@jx_lJ)n!@ z+64vKb5NqSSngRzdvYz2A4aqiS+oBw!)lx-1}AF|QUHX6(!s|t@kz&6Wk|bc-7xLm zZsIA=d!D?ly5SC*B)HL71Pc3cdC%&o2E|T#&h?oI8l$;FB^e5~2c9k%|1 zSTPP&Wj`8L8R@o|-Cg{5kwH<0@`o#A^@P@wx%%f9}xAiy6|AM7|{CNm__fu z&aAOVZ?LX{r~jJy^!r%<|C|0ed6a=x>H!?NdVqcI3nElGh6BXSF$e{0puNwG))Gns zlbO+M0_a~OfBG(%0nNyd_1P#mI!Pdxnl5`e7fO`Lg`SdE(`G?2D8&W0aS(y*xGm6T zo4P#E2ig=++eFcRVp6w;Tf;HaWW?b~svVNF0$Q4DA&otna8dM>*s&t9I#B9RWSe*$ zG#fk{jYbJ&&kelvd?PNoy2BJ8;AX9mR?LUCk!^JYnLFpb!TqzMZ{ef zsa%3vh8F4aDK>}9n7(syh791hV8RdQH}>ERI*trVPj(_skqT?<0`&Q=WL_|}dqg~g zSHX;!w23HVUOO^*&0VQ#zF1yEu=a8}&}*G#mMTdm5MAZ)v={4bhNk))#Hf2^FWt1< zv^tz>fMw8On`X`6=)-)N=uq&of`cTPVElx=vVKW1Z5SAG76LnKRwyCe)1Q4tBZZN| z1z>In!}2%}cvZNNI{hzWih1lLFWiEUdIVT~w8S|eDT z1LGlG3~uZ}bK;f4znzta>@i0^hJFX{sq*c8I@kWMm@vjhYUx7k<+u|9YX;A0vx?3h zhqp*qM^TRfGtXNP$IT)?a~c630=7UjEqM1Wcs$~#$AA;N)6hm;gnaBtEq2%ES1@!C R6BGUTa2mb}NULFH`Ui%%WBdRB literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/streaming_config.yaml new file mode 100644 index 00000000..d1b13eb9 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-03-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 20000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 1000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 1000 + windowType: tumbling +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 160 + width: 4096 + slideIntervalMs: 30000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/eval_table.json new file mode 100644 index 00000000..fd46f62b --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/eval_table.json @@ -0,0 +1,519 @@ +{ + "inputs": { + "workload-04.json": "e7c90d990fbfad54afd2ebb4ec6f0a049bd9bfbd8227bda623b099fb0e7bfa6d" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-04", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 50000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-04/q01-sum-fine/keys/600s", + "lookback_ms": 600000, + "metric": "data" + } + }, + "interval_secs": 10, + "promql": "sum by (region, service, job) (sum_over_time(data[10m]))", + "rqes": [ + "random/seed=862/workload-04/q01-sum-fine/keys/600s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-04/q02-sum-coarse/keys/600s", + "lookback_ms": 600000, + "metric": "data" + } + }, + "interval_secs": 10, + "promql": "sum by (region, service) (sum_over_time(data[10m]))", + "rqes": [ + "random/seed=862/workload-04/q02-sum-coarse/keys/600s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-04/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + "random/seed=862/workload-04/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-04/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + "random/seed=862/workload-04/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-04/q05-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + "random/seed=862/workload-04/q05-quantile/values/100s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-04/topk4_q06-topk-sum/keys/60s", + "k": 4, + "lookback_ms": 60000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 2, + "promql": "topk by (region, service) (4, sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-04/topk4_q06-topk-sum/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-04/topk4_q07-topk-sum/keys/1200s", + "k": 4, + "lookback_ms": 1200000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 30, + "promql": "topk by (region) (4, sum_over_time(data[20m]))", + "rqes": [ + "random/seed=862/workload-04/topk4_q07-topk-sum/keys/1200s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-04", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-04/q01-sum-fine/keys/600s", + "instant": false, + "interval_secs": 10, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 600.0, + "max_N": 1500000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "600s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 15000000.0, + "covered_min_N": 15000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-04", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-04/q02-sum-coarse/keys/600s", + "instant": false, + "interval_secs": 10, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 600.0, + "max_N": 15000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 15000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "600s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-04", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-04/q03-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-04", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-04/q05-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-04", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-04/topk4_q06-topk-sum/keys/60s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 60.0, + "max_N": 1500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 150000000.0, + "covered_min_N": 150000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-04", + "families": [ + { + "family": "topk", + "grid_K": 12500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-04/topk4_q07-topk-sum/keys/1200s", + "instant": false, + "interval_secs": 30, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 4, + "keys_per_window": 12500 + }, + "lookback_secs": 1200.0, + "max_N": 150000000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 150000000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q07-topk-sum", + "range": "1200s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/inference_config.yaml new file mode 100644 index 00000000..ec06c999 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/inference_config.yaml @@ -0,0 +1,77 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 60 + query: sum by (region, service) (sum_over_time(data[10m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[10m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 60 + query: sum by (region, service, job) (sum_over_time(data[10m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[10m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 40 + query: topk by (region) (4, sum_over_time(data[20m])) + planned_subquery: topk by (region) (4, sum_over_time(data[20m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 30 + query: topk by (region, service) (4, sum_over_time(data[1m])) + planned_subquery: topk by (region, service) (4, sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region) (quantile_over_time(0.75, data[100s])) + planned_subquery: quantile_over_time(0.75, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service) (quantile_over_time(0.75, data[100s])) + planned_subquery: quantile_over_time(0.75, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region) (quantile_over_time(0.95, data[100s])) + planned_subquery: quantile_over_time(0.95, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..658007299b163118ff8c7157df92eeb2652aaa41 GIT binary patch literal 2330 zcmY+?dpHyN9|!Qck6b3F=;AVtNM&-+aUCo7hIDXNZYiQ@LO7edaY0@%fK^u8XkAk91}=x>REQlW zPwjZ@Oup_A{n^=6kCj&_#}}t;>L~7Uu8uwq7Cj2Zg~Q%8-R7hUXea#+%BIkDtmV$l z0`F5s;>qeu!*l*XT#ZxTAQwmeA|2(xP{3ia8r}vMar0b|_<_ zN^AQS9Q`F<@@aATy{N8d#1$#*nrCY2h_vpxHw*5Asi^dJ4X=>~&9d+JCQQ{FC2mum zSa9EfU1zd%a1VAi$Jezw>ds+n-2*ni&8!Q&o?=}XpwAQ}wRfRHwr|ubT0%NAzo_+B zzFr{JDB9soM;f>PNKr=iD`&&oCreKo&&5vObR^8?);2gLCv2C?*Ey-^kc-z;Q&bZB z=+gZNv{Uj_-yM4PU4#?7ujx|&xdLeB{v3B`&}1Q}tefSLKR&{^)l>8I;MJ$N;-W;zK&y*7E`?y%>WRxvT{ci}ACGnovNG(S zQW_k1;eskh4?Xv53#i9V#>RG<=M}tc5~!N>D7vsP=Eqqvgf^Qz2JUg+3^k+lH9x2` zM%9o~#hbA~s*>he0V>VrqX{d;LAOI2)~ZN485i0&iB&_viW&Xof5Q{Vy_XUF%ux_A z`r=};Xp%!tUF~ejT?_lSD=(LnqE@+6wBwNe;-6yHHCXmR8}_Xm*IO-{S(b0e(s~J% z-&PwWBgnq=rTosfW%Jx776{}`5UeGMK!5-|+DQ<=>l1ffOJ_JHDWR$|9~{Dd2Ry41 zFfsElL1ZYrjN_ft*QN4+1`t^AjivgIXTRKK!>SM|L2L4>ioA5BxIP zC;}djd^})>hU9LE9S5R!kT|Q!&c)xAdX=V&8*#oYH(I8m}8}7LweZ>f;idvK$JoYC}sDPxsYl z>J>iAx#tq^L>{r|q%()YPi`!8IctmPlUz_q8Pk^-a{$bMRCs8#-?HUgi`JX+2K%%% zcv_)Fl2P?A94A>kZ)z-1gzK|5gixQNwaA@X5!u~0%}*WC#f9p@i%qUh9qS}=Ip7q= z6AFu0P!5t)(@dS~QI&?8(s3-Eltu6i@JK|*$85bY!Whw6LntR5`}Gn3%pZ?;RsVmO zUmc&O6<8F6HIUF_yXDA6qnpQvy~FXF9+yw)x)I+cSu>BJr~|%N1g+zr*xI^7f`M%< z#Qb6J;H>y=31l$k3bKPnHS>6wq}-{7A7y=J(ZnOrpQWn#=EKn=n1u>)RF=Q>?B}5P zD<>YUL>{o>r3Kx(uG3~ti1)ST0srOg-?wdgxe?#`G*IDhNs5|9>*o|TB9sWF1X_i% zxi9-MLIvU3#v1=*Anw;W-4F1J8;Zq}H^CoZoU(#k$-rh{^S9Owy)(VT60ziMj#OHh zjC2Rza(IwTPDqkS<6%o>qdmN9N!X<`OS&@~iv`g@+OPP)`bgizHXhj#DvzuvUh|Ty z5gU>yCpXH;VP37DBr?IZsjru03GLt$2kv7w@lbh~rj5Tud)2gzL#`h|hU+mB%q1F2 zmy|s$_XA#&A^M~=JXhXRhQ_zb5v(swBPdKq3S<7my`IaJ$F){49w~x3z>oMz2qSWd z`cUMOq7gdADxPiL%GiX;7m>Oc{$povE+;!zL=Uv@J$r?bmheloSJ9e6pdc7XR2&8> zlK2j`KF>CI(cv_|9MGN$j0kp?e$Tfa9?YWZDH`na7BK^vSs_t+e;OPV&EyUq2C}Re zQ$_hATe`4^GRrBrLLw$cDIE?`bYrZxVOAN7PP`7XLPo3Be2^4mra|DITQ}KOV;o($ zDf1r{o*0?B`qok1+~!6U29JkveHGKC3Jxa1uOag4SHbBRywac$wBz-3{L(w)6Khcx z=Sq@ofiwA+D^7%fLO`a+1i87I^i@EDtJef6?V!O#=&u(hW;U=TyiHe7{dr+Auo&29 zk$eyvfN|xhDuA|fA$+|Eh8FGcP^c8{ZkMQ}Ps0vEZd%6W9eRw;J0zMySCUnd`vHG- z)#MsXoHLX5&{;+T$Qu#voZE07RQnSEql{5zG@kky{8!Noc3aN}fg>P6;Br-z;VoA- zN}Lqd9C*=Nj0ysAb8{HzgFp;zAXQ>tM3_pHN)+lnFYMSsS`$bK*fCkwk9Q7_xOB~k zjXX`S#;9^%$P?UKVh`3w$|QsL0fDYSS7Nl+FVS9=7rB!P&H|T1vcO}iwT3OOY-(7k z9&?k6VPd_Y-?(`U46H!EF`xp}Sx-CZsK+=H~m IDB}S93w)(gVE_OC literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/streaming_config.yaml new file mode 100644 index 00000000..636436db --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-04-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 20000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 10000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 10000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 160 + width: 4096 + slideIntervalMs: 30000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: tumbling +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 120 + width: 1024 + slideIntervalMs: 2000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 2000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/eval_table.json new file mode 100644 index 00000000..0d854a9b --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/eval_table.json @@ -0,0 +1,571 @@ +{ + "inputs": { + "workload-05.json": "e83eefeeb44dfb69e530507221d0fd7cead9f0ce037ceb538dc62f2103da1dce" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-05", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 50000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-05/q01-sum-fine/keys/300s", + "lookback_ms": 300000, + "metric": "data" + } + }, + "interval_secs": 10, + "promql": "sum by (region, service, job) (sum_over_time(data[5m]))", + "rqes": [ + "random/seed=862/workload-05/q01-sum-fine/keys/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-05/q02-sum-coarse/keys/300s", + "lookback_ms": 300000, + "metric": "data" + } + }, + "interval_secs": 10, + "promql": "sum by (region, service) (sum_over_time(data[5m]))", + "rqes": [ + "random/seed=862/workload-05/q02-sum-coarse/keys/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-05/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.99 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.99, data[100s]))", + "rqes": [ + "random/seed=862/workload-05/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-05/q04-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.5 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.50, data[100s]))", + "rqes": [ + "random/seed=862/workload-05/q04-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-05/q05-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + "random/seed=862/workload-05/q05-quantile/values/100s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-05/topk8_q06-topk-sum/keys/60s", + "k": 8, + "lookback_ms": 60000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region, service) (8, sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-05/topk8_q06-topk-sum/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-05/topk4_q07-topk-sum/keys/1200s", + "k": 4, + "lookback_ms": 1200000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 60, + "promql": "topk by (region) (4, sum_over_time(data[20m]))", + "rqes": [ + "random/seed=862/workload-05/topk4_q07-topk-sum/keys/1200s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 750000.0, + "covered_min_N": 750000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-05", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-05/q01-sum-fine/keys/300s", + "instant": false, + "interval_secs": 10, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 750000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 750000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "300s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 7500000.0, + "covered_min_N": 7500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-05", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-05/q02-sum-coarse/keys/300s", + "instant": false, + "interval_secs": 10, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 7500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 7500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "300s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-05", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-05/q03-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-05", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-05/q04-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-05", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-05/q05-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-05", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-05/topk8_q06-topk-sum/keys/60s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 60.0, + "max_N": 1500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q06-topk-sum", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 150000000.0, + "covered_min_N": 150000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-05", + "families": [ + { + "family": "topk", + "grid_K": 12500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-05/topk4_q07-topk-sum/keys/1200s", + "instant": false, + "interval_secs": 60, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 4, + "keys_per_window": 12500 + }, + "lookback_secs": 1200.0, + "max_N": 150000000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 150000000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q07-topk-sum", + "range": "1200s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/inference_config.yaml new file mode 100644 index 00000000..f2f5f02f --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/inference_config.yaml @@ -0,0 +1,79 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service) (sum_over_time(data[5m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[5m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service, job) (sum_over_time(data[5m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[5m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 40 + query: topk by (region) (4, sum_over_time(data[20m])) + planned_subquery: topk by (region) (4, sum_over_time(data[20m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 59 + query: topk by (region, service) (8, sum_over_time(data[1m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region, service) (quantile_over_time(0.99, data[100s])) + planned_subquery: quantile_over_time(0.99, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region, service, job) (quantile_over_time(0.50, data[100s])) + planned_subquery: quantile_over_time(0.5, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region) (quantile_over_time(0.90, data[100s])) + planned_subquery: quantile_over_time(0.9, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..72647b05bbc0bf2033f305d16ae94a7065062551 GIT binary patch literal 2509 zcmZY4c{mhWAHZ=*S+AnVjPMX|hbVFcG1Yp)q4g#xxmQL}PCe zl6@O#?1Pala&ZS?vc2Wa^S%$y=Q+>!Ip>daen$+=!2xpnbdz=GmiIN^0OgwjNMDwJ z2#|mwGvU};u0{l0t7)tDYL!N8kv6i|Wx70tO#+dZ28%PE^_!?|YMcw&E^d2TJOUy3 z2L0XR=OgCI+lJ~Urq;XTG;8ONO}A5Ab$2$mUe|7}F47}rH;V#jL_z9C=6XTl!d+(1 zTOo){V{w3Azhhscflg8wwBu+n!BscO|F&Zfn&Os>ffIFX)l^=Zs9ER|AWM!za}hPS z$xUU`H`ucziOs##aYTtwO6Luiughosug0sGqTf0C)mTVPHHtO5sny7jr_E^R#Z+E` zyRgkxZw7AYYTabA7E34QhHKN?G-z~PYyfzawgI}I?hVyF0W zz$8gqR?Eb8Z4T;^qvYA%3U~}!(0>f`a~n>6N2K^TSBD0;FONKQNp+M@elnyZ7C4=5 zZU2Pvg1RV{n-VzW{meeJthFEcQUP#!PQAaIS&<0;?vGl9=_ydiaaBK@xuJQ%wypx` zIyoQLO|4YrqFx?IQ$5M`RP?k16@;7!vKj^PHtLJL_P`w8YA0~%N6~G#8=4obWBP3!YYtX%Cy+m=V0%yk^r$)#-d-?n;rD z%wvbMk$i4!LWeHyhRzk=ZW3BcKZSs{JzKdbtJ(pSz%Pu)3BFcx>?X}J&$;I;%dCr+ zb}nDPT1tw5*!9qqHLDZuWb-oWUlF*6%v6j9{NJ`Fxi!9FLa%j~zj`{Lm~PU{7Don+| zu(FI~C&n%?!hl42(cc~)XYdSMu-{>G==MQGHqeLS1izXDRVx-$2^J0{HF;PM$`TrV z%tam4IOelg>Nw`3sd%_-%(D|NTTD{|K#5BSO;&PzUJ?@dHQ;K;;HuhCVWxf#W&D^@ zmSCRk#pUzuX#~4J=kGjWXjGd(kc=%9dbInho`X>J`8e05Z@|=l5xh#}d=lH}W+zzs zM(4Z57uhxvH3+f7EzqOO66Gbz0r?y259EYL_k@;vnFX3~@rTEHQv#9pqQpAO#c1w22R^?m+O^6cr-|$y>;f#&m!LI~2&S3A zak*M_(Ir3?=@qNVyae}36nS8Q?k3FY=Bo@a(yuz-)B39cXGilYuV-I ztVg2EwvCr$c0$Ocs7}J&1R=}!N=N35k2}esxgK$Wv-kw~ci~(nFmoCx2$_*m-GsuC zE87}WvpX;;F9#nER&2$#} z^DN|q2LG>r|9+u)>kFR-|9<}7gSU+n4jKmKAJxJY3Txp)@OxyW8LQZ7q?9RZMho_n z)Cz~b5oR|F5X=B}zvtI!O;RYp0h6nbG-j~by)#(0;XQ%!oNq8^V@34&$BZ#CqM4>M ze5l>{MWBo^`>~y-X^M7B9TePAScd_;YQg}%$o!UT3H}&f=s3)QJ1!dqSmyvmVaB9( zgZyC11Kw|-BxsJ$g#Q44UELZ*v%9S?+Z{UdLMuMWfch*wi-4Wg@DZGib-{7-vFHlA zY@d9gW*?!Co;;0{uD6)(3D+!r+L^I znQ7E{(~PRKt?*COjWHutJL44_3b`HEcTT>dy`1NBQ5pO%AVOp|9y)`Y!DWv|0>r@r zhrovXiJKq9-(E-??o6aK$G#85@>y=?_Z5N_+OYJ}WwI^;&`)`7Q-kV@|WhS6ri zzX^t%VUkuxxI_Se6TF*HAzZ`r{bD57W=u&|2Z7WNv){*^6uFNZ!|zFzu3N*(hG$u^ z66KQrcQGee^Z@`Ww_j$9{tv8N@fN9 wDBN?vZrF{$ikJ3N^(Q_C2utrX)l~$&yS-|_!osq%bC^ZBn4Ix=;SkGz07w|oDF6Tf literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/streaming_config.yaml new file mode 100644 index 00000000..4a3b70b1 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-05-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 25000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 10000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 10000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 160 + width: 4096 + slideIntervalMs: 30000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: tumbling +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 2000 + windowType: sliding +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/eval_table.json new file mode 100644 index 00000000..ff0150fa --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/eval_table.json @@ -0,0 +1,523 @@ +{ + "inputs": { + "workload-06.json": "6a0ee3ebc8b01451479c8bcfbcbea49d7c21cc3ebd5e618e55f6a82d859e3133" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-06", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 50000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-06/q01-sum-fine/keys/300s", + "lookback_ms": 300000, + "metric": "data" + } + }, + "interval_secs": 5, + "promql": "sum by (region, service, job) (sum_over_time(data[5m]))", + "rqes": [ + "random/seed=862/workload-06/q01-sum-fine/keys/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-06/q02-sum-coarse/keys/300s", + "lookback_ms": 300000, + "metric": "data" + } + }, + "interval_secs": 5, + "promql": "sum by (region, service) (sum_over_time(data[5m]))", + "rqes": [ + "random/seed=862/workload-06/q02-sum-coarse/keys/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.5 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.50, data[100s]))", + "rqes": [ + "random/seed=862/workload-06/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.5 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.50, data[100s]))", + "rqes": [ + "random/seed=862/workload-06/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q05-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + "random/seed=862/workload-06/q05-quantile/values/100s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/topk4_q06-topk-sum/keys/60s", + "k": 4, + "lookback_ms": 60000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 2, + "promql": "topk by (region, service) (4, sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-06/topk4_q06-topk-sum/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/topk8_q07-topk-sum/keys/1200s", + "k": 8, + "lookback_ms": 1200000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 60, + "promql": "topk by (region, service) (8, sum_over_time(data[20m]))", + "rqes": [ + "random/seed=862/workload-06/topk8_q07-topk-sum/keys/1200s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 750000.0, + "covered_min_N": 750000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-06/q01-sum-fine/keys/300s", + "instant": false, + "interval_secs": 5, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 750000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 750000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "300s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 7500000.0, + "covered_min_N": 7500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-06/q02-sum-coarse/keys/300s", + "instant": false, + "interval_secs": 5, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 7500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 7500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "300s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q03-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-06/q05-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-06/topk4_q06-topk-sum/keys/60s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 60.0, + "max_N": 1500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 30000000.0, + "covered_min_N": 30000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-06", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-06/topk8_q07-topk-sum/keys/1200s", + "instant": false, + "interval_secs": 60, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 1200.0, + "max_N": 30000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 30000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q07-topk-sum", + "range": "1200s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/inference_config.yaml new file mode 100644 index 00000000..d31f2ec0 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/inference_config.yaml @@ -0,0 +1,79 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 60 + query: sum by (region, service) (sum_over_time(data[5m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[5m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 60 + query: sum by (region, service, job) (sum_over_time(data[5m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[5m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 30 + query: topk by (region, service) (4, sum_over_time(data[1m])) + planned_subquery: topk by (region, service) (4, sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 20 + query: topk by (region, service) (8, sum_over_time(data[20m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[20m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service, job) (quantile_over_time(0.50, data[100s])) + planned_subquery: quantile_over_time(0.5, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service) (quantile_over_time(0.50, data[100s])) + planned_subquery: quantile_over_time(0.5, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region) (quantile_over_time(0.90, data[100s])) + planned_subquery: quantile_over_time(0.9, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-06-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..ce910f1ebf67c4a17e69c380bb7a7cd0b6e3f085 GIT binary patch literal 2349 zcmY++2{;ps9|!QUY11`Fq8OVgFS1<4Vu!gR84{XY|3c$+?N;hr_jksNEq%l`a({omK~d4A9DdA{H0`AShC5S&AgD=*jUcSjE&l&g=Y2Vg#n z=reToXms7)X0o$v<$7I>ze4mgG;z>wN-ZV#s_A}Z_=#JzQj0h1zSMx^bZ}j8Eg&<>JPcp5nV;&(8%bz-)5aWHM(S1{Aoqj$%B82JxM|p{M5=~cXw~J zzps5YM6YfYz0O%(Ew)Z*cXqRzrj|1c(k{oP`js*MlTw*HoqdPy?QPrSJ~`kjT;3yZ z?HQT6HX2liA=(;uF)l0*$cd^bra;mYk7HKYv*0pc`9)$@>%chIVg%vYg%%T`k^?mr zraDihTePU8IKCk5e`9G;;3k&pr)*!>6QXgsS@0EXfLV03p#3Y??hCt!lqy5(YZ%3L zMp2#5mQsr(2N<AIGjb|(%pS;9Q$HOdzclH*+DI9pRC0869!lp2UDB9 zHB4GWxzs1;f=^{UO)^t1q&l9Vo@a=U^D#TeZ6*WlD;+rEdqgk3A~o?An9YXCcV`%y zT{dnD^m(G^hl!Qt_Pl9pRLH5g(dC9Ln?Lfr_@O+sy|(Bs$t9^-^jU>@UrThU?PvG) zyt4fB9R9=POH}U|*4#E6l5;Oxx-Hi?wEL1{D(Vk|JhU`CK7bX)fl5 zNaRYoyVV)@p)SWj*NC?K9`hDGooZWuBN{rI!DpOtCCccjA@$N)woqrESHFay6soMDbkaL8V9qx=CN2+8-Z<$K9<0HJ%guE`40T*)hkIwof3IGNdnA&MpZQw&;9I z7Q9!oShE~H>n6)Ef@Lo0tG|71d$Z#8n!eh~OzE13J$r*^kn?iwvn88R9qPG};WjJ* zkbM(!?cKz%v9HQWVXtCRgISXVqSgX2=91jq2-Fx_8o)?6sf?vhDz@>%l5eWOKHK`r zJkI-QXi&7E72n=u`5q551rPA}ZN2GqQysX=#(UUpaRYN@S>ITg}@CIouYyjWOdW+$OCXVrSaqIELb8&MJ> zMly6NIi2`DMTMY|EV<1awXJoAPrts(xnBblQJEeycahXhBNGj5kUf|Z7u<2O)A<6% zM!lXuTk()@aGapveZsvd$EiVw`}?rM*N+FdL^UonEaXUmR_e8spdG*!iP6Q+`?Qu& z0;&1d7lbM7PNM`yAYpZ!yagACDe&E8qM!hznbe+%;(4a^8oTZSec zUWUqvDI(03ww)m;{($@hn-ey9g6kz;faiIF&xB)IaXXZt%g|+_Ea_j-ugcSSGd2md z9&NmDJz6a8k$|$;HpQI7;gn6Fd=9rB;{_c7a_TX*6Ow;P?RX64g1Jw{J0(HzT^?6) z7H|-JJ_&*cIjTiL8n?~xR{&%{a8rIB$k$uJ6Oz^7uPj~;9Dw*64+esV;76~0|0nuY z(HcAfjR5HnTgRWLpev-m?Ly%JL=K?A=r?>gbOQJTfDI?g)`P*29kUHQjXbkwUxWD} zyUZ*Y;>Rt+u~UP3C#D$KyQX6{Cok79ATDM1++*;Tnj(Kzd-0Q*Z@tdRyH&)h66BB+ z9S~uQG!(fdPj!_SIbp+@np}kpIZKyXkujWtoBr3_Kw}R6GXRlmI2E!8u6-`R(@XG< z%Jb7V;a7A)1p@hjpOCKi-t%S0YADo}5$HfVFfqOX_YL|NkXw&ynaIZI_k^x0rwf_f zf$PeM$vvFJev42E?#2cor7j>s3#&**qE_g5QHm&NeS(j^MH{C$0tar?;yEtaN6J&f zCSeGa>B~3AA#)jiFiprVGwh9crFnQRY98LFd{j68%C^<$gYaYX@O%84kj-0R6H-6G zn=B!&1K9Cz+PF{JpR{3foBu?=Dq1fNep^!aLzJYhmVR_hK-{)Hy@*1J6iAg0=D`C5 z03ZMlK8qI)LhSek)`n;ox@}19N9>YQ^>ag8jF4|DMgUzckAbvqn-PFfjKl~^!nc1d zZ4C~{0U8B%@P;W-lqfYHxDEf0epNwv;|Pkh?nsohE)bX@wS$SuUtMyp&GCWXd%bwQU(f6F-}iZ5&-2I-d3k?zc<25T$J^7<%U8+W z7w^UOHO&@1W+VaUAnSVDy-rRuTV6aQ_TuOai0?~xn7ohvy%Rjzw_!!wb2bydCbjcu zPC4;7i*j8X-RI$tHh1Mmc}~^8-+@-wfNe+7mcQ< zySnQ=m-4(~wY+A>TEnsE(Ef=h;@QJSQak0?Jt=AU|h!Fwsb%yxroOX>rd}1vl_gUJuvyN26v_*YZVNU%or~SY! zjZ?WCcE~MtDTwP}jlu$A=yK6(rJM)OFVyIZ2U4j4TfmJd#bF#lj{a0pqxVJu(20KmB06{ZdwEG6cOsSgWd z5puhk`Se&f4tUmnOF2d9X0L+uF&-FQX=4g>{`8_!xIhc@8En2OO7TN?H_{EL~Qj$5Ub(J(6$E2TJrROh*q3~uQ? zKX4oe(-&F23fru-q}*&oiCFiU`rDRJ+apoe9pu5B1x<0ZLr;&n8b(zWy78&4!ZJCq zO?rNU@d&qE+!dhMN()e_mi&b3E>P3Z5qNAY^3A^g*;MZ0?CbGmKQdYwjR$y8lC2eM ztQ9%X0=z}*wDAXZt&fpTRUI@3M!82m-P&^GW`6klj15_<5oJqVyZ-c|8k_3OOY^h7 zzQ^p~t=&G8gRBRn^HgK8l~$HMwi=3ZvCn`f2zhOt7hYE zFZ#U6I7H$Cyx~>(=||Sg-)PcOjyHxSiaKw>MB6>w;?TcWyi3F}-BHAxnIbDU2XJ5N zC7vzsI8S4%C3-ar_9>$S|2<_@UMsHN0<4nNK6@FQPY`+F%uc}ID zg%zP60xF@z6#cZY^=*atXpsqf8(6S~r5c_QJDr<rYgof|l9oT1abQKhbhU?33peQJcOt zZ?UT$44i(bNm_jkgJdm*In^eqcs&5;%%IyetPCp};^&t`h^TiqL-yj;gc$pU=`(%a z>QSQB)-r|&-?r~ z*Aaf~qI;^@-y{i_9+k{{r_|r(Vvom5D3c%UtQ)jF(sG?E+o2Q*WucFC#D9nH?BNp_ zR7c#8TXJwoYW~bY5L7;t1k8n#fP?b?lY>B%g+(_HrY3TobpbB%?%eA;z;2k`0C(Vi zL+|rvq9tPvc;$2Lm>1AY-3vISvBwtKHLGtj+7QRB=>vFb_+|IGeq<<3+6S=Trv@uq z!y%&sn%XXUBmkQ869F;hd)&;0@G?&PkN{v^%xONI$oNsf8t;#cp+^BB!2L$w7tck@ z#2oNSP{zItP&3{OQ((EhK$6EK5oQ}O+J+!Ixd zLr|d|WCG1Ig|L|^H)QktzWYd_1-1mvCx+M72|qrPfn5iDuj05&?EG?nnr+Tk6B}iM zPdgk8o|R15`Q@iI6w2QL)1l~ss=nWh9c`~Jewt)naLZPQ+B|)9OG)9mD=WJ*(d3Tm z&ln*Lxkr*r0Op+m@*(udcq$MgoJ)HfH2H;984{LgiTfEKveO{N>;@cU|7_jMZTIA`DkckO`ua{Ej$ zw-yIMl&tq43irq!h63N~}FMu45I9JbzFdLB#bJqU`3DE+_`JA0PZ%SE51YL4O2D3rNU8 zH6-LdK=zm#m(CqVv*DQpolemI2MbY#P9ihR_KQqp`T;vZ2c@S+-!Vjx;|vjNrhEFy z-#6bS)d-%eMH?W07fK<>IU;tmT2D@;?B_j>x`MDk?$Z)q{9E|;N(2`d7l(70OQPFp JjPmUe*FUp{-V^`; literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07-pilot/streaming_config.yaml new file mode 100644 index 00000000..f7150067 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-07-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 25000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 20000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 20000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 120 + width: 4096 + slideIntervalMs: 2000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 2000 + windowType: tumbling +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 160 + width: 4096 + slideIntervalMs: 60000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 60000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/eval_table.json new file mode 100644 index 00000000..85075a94 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/eval_table.json @@ -0,0 +1,518 @@ +{ + "inputs": { + "workload-08.json": "4a9afa0519f228231a77fd756cbf5dbf7905d172a07feafc74c3df4bdd14a514" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-08", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 50000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-08/q01-sum-fine/keys/300s", + "lookback_ms": 300000, + "metric": "data" + } + }, + "interval_secs": 10, + "promql": "sum by (region, service, job) (sum_over_time(data[5m]))", + "rqes": [ + "random/seed=862/workload-08/q01-sum-fine/keys/300s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-08/q02-sum-coarse/keys/300s", + "lookback_ms": 300000, + "metric": "data" + } + }, + "interval_secs": 10, + "promql": "sum by (region, service) (sum_over_time(data[5m]))", + "rqes": [ + "random/seed=862/workload-08/q02-sum-coarse/keys/300s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + "random/seed=862/workload-08/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q04-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + "random/seed=862/workload-08/q04-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q04-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + "random/seed=862/workload-08/q04-quantile/values/100s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/topk4_q06-topk-sum/keys/60s", + "k": 4, + "lookback_ms": 60000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region) (4, sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-08/topk4_q06-topk-sum/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/topk4_q07-topk-sum/keys/1200s", + "k": 4, + "lookback_ms": 1200000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 30, + "promql": "topk by (region) (4, sum_over_time(data[20m]))", + "rqes": [ + "random/seed=862/workload-08/topk4_q07-topk-sum/keys/1200s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 750000.0, + "covered_min_N": 750000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-08/q01-sum-fine/keys/300s", + "instant": false, + "interval_secs": 10, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 750000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 750000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "300s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 7500000.0, + "covered_min_N": 7500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-08/q02-sum-coarse/keys/300s", + "instant": false, + "interval_secs": 10, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 300.0, + "max_N": 7500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 7500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "300s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q03-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-08/q04-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 7500000.0, + "covered_min_N": 7500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "topk", + "grid_K": 12500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-08/topk4_q06-topk-sum/keys/60s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 4, + "keys_per_window": 12500 + }, + "lookback_secs": 60.0, + "max_N": 7500000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 7500000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q06-topk-sum", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 150000000.0, + "covered_min_N": 150000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-08", + "families": [ + { + "family": "topk", + "grid_K": 12500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-08/topk4_q07-topk-sum/keys/1200s", + "instant": false, + "interval_secs": 30, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 4, + "keys_per_window": 12500 + }, + "lookback_secs": 1200.0, + "max_N": 150000000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 150000000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk4_q07-topk-sum", + "range": "1200s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/inference_config.yaml new file mode 100644 index 00000000..76fac1df --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/inference_config.yaml @@ -0,0 +1,78 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service) (sum_over_time(data[5m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[5m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service, job) (sum_over_time(data[5m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[5m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 60 + query: topk by (region) (4, sum_over_time(data[1m])) + planned_subquery: topk by (region) (4, sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 40 + query: topk by (region) (4, sum_over_time(data[20m])) + planned_subquery: topk by (region) (4, sum_over_time(data[20m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service) (quantile_over_time(0.75, data[100s])) + planned_subquery: quantile_over_time(0.75, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service) (quantile_over_time(0.95, data[100s])) + planned_subquery: quantile_over_time(0.95, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region) (quantile_over_time(0.95, data[100s])) + planned_subquery: quantile_over_time(0.95, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..a699051a21b136bc4d4434a86ad2ecc3dbc090a0 GIT binary patch literal 2331 zcmY+?c{me}9|!OaF-MuiL~K)8_}bhwjJYDmRIVbvI$SYPDw-pW@{qZ|>< zC^>4mL&%+sIa-de)_(2xO;4WJAD`!Wzn|y**9RI40%8B|_U2+=_Hn~sL3&^D!vhww zaDG!}l6M*frmCw(%;y_R+%@j>XF3d1Gwqc=h3hB-Eq%;1z1OafDLU?(Ze^Z;RSV9j<$3^K2N6{6akTsM0D8$TE9x~<)YOFX`|JqT}&<(tD zDLw|hv^dr5fBMO>*npGo`X;aEGrZL{m=msztgTvC_R0wEc9_tTY3w=1Q+bR+2{U_a zH_~GzNM*nCn6PFbqwA%vD}>5mO{BdfJG+Rj1uK(2SIxY@+LgZbK5N-)?yy2g@7x+s zXr>QU)(tbN+a3JBt*+)d;;8PITxLtEXUZR(wHgepn)XhvNl9yjOs_4}M320#>mNHZ z>D-NxD6YId!dll2)OZnxdvgVG^>aZ#HV9QztBQi>xO7d>GCK>zWuib zxq^QF=zYH(d483N@IqwmahkCkJMfj!x4y@Ga0~IRrzJkoW6j-v-L2*?WO*!e%TVw{ zp@W?(gw9ZxcKwb@MK1RHkhHLAzX4sTyU^vaBC zOiSw^A1QaAsjM5wtIujlZd`Wppr`D%4i+I+%xlm~GtdcC^5X<&ujE~m&+LzHZFC1J zk{2DDYtp|}6W34dy0b~p=y+(6oK;fXh1c8+(0d4h)NT?)$CYNPyshQBs2im*kGt&D z+se;f##D_SFRULxW;($$q#Stk{gKwel25B0p$(n}d$P-r=| ze~pGNlayA>+@qW?HQCvluU=8BHm;}i^~Q+rDOd%rvrRT)zbxB+&lbnv3|p`e#UCCGBK#pOJe#rPZEk>*QUDahiMH=^)cN+ zlzS!~R8@G}BT?v4G1W^}%B>led=1UVlyHk*l4|WeOgBL0uP6@^e59cK8?>^oN$=2u zmV~xEpia}Cr`!tworb8aj(URjvV-}t*3H}ofdPppnOaL~v}(PonFAq6wQTw22>z4q za9uk0(8}LL*4HZGD<4%yjKv zTYp=5GPK^4*%u_6!+AL7c zH=PP+io2dq$J-9SHPco2r!dIhX|{-b(35`Pj4IAyc4W}&uoskan7!wRpa{ZN!qQeTxVhTR7yXX^&C5 z@b<&=)DWYH$jRG38PQCB>etssdjgzkLT0^3iha%um-&||1@>J81bc2SAP$#hYK|!` zUafyJQ$C*`DRf*i-SKfcLMLYsP8jmaistJZ%b9ZA zERs6t#tpRiV2~*MiF?xklZexA=aU9)o5%7Q^39t!@7AT-)Gj#s2u zf`gTdk0T26{58pq#r&FM!Jq`#wj$0-5rQSN9sIgEr+$ROh%i+o5q3@mZT$Kihk7*H zaIY!2nkd4v6^_Xfrg3kr@`Tt#Y-^H9fu-b7t`aUs>}36cf2&?(mGgZj+1ClguUIG1 ztIkCi#OuZ|>k;IR>bQdn#$VhKbCn|4K1A?EpYJy8-R2M%Fvq0CPmb(*W4_(tf>}By zzuzw#ZIuSpZn5qGx_5_q_rCR-o-X7n?9)SDUxO)Ku<31oZP$@G}v!&D+t znka2-!wUc!0KfnqfHYtD`UaLcgqTT4x=9r6ylAN9n=5V69wWZt)vGEx6@0KE`Q?p6 z@I&wqeC8mItvS;r$*myPdKbpZ6UF|wiE8|vfsRNN7jOXWK#OPVt2o00P|ol?)p`@- ziyZ2)du|_ghCkqU00Fqd0WbgvFfRs}6xfEwnw0jU*!9*YbiXJ9QU_)&5L+AQZ6I zewJ*nD#x(No!-3^a5oXf1H>AD!8|;`wb<}4k=vS}1UMm=qVY%cUuFG+83~SRr+}lP zsh$!dX&gN$v_zV6RE}I691P;&x@7liKTv!DO~ Qo6QaQ=QtYhssaf3A3yY3wg3PC literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/streaming_config.yaml new file mode 100644 index 00000000..c1479350 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-08-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 20000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 10000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 10000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 1000 + windowType: tumbling +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 160 + width: 4096 + slideIntervalMs: 30000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/eval_table.json new file mode 100644 index 00000000..5689cacc --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/eval_table.json @@ -0,0 +1,525 @@ +{ + "inputs": { + "workload-09.json": "d1955cd40ad27a583d2477126bec28273ac95cb4d8c88a10dafd6b43458cb681" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-09", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 50000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-09/q01-sum-fine/keys/60s", + "lookback_ms": 60000, + "metric": "data" + } + }, + "interval_secs": 2, + "promql": "sum by (region, service, job) (sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-09/q01-sum-fine/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-09/q02-sum-coarse/keys/60s", + "lookback_ms": 60000, + "metric": "data" + } + }, + "interval_secs": 2, + "promql": "sum by (region, service) (sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-09/q02-sum-coarse/keys/60s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + "random/seed=862/workload-09/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service", + "job" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q04-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.95 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service, job) (quantile_over_time(0.95, data[100s]))", + "rqes": [ + "random/seed=862/workload-09/q04-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + "random/seed=862/workload-09/q03-quantile/values/100s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/topk8_q06-topk-sum/keys/60s", + "k": 8, + "lookback_ms": 60000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 1, + "promql": "topk by (region, service) (8, sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-09/topk8_q06-topk-sum/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/topk8_q07-topk-sum/keys/1200s", + "k": 8, + "lookback_ms": 1200000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 30, + "promql": "topk by (region, service) (8, sum_over_time(data[20m]))", + "rqes": [ + "random/seed=862/workload-09/topk8_q07-topk-sum/keys/1200s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 150000.0, + "covered_min_N": 150000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-09/q01-sum-fine/keys/60s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 60.0, + "max_N": 150000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 150000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-09/q02-sum-coarse/keys/60s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 60.0, + "max_N": 1500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q03-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-09/q04-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-09/topk8_q06-topk-sum/keys/60s", + "instant": false, + "interval_secs": 1, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 60.0, + "max_N": 1500000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q06-topk-sum", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 30000000.0, + "covered_min_N": 30000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-09", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-09/topk8_q07-topk-sum/keys/1200s", + "instant": false, + "interval_secs": 30, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 1200.0, + "max_N": 30000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 30000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q07-topk-sum", + "range": "1200s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/inference_config.yaml new file mode 100644 index 00000000..a21787b7 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/inference_config.yaml @@ -0,0 +1,81 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service) (sum_over_time(data[1m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[1m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service, job) (sum_over_time(data[1m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 59 + query: topk by (region, service) (8, sum_over_time(data[1m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 40 + query: topk by (region, service) (8, sum_over_time(data[20m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[20m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service, job) (quantile_over_time(0.75, data[100s])) + planned_subquery: quantile_over_time(0.75, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service, job) (quantile_over_time(0.95, data[100s])) + planned_subquery: quantile_over_time(0.95, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + - job + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 81 + query: avg by (region, service) (quantile_over_time(0.75, data[100s])) + planned_subquery: quantile_over_time(0.75, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..6cff5e723c540bd0d21998e22d13be886ded119c GIT binary patch literal 2324 zcmY+?c{me{0|#)LY|_uB!zRZlM{=uNFS%a)$g7aNDZ^Vr&0G_6Y&mLj3uUf3wnuDk z;gv}lDep`ciPtqp=Dy~59sA|!=XqYw=a296e82yG;qf4lsayAhBRoH(J1S7^L7*>+ zZ!Xuxmu&&F;2mR^!X>ow7QK7pOTT7>vM3LpNG=JUX`w$QeSW|T^UOh~L4MEish-OU z6cze5-rp2WXx+|9+1Q<}Zp_TsYT!9kye(a^vm@Tz`r}U5wb?=#k6mW4>)Y`Rw5vnI z2HpDNUz-TF^q`&T>h#yVigyKDb_OlthbwS<>qEY{ovnz)55rtP#9xcrZI&KEtGn65 z-_Y91?X;Tg;YKy=0%OIo3O2Nc$7=G;ti;s;M{IbaT;qolp)HM_Y8Y zfiilN6wI3wT3HL2s;qQIUsKmh@6I4iLn3wN{%AmMUAiX@TGYE%8aqgD5pZvEKuG2eha(UOd zWATWQZS)O&B*6(2*s%?+uSh|c5ksVM5pi=Q1oPVPZ_qZ5xxWL^*{)d8(e)JNvz!!S z=cMvW!OPj6EPqXEyq&&P=}b`g>GZGgdOE8aMO)B0&ZGp;61Z2>zVO}{JVeE@!=2T# zlvPV9-UeHP>*m@wv)nGKM|E2?-%Isyn6M)_ab-KHE)ay0(nUCY;E|(_s&K=6-XN8T zxzUWha@%%gs;9b-d_(c&Y87ohvWAf<7J1?W$FF z31q!4$-M#aU^jKxz{Ybf1@KfQ)!q7b^krGjDSg#z*|lC`PiLoMH~k#d)Sp7VvCc1a zrAF~D-{+AmInBfVBgs=-EB)E|hF}cMd5ZG!qvM@(oz`_(QA|Q4m786Tx)tFgs8HT( z8><4#u&N<%hK4P__CgiCVJmOhw*^bIF-ebAs31p<{_u zW`eLnxrIXWNahk>V%=QmV+)J+U=ew0sx4MqoZxd$PNt~hd4ks0MmP3pWx=V(dTt__ zfGJ7MDXP=t5N1QmR?HVNnP{g?XAXXvPL8edVXBV3iu`h`TffHIYkt;UAY z8@>*``ehPHsa2&D7`LE$&7Gx`~s|CUj$j!H{;1KtT}Gx*KP5T^|u@!prrg;sphH* zBmUc*J1Cc+iCuwAGbpcf>9>E%%0QmCZoHf=Z1iTeE^CM2MqVw0Lv?RIijb51p1U!u zKTBfHd2aZL#OX#!ch$^HdXMce$+zyW`62QX$|OWD`RDa@vFLhtPJR%|(p7)q=rhWA z)1;p)A0DS`dKun8MlYw;3p28pXzx$zh!?+3EQ-OUJLt(qKkt*^&`unC0{j7wjQ>Gc zC3IPQ$;at}>iGAoCuJ=$vs&=43+u?*Z#+HyJDeY_m0n-7?#s&~(WJX?YLs2426n$q$uG~!QI0AeKvwng* zx4@YmB?Tg2M8c*s78Z_Cqz?A6o@L(sRRCTx4x-cs_Z#*b)}kxJ_Ib_B5%_1lW(?{} z9GEME<12$b^leHB)V0qn_6f&q;pn;4u+*?+r@0SG#`Q(#nj3)Drd)oEv2+S>f*+%w zWU%w>7g^X(4Q8NrVnZ;kwKZ6btv&uPxK`Av!u)w8JU|5rFI3Mm`PFsbTGV=vXdO5` zW*)He*gyu{0a!sxVk#pJv`8W0NMd<#$U$+C`uDc!*#bj&8Q~%PTs#W$4Z4q!PYa1z z1SpJcw-{)E{{pPG7`S*!$G{JS0LOr1#jA$W3GhRRsED`VcCejTJD3BVm+4X8*Ju*9 z3>pX8yx)w(xJhRMry?%Q9P z^;OX>a8ArBV2#hv7~Bn5LraIIU=Q#~li(!cLNKNhdsw5#?p!c-c(NCxGR0a?y3Y6{ zM~=UmF3bRShb=3jv}_+rSPJpZGXqQo<;!$>!sJh}!TZEv`&0{{ME;RSeW{L=TRfj0Ri#?_etK^UigvBgi4cFv4#G*)%Hdw9+Tq2-ON(nc`LyI4u5A@Bb$;b z5`qvxNGfa%uxo784PINFQ^8j8uwY^ z?5T4<6kYz3m3BRfPa$1q8u(8nHXlCyJ!Bdv4?3`7B4jG0U)T(`h8%Jo%F}__LPVjq zkP;X})?Ra8sM)-UkP_$*(_=?)E$}7a4nHmlgsY4?U<{|qQ1kE3?BpLUI3#E(JE}Vh z^k;WeN87YWYW%*>lA(g<3yzxDc$tiXHvxN(jYgTGV_;{F1%LekbE`l zZ3qIQ1VupJ!RBS7H1{={F=gfHGATlupuI@kD0~yRr>C&@?)dxvi;B>Q)`(6j-H1LD cbI6)%sfn-AjxZk|j|bqB6;P}SspRMTAL<}*mjD0& literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/streaming_config.yaml new file mode 100644 index 00000000..ca977a18 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-09-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 20000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 2000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 2000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 1024 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 2000 + windowType: sliding +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 320 + width: 4096 + slideIntervalMs: 30000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 30000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/eval_table.json b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/eval_table.json new file mode 100644 index 00000000..aa61925b --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/eval_table.json @@ -0,0 +1,569 @@ +{ + "inputs": { + "workload-10.json": "19abdf76da8cf2c810d0962563c135553bd106cad4c9f6c294d02e59c57eb458" + }, + "plan": "ProjectASAP/ASAPQuery#879", + "schema_version": 1, + "sketch_bench_revision": "a3753f2e3fdbe686db450179b8c018e95f02e17f", + "workloads": [ + { + "dataset": "random/seed=862/workload-10", + "e2e": { + "metrics": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ], + "samples_per_sec_per_series": 10, + "type": "gauge", + "values": { + "dist": { + "pareto": 2.0 + }, + "value": { + "keys": 50000, + "zipf": 1.1 + } + } + } + }, + "queries": [ + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-10/q01-sum-fine/keys/600s", + "lookback_ms": 600000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service, job) (sum_over_time(data[10m]))", + "rqes": [ + "random/seed=862/workload-10/q01-sum-fine/keys/600s" + ] + }, + { + "expr": { + "rqe": { + "capability": "sum", + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-10/q02-sum-coarse/keys/600s", + "lookback_ms": 600000, + "metric": "data" + } + }, + "interval_secs": 20, + "promql": "sum by (region, service) (sum_over_time(data[10m]))", + "rqes": [ + "random/seed=862/workload-10/q02-sum-coarse/keys/600s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region", + "service" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q03-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.99 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region, service) (quantile_over_time(0.99, data[100s]))", + "rqes": [ + "random/seed=862/workload-10/q03-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q04-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.75 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.75, data[100s]))", + "rqes": [ + "random/seed=862/workload-10/q04-quantile/values/100s" + ] + }, + { + "expr": { + "agg": "avg", + "by": [ + "region" + ], + "of": { + "rqe": { + "capability": "quantile", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q05-quantile/values/100s", + "lookback_ms": 100000, + "metric": "data", + "phi": 0.9 + } + } + }, + "interval_secs": 1, + "promql": "avg by (region) (quantile_over_time(0.90, data[100s]))", + "rqes": [ + "random/seed=862/workload-10/q05-quantile/values/100s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/topk8_q06-topk-sum/keys/60s", + "k": 8, + "lookback_ms": 60000, + "metric": "data", + "topk_by": [ + "region" + ] + } + }, + "interval_secs": 2, + "promql": "topk by (region) (8, sum_over_time(data[1m]))", + "rqes": [ + "random/seed=862/workload-10/topk8_q06-topk-sum/keys/60s" + ] + }, + { + "expr": { + "rqe": { + "capability": "topk_by_value", + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/topk8_q07-topk-sum/keys/1200s", + "k": 8, + "lookback_ms": 1200000, + "metric": "data", + "topk_by": [ + "region", + "service" + ] + } + }, + "interval_secs": 60, + "promql": "topk by (region, service) (8, sum_over_time(data[20m]))", + "rqes": [ + "random/seed=862/workload-10/topk8_q07-topk-sum/keys/1200s" + ] + } + ] + }, + "rqes": [ + { + "assumptions": [], + "capability": "sum", + "covered_groups": 200, + "covered_max_N": 1500000.0, + "covered_min_N": 1500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service", + "job" + ], + "id": "random/seed=862/workload-10/q01-sum-fine/keys/600s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 200, + "keys_per_window": null + }, + "lookback_secs": 600.0, + "max_N": 1500000.0, + "max_covered_share": 0.005, + "metric": "data", + "min_N": 1500000.0, + "min_covered_share": 0.005, + "queries_per_instance": 1, + "query_id": "q01-sum-fine", + "range": "600s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "sum", + "covered_groups": 20, + "covered_max_N": 15000000.0, + "covered_min_N": 15000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "exact-sum", + "grid_K": null, + "grid_param": null, + "sketch": "exact-sum", + "target": 0.0 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-10/q02-sum-coarse/keys/600s", + "instant": false, + "interval_secs": 20, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": null + }, + "lookback_secs": 600.0, + "max_N": 15000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 15000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "q02-sum-coarse", + "range": "600s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q03-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q03-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q04-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q04-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "quantile", + "covered_groups": 50000, + "covered_max_N": 1000.0, + "covered_min_N": 1000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "kll", + "grid_K": null, + "grid_param": 2.0, + "sketch": "kll-percall", + "target": 0.01 + }, + { + "family": "dd", + "grid_K": null, + "grid_param": 2.0, + "sketch": "dd", + "target": 0.01 + } + ], + "grouping": [ + "region", + "service", + "job", + "label_0" + ], + "id": "random/seed=862/workload-10/q05-quantile/values/100s", + "instant": false, + "interval_secs": 1, + "kind": "values", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 50000, + "keys_per_window": null + }, + "lookback_secs": 100.0, + "max_N": 1000.0, + "max_covered_share": 2e-05, + "metric": "data", + "min_N": 1000.0, + "min_covered_share": 2e-05, + "queries_per_instance": 1, + "query_id": "q05-quantile", + "range": "100s", + "stream": "data/dist" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 4, + "covered_max_N": 7500000.0, + "covered_min_N": 7500000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "topk", + "grid_K": 12500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region" + ], + "id": "random/seed=862/workload-10/topk8_q06-topk-sum/keys/60s", + "instant": false, + "interval_secs": 2, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 4, + "keys_per_window": 12500 + }, + "lookback_secs": 60.0, + "max_N": 7500000.0, + "max_covered_share": 0.25, + "metric": "data", + "min_N": 7500000.0, + "min_covered_share": 0.25, + "queries_per_instance": 1, + "query_id": "topk8_q06-topk-sum", + "range": "60s", + "stream": "data/value" + }, + { + "assumptions": [], + "capability": "topk", + "covered_groups": 20, + "covered_max_N": 30000000.0, + "covered_min_N": 30000000.0, + "covers_share": null, + "dataset": "random/seed=862/workload-10", + "families": [ + { + "family": "topk", + "grid_K": 2500, + "grid_param": 1.1, + "sketch": "cms-heap-topk-fastpath-vector2d", + "target": 0.95 + } + ], + "grouping": [ + "region", + "service" + ], + "id": "random/seed=862/workload-10/topk8_q07-topk-sum/keys/1200s", + "instant": false, + "interval_secs": 60, + "kind": "keys", + "label_set": { + "arrival_rate_per_sec": 500000, + "groups": 20, + "keys_per_window": 2500 + }, + "lookback_secs": 1200.0, + "max_N": 30000000.0, + "max_covered_share": 0.05, + "metric": "data", + "min_N": 30000000.0, + "min_covered_share": 0.05, + "queries_per_instance": 1, + "query_id": "topk8_q07-topk-sum", + "range": "1200s", + "stream": "data/value" + } + ], + "schemas": { + "data": { + "labels": [ + { + "cardinality": 4, + "name": "region" + }, + { + "cardinality": 5, + "child_of": "region", + "name": "service" + }, + { + "cardinality": 10, + "child_of": "service", + "name": "job" + }, + { + "cardinality": 250, + "child_of": "job", + "name": "label_0" + } + ] + } + } + } + ] +} diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/inference_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/inference_config.yaml new file mode 100644 index 00000000..f9dc1204 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/inference_config.yaml @@ -0,0 +1,77 @@ +cleanup_policy: + name: circular_buffer +metrics: + data: + - job + - label_0 + - region + - service +queries: +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service) (sum_over_time(data[10m])) + planned_subquery: sum by (job, region, service) (sum_over_time(data[10m])) + query_time_aggregations: + - operator: sum + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 2 + num_aggregates_to_retain: 30 + query: sum by (region, service, job) (sum_over_time(data[10m])) + planned_subquery: sum by (region, service, job) (sum_over_time(data[10m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 3 + num_aggregates_to_retain: 30 + query: topk by (region) (8, sum_over_time(data[1m])) + planned_subquery: topk by (region) (8, sum_over_time(data[1m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 4 + num_aggregates_to_retain: 20 + query: topk by (region, service) (8, sum_over_time(data[20m])) + planned_subquery: topk by (region, service) (8, sum_over_time(data[20m])) + query_time_aggregations: [] +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region, service) (quantile_over_time(0.99, data[100s])) + planned_subquery: quantile_over_time(0.99, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + - service + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region) (quantile_over_time(0.75, data[100s])) + planned_subquery: quantile_over_time(0.75, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null +- aggregations: + - aggregation_id: 1 + num_aggregates_to_retain: 76 + query: avg by (region) (quantile_over_time(0.90, data[100s])) + planned_subquery: quantile_over_time(0.9, data[1m40s]) + query_time_aggregations: + - operator: avg + grouping: + mode: by + labels: + - region + parameter: null diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/plans.json.gz b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/plans.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..9b8e17a4cb44d2606c54fb5e0a18eaf48065bc43 GIT binary patch literal 2567 zcmZwFdo&aLAHZ?-_=TQsCYQ8a+6YOHrJjsd*k&saxie92X>Mii_hMa`h|6$y5{TZ zAE@IUc-3EQ`oUj;BQ1(Z(e~!g>Y+)?HBM;H)OM)tfJd-TVw#croh`0X)AXWGOpbpz z&==P7@&@mn;~&kEZ2-!d=6{Nie+Tmdz0!^*4h$FZ&v{v~ScHh4eMxh?X_I2DPo9+;x3I;0 zH0)gD4-R*>IjkQzbIE3mPmhQQ$7mxxpX*Wh;TW8AQkN-#;TTYFcCP(7GqJ%f%C^aq z%*E?!$(T>=i3=4r&O{ivK$UZwGd#L9RgYmScl0YztasKc#l+rU7>_!7?Bx@sfSa`g z*jR_xhsHZAGLK8#b17-JxxIp8i!fGMyWDL0o2M5Ze2Q;?{F9a)9H z8b>RGVH2;97d~N)S{CP?Hak37F>G=NJbtn9fDs$%Zga>5Xxt-Cl$ObNz7q2 zlc>*wvh2$8k5yOM5mKG;+e7$mQR#o)R(GWxkX zKSx9{G`R9V2ur!$R0cM_o4I!ueCk|AON|c~b3@{d5Ii#s4!ulryX-B%>!jU6Zv#yl2UCB!<#()1td^Tyo+cPSm} zAUS50_zmpRJ+>du54dD6z3=K#Na&qvLGP(18iaJGq2G!=Y|GsGBI?m~&FHE7 z2_U(h7`$8_;)?XoG{>3{IuL?jW-^(a#2H1!W1wDms$DrF)#)Mwfq28WD+_Xl^k;@S z4}OoUFhPiNN=j(a!{1I!r$VokffOYC3glIN1x;=8HxdK*`BXC2`PefTy;wT=08lp9 zrRor|i#&glKk-%j;vTK`FHQ&nx%7$)R<@5&N{(L8x~!uI?;!_;I8DCoC*(m|sMFWdJ#!xp(*>*>qkQ1#?D`f8#I3#7qM%k-(bB$WJ zD{&IHRFiv0^1Opde;oXp? z02>f8&5yJu&|X=cea$}C-CBJyUi`$fgQ}*lq;YuQTB34*)qT4KC;o>f{AhRjntRz@ z(BfV%$W9VA)2z`$QT@#yS-0Bs%!*tgograwQK@6A10Pyfp^;Fvn@wJQd!cRx9+T8J zzMBGCiv`%U0JRbQnQg1ICSVgBH%YM^73W=!qWZ0iNcR{r&7>3Mr2NQ;xVsNQ6Oz!i zEWv}C2pfq5hvtFOpv^*ArAA5MQe+bNgZeK;Xfz`l-!^n7wOic{yuSA5b_=*^6KbOu z&z!rYbpe~;7Aq8Aqp04mQ6qlq80k$zt(o;iMJazW^5xy9plL~iwJh0$G!Zw#1D!$+ zq=GgJ9T^?<9xJYeCO5w~D?@lRo~)=*fde^(e%_S;@MH7lepZ=^4L#SsmGiK`64|b; za1Sev{>j*X#L;+mQ4aUzra`G+P4BlHd6q(cL3+Q#K)thIPdGcK2Dkdr8C^QoVMUMS z58{~fseywuZRLM%(Edw(Z$kRMEehjj^U4D_t07eN4g$sqGb}3Kr(vtnyowbV|oay zS!c`cSn3WVg^|R-?4QOCFRCvZE9ASr^72GYxxNDFfkFpJ2AaJSVLV-ALA4%xaQM82 zM&_3{H1KzraQdp=*H+H2@Gdn@i0)8I}$o2um;E ztkcs$Gm}q?_NM}b@B(o)BlLMd`da4BXe6LFl0v}pR1?l_B$%~rPrkUaTTDzO`c15= LY7!bZyG86@rU&iP literal 0 HcmV?d00001 diff --git a/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/streaming_config.yaml b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/streaming_config.yaml new file mode 100644 index 00000000..6f3d2736 --- /dev/null +++ b/asap-tools/experiments/datasets/fake_metric/random_workloads/seed-862-x5/workload-10-pilot/streaming_config.yaml @@ -0,0 +1,89 @@ +aggregations: +- aggregationId: 1 + aggregationSubType: '' + aggregationType: DDSketch + labels: + aggregated: [] + grouping: + - job + - label_0 + - region + - service + rollup: [] + metric: data + parameters: + alpha: 0.1 + slideIntervalMs: 1000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 25000 + windowType: sliding +- aggregationId: 2 + aggregationSubType: sum + aggregationType: MultipleSum + labels: + aggregated: + - job + - region + - service + grouping: [] + rollup: [] + metric: data + parameters: {} + slideIntervalMs: 20000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 20000 + windowType: tumbling +- aggregationId: 3 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + - service + grouping: + - region + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 240 + width: 4096 + slideIntervalMs: 2000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 2000 + windowType: tumbling +- aggregationId: 4 + aggregationSubType: sum + aggregationType: CountMinSketchWithHeap + labels: + aggregated: + - job + - label_0 + grouping: + - region + - service + rollup: [] + metric: data + parameters: + depth: 3 + heapsize: 160 + width: 4096 + slideIntervalMs: 60000 + spatialFilter: '' + table_name: null + value_column: null + windowSizeMs: 60000 + windowType: tumbling +metrics: + data: + - job + - label_0 + - region + - service diff --git a/asap-tools/experiments/tests/test_random_workload_artifacts.py b/asap-tools/experiments/tests/test_random_workload_artifacts.py index 9f192828..47ba9ddd 100644 --- a/asap-tools/experiments/tests/test_random_workload_artifacts.py +++ b/asap-tools/experiments/tests/test_random_workload_artifacts.py @@ -35,6 +35,19 @@ CLICKHOUSE = shutil.which("clickhouse") +def all_workloads(): + return [ + w + for variant in workloads.VARIANTS + for w in workloads.generate_workloads(seed=862, variant=variant) + ] + + +def pilot_dir_of(workload): + set_dir = PILOT_DIR.parent.parent / artifacts.workload_set(workload) + return set_dir / f"{workload['id']}-pilot" + + def pilot(): workload = workloads.generate_workloads(seed=862)[0] files = artifacts.pilot_configs(workload, PILOT_DIR) @@ -93,9 +106,9 @@ def test_paced_feeder_table_preserves_all_manifest_data_facts(self): def test_archived_pilot_plans_read_the_manifests_pilot_queries(self): # An archived plan is only valid for the queries it was solved for. - for workload in workloads.generate_workloads(seed=862): - with self.subTest(workload=workload["id"]): - pilot_dir = PILOT_DIR.parent / f"{workload['id']}-pilot" + for workload in all_workloads(): + with self.subTest(workload=workload["id"], variant=workload.get("variant")): + pilot_dir = pilot_dir_of(workload) with open(pilot_dir / "eval_table.json") as f: e2e = json.load(f)["workloads"][0]["e2e"] self.assertEqual( @@ -116,9 +129,9 @@ def test_archived_pilot_plans_read_the_manifests_pilot_queries(self): ) def test_every_workload_renders_its_pilot_configs(self): - for workload in workloads.generate_workloads(seed=862): - with self.subTest(workload=workload["id"]): - pilot_dir = PILOT_DIR.parent / f"{workload['id']}-pilot" + for workload in all_workloads(): + with self.subTest(workload=workload["id"], variant=workload.get("variant")): + pilot_dir = pilot_dir_of(workload) files = artifacts.pilot_configs(workload, pilot_dir) self.assertEqual( sum(path.suffix == ".yaml" for path in files), 4, sorted(files) @@ -209,7 +222,9 @@ def compose(self, name): ): return compose( "config", - overrides=[f"experiment_type=random_workload/workload-01/{name}"], + overrides=[ + f"experiment_type=random_workload/seed-862/workload-01/{name}" + ], ) def test_e2e_and_victoriametrics_configs_validate(self): From 31f68e879ae930c01a9db733f082d1dd62c64a45 Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Thu, 15 Oct 2026 01:12:07 -0400 Subject: [PATCH 3/3] fix(asap-tools): pin VictoriaMetrics to v1.154.0 `latest` can change between runs of one experiment; v1.154.0 is what the random-workload pilot ran. Co-Authored-By: Claude Opus 5.5 --- .../services/docker-compose.victoriametrics.yml.j2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/asap-tools/experiments/experiment_utils/services/docker-compose.victoriametrics.yml.j2 b/asap-tools/experiments/experiment_utils/services/docker-compose.victoriametrics.yml.j2 index c47bec7f..735cb6d2 100644 --- a/asap-tools/experiments/experiment_utils/services/docker-compose.victoriametrics.yml.j2 +++ b/asap-tools/experiments/experiment_utils/services/docker-compose.victoriametrics.yml.j2 @@ -2,7 +2,7 @@ version: '3.8' services: vmsingle: - image: victoriametrics/victoria-metrics:latest + image: victoriametrics/victoria-metrics:v1.154.0 container_name: {{ vmsingle_container_name }} user: "{{ user_id }}:{{ group_id }}" network_mode: host @@ -36,7 +36,7 @@ services: restart: "no" vmagent: - image: victoriametrics/vmagent:latest + image: victoriametrics/vmagent:v1.154.0 container_name: {{ vmagent_container_name }} user: "{{ user_id }}:{{ group_id }}" network_mode: host