diff --git a/asap-planner-rs/docker-compose.yml.j2 b/asap-planner-rs/docker-compose.yml.j2 index d34973cc..4211a612 100644 --- a/asap-planner-rs/docker-compose.yml.j2 +++ b/asap-planner-rs/docker-compose.yml.j2 @@ -10,8 +10,10 @@ services: "--output_dir", "/app/output", "--prometheus_scrape_interval", "{{ prometheus_scrape_interval }}", "--streaming_engine", "{{ streaming_engine }}", - "--prometheus-url", "{{ prometheus_url }}"{% if punting %}, - "--enable-punting"{% endif %} + "--prometheus-url", "{{ prometheus_url }}", + "--query-language", "{{ query_language }}"{% if punting %}, + "--enable-punting"{% endif %}{% if data_ingestion_interval is not none %}, + "--data-ingestion-interval", "{{ data_ingestion_interval }}"{% endif %} ] network_mode: "host" restart: no diff --git a/asap-tools/experiments/generate_controller_compose.py b/asap-tools/experiments/generate_controller_compose.py index 67721b65..b41838f9 100644 --- a/asap-tools/experiments/generate_controller_compose.py +++ b/asap-tools/experiments/generate_controller_compose.py @@ -5,6 +5,7 @@ import argparse import os import sys +from typing import Optional from jinja2 import Template @@ -19,6 +20,8 @@ def generate_compose_file( streaming_engine: str, punting: bool, prometheus_url: str, + query_language: str, + data_ingestion_interval: Optional[int], ): """Generate docker-compose.yml from template with provided variables.""" @@ -43,6 +46,8 @@ def generate_compose_file( "streaming_engine": streaming_engine, "punting": punting, "prometheus_url": prometheus_url, + "query_language": query_language, + "data_ingestion_interval": data_ingestion_interval, } # Render the template @@ -124,9 +129,26 @@ def main(): required=True, help="Base URL of the Prometheus instance for metric label inference (e.g. http://localhost:9090)", ) + parser.add_argument( + "--query-language", + required=True, + choices=["promql", "sql"], + help="Query language for the controller", + ) + parser.add_argument( + "--data-ingestion-interval", + type=int, + default=None, + help="Data ingestion interval in seconds (SQL mode only)", + ) args = parser.parse_args() + if args.data_ingestion_interval is not None and args.query_language != "sql": + parser.error( + "--data-ingestion-interval is only valid when --query-language is 'sql'" + ) + generate_compose_file( template_path=args.template_path, output_path=args.compose_output_path, @@ -138,6 +160,8 @@ def main(): streaming_engine=args.streaming_engine, punting=args.punting, prometheus_url=args.prometheus_url, + query_language=args.query_language, + data_ingestion_interval=args.data_ingestion_interval, )