diff --git a/ee/api/chalicelib/core/errors.py b/ee/api/chalicelib/core/errors.py index a629926ab..14a20e61f 100644 --- a/ee/api/chalicelib/core/errors.py +++ b/ee/api/chalicelib/core/errors.py @@ -90,6 +90,11 @@ def __process_tags(row): def get_details(project_id, error_id, user_id, **data): pg_sub_query24 = __get_basic_constraints(time_constraint=False, chart=True, step_size_name="step_size24") pg_sub_query24.append("error_id = %(error_id)s") + pg_sub_query30_session = __get_basic_constraints(time_constraint=True, chart=False, startTime_arg_name="startDate30", + endTime_arg_name="endDate30",project_key="sessions.project_id") + pg_sub_query30_session.append("sessions.start_ts >= %(startDate30)s") + pg_sub_query30_session.append("sessions.start_ts <= %(endDate30)s") + pg_sub_query30_session.append("error_id = %(error_id)s") pg_sub_query30_err = __get_basic_constraints(time_constraint=True, chart=False, startTime_arg_name="startDate30", endTime_arg_name="endDate30",project_key="errors.project_id") pg_sub_query30_err.append("sessions.project_id = %(project_id)s") @@ -172,14 +177,14 @@ def get_details(project_id, error_id, user_id, **data): COUNT(session_id) AS count FROM events.errors INNER JOIN sessions USING (session_id) - WHERE {" AND ".join(pg_basic_query)} + WHERE {" AND ".join(pg_sub_query30_session)} GROUP BY user_browser ORDER BY count DESC) AS count_per_browser_query INNER JOIN LATERAL (SELECT JSONB_AGG(version_details) AS partition FROM (SELECT user_browser_version AS version, COUNT(session_id) AS count FROM events.errors INNER JOIN public.sessions USING (session_id) - WHERE {" AND ".join(pg_basic_query)} + WHERE {" AND ".join(pg_sub_query30_session)} AND sessions.user_browser = count_per_browser_query.name GROUP BY user_browser_version ORDER BY count DESC) AS version_details @@ -189,13 +194,13 @@ def get_details(project_id, error_id, user_id, **data): FROM (SELECT user_os AS name, COUNT(session_id) AS count FROM events.errors INNER JOIN public.sessions USING (session_id) - WHERE {" AND ".join(pg_basic_query)} + WHERE {" AND ".join(pg_sub_query30_session)} GROUP BY user_os ORDER BY count DESC) AS count_per_os_details INNER JOIN LATERAL (SELECT jsonb_agg(count_per_version_details) AS partition FROM (SELECT COALESCE(user_os_version,'unknown') AS version, COUNT(session_id) AS count FROM events.errors INNER JOIN public.sessions USING (session_id) - WHERE {" AND ".join(pg_basic_query)} + WHERE {" AND ".join(pg_sub_query30_session)} AND sessions.user_os = count_per_os_details.name GROUP BY user_os_version ORDER BY count DESC) AS count_per_version_details @@ -206,7 +211,7 @@ def get_details(project_id, error_id, user_id, **data): FROM (SELECT user_device_type AS name, COUNT(session_id) AS count FROM events.errors INNER JOIN public.sessions USING (session_id) - WHERE {" AND ".join(pg_basic_query)} + WHERE {" AND ".join(pg_sub_query30_session)} GROUP BY user_device_type ORDER BY count DESC) AS count_per_device_details INNER JOIN LATERAL (SELECT jsonb_agg(count_per_device_v_details) AS partition @@ -216,7 +221,7 @@ def get_details(project_id, error_id, user_id, **data): ELSE user_device END AS version, COUNT(session_id) AS count FROM events.errors INNER JOIN public.sessions USING (session_id) - WHERE {" AND ".join(pg_basic_query)} + WHERE {" AND ".join(pg_sub_query30_session)} AND sessions.user_device_type = count_per_device_details.name GROUP BY user_device ORDER BY count DESC) AS count_per_device_v_details @@ -226,7 +231,7 @@ def get_details(project_id, error_id, user_id, **data): FROM (SELECT user_country AS name, COUNT(session_id) AS count FROM events.errors INNER JOIN public.sessions USING (session_id) - WHERE {" AND ".join(pg_basic_query)} + WHERE {" AND ".join(pg_sub_query30_session)} GROUP BY user_country ORDER BY count DESC) AS count_per_country_details) AS country_details ON (TRUE) INNER JOIN (SELECT jsonb_agg(chart_details) AS chart24 diff --git a/ee/api/chalicelib/core/metrics.py b/ee/api/chalicelib/core/metrics.py index 3861f48aa..452566194 100644 --- a/ee/api/chalicelib/core/metrics.py +++ b/ee/api/chalicelib/core/metrics.py @@ -15,7 +15,7 @@ def __get_basic_constraints(table_name=None, time_constraint=True, round_start=F table_name += "." else: table_name = "" - ch_sub_query = [f"{table_name}{identifier} =toUInt32(%({identifier})s)"] + ch_sub_query = [f"{table_name}{identifier} =toUInt16(%({identifier})s)"] if time_constraint: if round_start: ch_sub_query.append( @@ -2012,7 +2012,7 @@ def get_resources_by_party(project_id, startTimestamp=TimeUTC.now(delta_days=-1) ch_sub_query = __get_basic_constraints(table_name="resources", round_start=True, data=args) ch_sub_query.append("resources.success = 0") ch_sub_query.append("resources.type IN ('fetch','script')") - sch_sub_query = ["rs.project_id =toUInt32(%(project_id)s)", "rs.type IN ('fetch','script')"] + sch_sub_query = ["rs.project_id =toUInt16(%(project_id)s)", "rs.type IN ('fetch','script')"] meta_condition = __get_meta_constraint(args) ch_sub_query += meta_condition # sch_sub_query += meta_condition diff --git a/ee/api/chalicelib/core/resources.py b/ee/api/chalicelib/core/resources.py index e5d7ee126..f2dbe6786 100644 --- a/ee/api/chalicelib/core/resources.py +++ b/ee/api/chalicelib/core/resources.py @@ -15,7 +15,7 @@ def get_by_session_id(session_id, project_id, start_ts, duration): encoded_body_size,decoded_body_size,success, if(success, 200, 400) AS status FROM {exp_ch_helper.get_main_resources_table(start_ts)} - WHERE session_id = toUInt64(%(session_id)s) + WHERE session_id = toUInt16(%(session_id)s) AND project_id = toUInt16(%(project_id)s) AND datetime >= toDateTime(%(res_start_ts)s / 1000) AND datetime <= toDateTime(%(res_end_ts)s / 1000);""" @@ -25,8 +25,8 @@ def get_by_session_id(session_id, project_id, start_ts, duration): encoded_body_size,decoded_body_size,success, coalesce(status,if(success, 200, status)) AS status FROM resources - WHERE session_id = toUInt64(%(session_id)s) - AND project_id = toUInt64(%(project_id)s) + WHERE session_id = toUInt16(%(session_id)s) + AND project_id = toUInt16(%(project_id)s) AND datetime >= toDateTime(%(res_start_ts)s / 1000) AND datetime <= toDateTime(%(res_end_ts)s / 1000);""" params = {"session_id": session_id, "project_id": project_id, "start_ts": start_ts, "duration": duration,