diff --git a/tutoraspects/templates/aspects/apps/superset/pythonpath/performance_metrics.py b/tutoraspects/templates/aspects/apps/superset/pythonpath/performance_metrics.py index ef106d9be..269a67d39 100644 --- a/tutoraspects/templates/aspects/apps/superset/pythonpath/performance_metrics.py +++ b/tutoraspects/templates/aspects/apps/superset/pythonpath/performance_metrics.py @@ -46,7 +46,10 @@ ) @click.command() -@click.option("--course_key", default="", help="A course_key to apply as a filter.") +@click.option( + "--course_key", + default="", + help="A course_key to apply as a filter, you must include the 'course-v1:'.") @click.option( "--print_sql", is_flag=True, @@ -64,7 +67,8 @@ def performance_metrics(course_key, print_sql, fail_on_error): # table by by the http_user_agent field. extra_filters = [] if course_key: - extra_filters+=[{"col":"course_key","op":"==","val":course_key}] + extra_filters += [{"col": "course_key", "op": "==", "val": course_key}] + with patch("clickhouse_connect.common.build_client_name") as mock_build_client_name: mock_build_client_name.return_value = RUN_ID embedable_dashboards = {{SUPERSET_EMBEDDABLE_DASHBOARDS}} @@ -78,7 +82,11 @@ def performance_metrics(course_key, print_sql, fail_on_error): for dashboard in dashboards: logger.info(f"Dashboard: {dashboard.slug}") for slice in dashboard.slices: - query_context = get_slice_query_context(slice, query_contexts) + query_context = get_slice_query_context( + slice, + query_contexts, + extra_filters + ) result = measure_chart(slice, query_context, fail_on_error) if not result: continue @@ -111,7 +119,11 @@ def get_query_contexts_from_assets(): logger.info(f"Found {len(query_contexts)} query contexts") return query_contexts -def get_slice_query_context(slice, query_contexts, extra_filters=[]): + +def get_slice_query_context(slice, query_contexts, extra_filters=None): + if not extra_filters: + extra_filters = [] + query_context = query_contexts.get(str(slice.uuid), {}) if not query_context: logger.info(f"SLICE {slice} has no query context! {slice.uuid}") @@ -131,7 +143,7 @@ def get_slice_query_context(slice, query_contexts, extra_filters=[]): if extra_filters: for query in query_context["queries"]: - query["filters"]+=extra_filters + query["filters"] += extra_filters return query_context @@ -152,7 +164,6 @@ def measure_chart(slice, query_context, fail_on_error): for query in result["queries"]: if "error" in query and query["error"]: - print(query["error"]) raise query["error"] except Exception as e: logger.error(f"Error fetching slice data: {slice}. Error: {e}")