From 3671e045fe2654bbcdf5000dddfd89ce6c3f754c Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Tue, 5 May 2026 11:43:59 -0400 Subject: [PATCH 1/3] updated asap-quickstart --- asap-quickstart/config/engine_config.yaml | 22 ++++++++++++ .../config/prometheus-precompute.yml | 36 ------------------- asap-quickstart/config/prometheus.yml | 8 ++--- asap-quickstart/docker-compose.yml | 32 ++++++----------- 4 files changed, 36 insertions(+), 62 deletions(-) create mode 100644 asap-quickstart/config/engine_config.yaml delete mode 100644 asap-quickstart/config/prometheus-precompute.yml diff --git a/asap-quickstart/config/engine_config.yaml b/asap-quickstart/config/engine_config.yaml new file mode 100644 index 00000000..1e1989ef --- /dev/null +++ b/asap-quickstart/config/engine_config.yaml @@ -0,0 +1,22 @@ +output_dir: "/app/outputs" +log_level: "INFO" +prometheus_scrape_interval: 1 +streaming_engine: "precompute" + +http_server: + port: 8088 + +backend: + type: "prometheus" + server: "http://prometheus:9090" + forward_unsupported_queries: true + +store: + lock_strategy: "per-key" + +ingest: + type: "http_remote_write" + port: 9091 + +inference_config: "/asap-planner-output/inference_config.yaml" +streaming_config: "/asap-planner-output/streaming_config.yaml" diff --git a/asap-quickstart/config/prometheus-precompute.yml b/asap-quickstart/config/prometheus-precompute.yml deleted file mode 100644 index ee1979b9..00000000 --- a/asap-quickstart/config/prometheus-precompute.yml +++ /dev/null @@ -1,36 +0,0 @@ -# Prometheus configuration for pattern-based fake exporters demo -# Uses the hand-crafted precompute engine (instead of Arroyo) for sketch building - -global: - scrape_interval: 1s - evaluation_interval: 1s - -# Remote write configuration to send metrics to the precompute engine for sketch building -remote_write: - - url: http://queryengine:9091/api/v1/write - queue_config: - batch_send_deadline: 1s - write_relabel_configs: - - source_labels: [__name__] - regex: sensor_reading - action: keep - -scrape_configs: - # Scrape pattern-based fake exporters - # Each exporter generates one pattern type (constant, sine, linear, etc.) - # All metrics have a 'pattern' label indicating their pattern type - - job_name: 'pattern-exporters' - metric_relabel_configs: - - source_labels: [__name__] - regex: sensor_reading - action: keep - static_configs: - - targets: - - 'fake-exporter-constant:50000' - - 'fake-exporter-linear-up:50001' - - 'fake-exporter-linear-down:50002' - - 'fake-exporter-sine:50003' - - 'fake-exporter-sine-noise:50004' - - 'fake-exporter-step:50005' - - 'fake-exporter-spiky:50006' - - 'fake-exporter-exp-up:50007' diff --git a/asap-quickstart/config/prometheus.yml b/asap-quickstart/config/prometheus.yml index c336930d..52f37478 100644 --- a/asap-quickstart/config/prometheus.yml +++ b/asap-quickstart/config/prometheus.yml @@ -1,17 +1,15 @@ # Prometheus configuration for pattern-based fake exporters demo +# Uses the hand-crafted precompute engine (instead of Arroyo) for sketch building global: scrape_interval: 1s evaluation_interval: 1s -# Remote write configuration to send metrics to ASAPQuery for sketch building +# Remote write configuration to send metrics to the precompute engine for sketch building remote_write: - - url: http://queryengine:9091/receive + - url: http://queryengine:9091/api/v1/write queue_config: batch_send_deadline: 1s - # Drop samples older than 5 minutes before enqueuing — prevents WAL replay - # on restart from flooding Arroyo with historical data. - sample_age_limit: 5m write_relabel_configs: - source_labels: [__name__] regex: sensor_reading diff --git a/asap-quickstart/docker-compose.yml b/asap-quickstart/docker-compose.yml index aa83ac38..38036f22 100644 --- a/asap-quickstart/docker-compose.yml +++ b/asap-quickstart/docker-compose.yml @@ -76,7 +76,7 @@ services: ############################################################################# asap-planner-rs: - image: ghcr.io/projectasap/asap-planner-rs:v0.3.1 + image: ghcr.io/projectasap/asap-planner-rs:v0.4.0 container_name: asap-planner-rs hostname: asap-planner-rs networks: @@ -99,7 +99,7 @@ services: ############################################################################# queryengine: - image: ghcr.io/projectasap/asap-query-engine:v0.3.1 + image: ghcr.io/projectasap/asap-query-engine:v0.4.0 container_name: asap-queryengine hostname: queryengine networks: @@ -113,19 +113,9 @@ services: volumes: - asap-planner-output:/asap-planner-output:ro - ./output/queryengine:/app/outputs + - ./config/engine_config.yaml:/config/engine_config.yaml:ro command: - - "--config=/asap-planner-output/inference_config.yaml" - - "--streaming-config=/asap-planner-output/streaming_config.yaml" - - "--prometheus-server=http://prometheus:9090" - - "--prometheus-scrape-interval=1" - - "--streaming-engine=precompute" - - "--prometheus-remote-write-port=9091" - - "--delete-existing-db" - - "--log-level=INFO" - - "--output-dir=/app/outputs" - - "--query-language=PROMQL" - - "--lock-strategy=per-key" - - "--forward-unsupported-queries" + - "--config-file=/config/engine_config.yaml" depends_on: asap-planner-rs: condition: service_completed_successfully @@ -141,7 +131,7 @@ services: # Constant values - baseline for comparison fake-exporter-constant: - image: ghcr.io/projectasap/asap-fake-exporter:v0.3.1 + image: ghcr.io/projectasap/asap-fake-exporter:v0.4.0 container_name: asap-fake-exporter-constant hostname: fake-exporter-constant networks: @@ -163,7 +153,7 @@ services: # Linear increasing - tests trend preservation fake-exporter-linear-up: - image: ghcr.io/projectasap/asap-fake-exporter:v0.3.1 + image: ghcr.io/projectasap/asap-fake-exporter:v0.4.0 container_name: asap-fake-exporter-linear-up hostname: fake-exporter-linear-up networks: @@ -185,7 +175,7 @@ services: # Linear decreasing - tests trend preservation fake-exporter-linear-down: - image: ghcr.io/projectasap/asap-fake-exporter:v0.3.1 + image: ghcr.io/projectasap/asap-fake-exporter:v0.4.0 container_name: asap-fake-exporter-linear-down hostname: fake-exporter-linear-down networks: @@ -207,7 +197,7 @@ services: # Sine wave - tests periodicity preservation fake-exporter-sine: - image: ghcr.io/projectasap/asap-fake-exporter:v0.3.1 + image: ghcr.io/projectasap/asap-fake-exporter:v0.4.0 container_name: asap-fake-exporter-sine hostname: fake-exporter-sine networks: @@ -229,7 +219,7 @@ services: # Sine with noise - tests signal extraction / smoothing fake-exporter-sine-noise: - image: ghcr.io/projectasap/asap-fake-exporter:v0.3.1 + image: ghcr.io/projectasap/asap-fake-exporter:v0.4.0 container_name: asap-fake-exporter-sine-noise hostname: fake-exporter-sine-noise networks: @@ -251,7 +241,7 @@ services: # Step function - tests edge preservation fake-exporter-step: - image: ghcr.io/projectasap/asap-fake-exporter:v0.3.1 + image: ghcr.io/projectasap/asap-fake-exporter:v0.4.0 container_name: asap-fake-exporter-step hostname: fake-exporter-step networks: @@ -273,7 +263,7 @@ services: # Exponential growth - tests non-linear patterns fake-exporter-exp-up: - image: ghcr.io/projectasap/asap-fake-exporter:v0.3.1 + image: ghcr.io/projectasap/asap-fake-exporter:v0.4.0 container_name: asap-fake-exporter-exp-up hostname: fake-exporter-exp-up networks: From 2524d14c6f8ded85c0f30a0d5f9b61332e884d2f Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Tue, 5 May 2026 11:56:06 -0400 Subject: [PATCH 2/3] updated asap-dropin --- asap-dropin/config/engine_config.yaml | 23 +++++++++++++++++++++++ asap-dropin/docker-compose.yml | 19 ++++++------------- 2 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 asap-dropin/config/engine_config.yaml diff --git a/asap-dropin/config/engine_config.yaml b/asap-dropin/config/engine_config.yaml new file mode 100644 index 00000000..195d3621 --- /dev/null +++ b/asap-dropin/config/engine_config.yaml @@ -0,0 +1,23 @@ +output_dir: "/app/outputs" +log_level: "INFO" +prometheus_scrape_interval: 15 +streaming_engine: "precompute" + +http_server: + port: 8088 + +backend: + type: "prometheus" + server: "http://localhost:9090" + forward_unsupported_queries: true + +store: + lock_strategy: "per-key" + +ingest: + type: "http_remote_write" + port: 9091 + +query_tracker: + enabled: true + observation_window_secs: 60 diff --git a/asap-dropin/docker-compose.yml b/asap-dropin/docker-compose.yml index f1660ef9..5e4c72a4 100644 --- a/asap-dropin/docker-compose.yml +++ b/asap-dropin/docker-compose.yml @@ -14,7 +14,7 @@ name: asapquery-dropin services: queryengine: - image: ghcr.io/projectasap/asap-query-engine:v0.3.1 + image: ghcr.io/projectasap/asap-query-engine:v0.4.0 container_name: asap-dropin-queryengine hostname: queryengine ports: @@ -25,19 +25,12 @@ services: - RUST_BACKTRACE=1 volumes: - ./output/queryengine:/app/outputs + - ./config/engine_config.yaml:/config/engine_config.yaml:ro command: - - "--prometheus-server=${PROMETHEUS_URL:-http://localhost:9090}" - - "--prometheus-scrape-interval=${PROMETHEUS_SCRAPE_INTERVAL:-15}" - - "--streaming-engine=precompute" - - "--prometheus-remote-write-port=9091" - - "--delete-existing-db" - - "--log-level=INFO" - - "--output-dir=/app/outputs" - - "--query-language=PROMQL" - - "--lock-strategy=per-key" - - "--forward-unsupported-queries" - - "--enable-query-tracker" - - "--tracker-observation-window-secs=${TRACKER_OBSERVATION_WINDOW_SECS:-60}" + - "--config-file=/config/engine_config.yaml" + - "backend.server=${PROMETHEUS_URL:-http://localhost:9090}" + - "prometheus_scrape_interval=${PROMETHEUS_SCRAPE_INTERVAL:-15}" + - "query_tracker.observation_window_secs=${TRACKER_OBSERVATION_WINDOW_SECS:-60}" healthcheck: test: ["CMD-SHELL", "bash -c 'echo > /dev/tcp/localhost/8088' 2>/dev/null || exit 1"] interval: 10s From 662fbee905dfbdb7033fe6eac401710473193d8f Mon Sep 17 00:00:00 2001 From: Milind Srivastava Date: Tue, 5 May 2026 13:51:51 -0400 Subject: [PATCH 3/3] updated CI --- .github/workflows/accuracy_performance.yml | 10 ++++++++++ benchmarks/docker-compose.yml | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/.github/workflows/accuracy_performance.yml b/.github/workflows/accuracy_performance.yml index f21880ee..9cd3b846 100644 --- a/.github/workflows/accuracy_performance.yml +++ b/.github/workflows/accuracy_performance.yml @@ -76,6 +76,16 @@ jobs: cache-from: type=registry,ref=ghcr.io/projectasap/asap-query-engine:buildcache cache-to: type=registry,ref=ghcr.io/projectasap/asap-query-engine:buildcache,mode=max + - name: Build and push asap-fake-exporter + uses: docker/build-push-action@v6 + with: + context: asap-tools/data-sources/prometheus-exporters/fake_exporter/fake_exporter_rust/fake_exporter + file: asap-tools/data-sources/prometheus-exporters/fake_exporter/fake_exporter_rust/fake_exporter/Dockerfile + push: true + tags: ghcr.io/projectasap/asap-fake-exporter:${{ steps.tag.outputs.value }} + cache-from: type=registry,ref=ghcr.io/projectasap/asap-fake-exporter:buildcache + cache-to: type=registry,ref=ghcr.io/projectasap/asap-fake-exporter:buildcache,mode=max + # --------------------------------------------------------------------------- # Job 2: pull the images built above, deploy the full stack, and evaluate. # --------------------------------------------------------------------------- diff --git a/benchmarks/docker-compose.yml b/benchmarks/docker-compose.yml index bab96d9b..e6106eb3 100644 --- a/benchmarks/docker-compose.yml +++ b/benchmarks/docker-compose.yml @@ -19,3 +19,24 @@ services: - ../benchmarks/config/engine_config.yaml:/config/engine_config.yaml:ro command: - "--config-file=/config/engine_config.yaml" + + fake-exporter-constant: + image: ghcr.io/projectasap/asap-fake-exporter:${ASAP_IMAGE_TAG} + + fake-exporter-linear-up: + image: ghcr.io/projectasap/asap-fake-exporter:${ASAP_IMAGE_TAG} + + fake-exporter-linear-down: + image: ghcr.io/projectasap/asap-fake-exporter:${ASAP_IMAGE_TAG} + + fake-exporter-sine: + image: ghcr.io/projectasap/asap-fake-exporter:${ASAP_IMAGE_TAG} + + fake-exporter-sine-noise: + image: ghcr.io/projectasap/asap-fake-exporter:${ASAP_IMAGE_TAG} + + fake-exporter-step: + image: ghcr.io/projectasap/asap-fake-exporter:${ASAP_IMAGE_TAG} + + fake-exporter-exp-up: + image: ghcr.io/projectasap/asap-fake-exporter:${ASAP_IMAGE_TAG}