From 9516dcd238388cd2601a541f4a795f5578a9a318 Mon Sep 17 00:00:00 2001 From: Kraiem Taha Yassine Date: Tue, 2 Jul 2024 11:53:47 +0200 Subject: [PATCH] Dev (#2333) * refactor(chalice): upgraded dependencies * refactor(chalice): upgraded dependencies feat(chalice): support heatmaps * feat(chalice): support table-of-browsers showing user-count * feat(chalice): support table-of-devices showing user-count * feat(chalice): support table-of-URLs showing user-count * fix(chalice): fixed Math-operators validation refactor(chalice): search for sessions that have events for heatmaps * refactor(chalice): search for sessions that have at least 1 location event for heatmaps * refactor(chalice): removed timeseries-card progress refactor(chalice): removed tables-card pieChart refactor(DB): migrated timeseries-card progress refactor(DB): migrated tables-card pieChart --- api/chalicelib/core/custom_metrics.py | 21 ------------------- api/schemas/schemas.py | 2 -- ee/api/chalicelib/core/custom_metrics.py | 21 ------------------- .../db/init_dbs/postgresql/1.19.0/1.19.0.sql | 8 +++++++ .../db/init_dbs/postgresql/1.19.0/1.19.0.sql | 8 +++++++ 5 files changed, 16 insertions(+), 44 deletions(-) diff --git a/api/chalicelib/core/custom_metrics.py b/api/chalicelib/core/custom_metrics.py index 6dd9b5ad9..d00a3a7a1 100644 --- a/api/chalicelib/core/custom_metrics.py +++ b/api/chalicelib/core/custom_metrics.py @@ -25,25 +25,6 @@ def __try_live(project_id, data: schemas.CardSchema): results.append(sessions.search2_series(data=s.filter, project_id=project_id, density=data.density, view_type=data.view_type, metric_type=data.metric_type, metric_of=data.metric_of, metric_value=data.metric_value)) - if data.view_type == schemas.MetricTimeseriesViewType.progress: - r = {"count": results[-1]} - diff = s.filter.endTimestamp - s.filter.startTimestamp - s.filter.endTimestamp = s.filter.startTimestamp - s.filter.startTimestamp = s.filter.endTimestamp - diff - r["previousCount"] = sessions.search2_series(data=s.filter, project_id=project_id, density=data.density, - view_type=data.view_type, metric_type=data.metric_type, - metric_of=data.metric_of, metric_value=data.metric_value) - r["countProgress"] = helper.__progress(old_val=r["previousCount"], new_val=r["count"]) - r["seriesName"] = s.name if s.name else i + 1 - r["seriesId"] = s.series_id if s.series_id else None - results[-1] = r - elif data.view_type == schemas.MetricTableViewType.pie_chart: - if len(results[i].get("values", [])) > PIE_CHART_GROUP: - results[i]["values"] = results[i]["values"][:PIE_CHART_GROUP] \ - + [{ - "name": "Others", "group": True, - "sessionCount": sum(r["sessionCount"] for r in results[i]["values"][PIE_CHART_GROUP:]) - }] return results @@ -112,8 +93,6 @@ def __get_path_analysis_chart(project_id: int, user_id: int, data: schemas.CardP def __get_timeseries_chart(project_id: int, data: schemas.CardTimeSeries, user_id: int = None): series_charts = __try_live(project_id=project_id, data=data) - if data.view_type == schemas.MetricTimeseriesViewType.progress: - return series_charts results = [{}] * len(series_charts[0]) for i in range(len(results)): for j, series_chart in enumerate(series_charts): diff --git a/api/schemas/schemas.py b/api/schemas/schemas.py index 15b3af80f..92db8a6a2 100644 --- a/api/schemas/schemas.py +++ b/api/schemas/schemas.py @@ -913,13 +913,11 @@ class CardSeriesSchema(BaseModel): class MetricTimeseriesViewType(str, Enum): line_chart = "lineChart" - progress = "progress" area_chart = "areaChart" class MetricTableViewType(str, Enum): table = "table" - pie_chart = "pieChart" class MetricOtherViewType(str, Enum): diff --git a/ee/api/chalicelib/core/custom_metrics.py b/ee/api/chalicelib/core/custom_metrics.py index 6464c6073..c01284ce6 100644 --- a/ee/api/chalicelib/core/custom_metrics.py +++ b/ee/api/chalicelib/core/custom_metrics.py @@ -36,25 +36,6 @@ def __try_live(project_id, data: schemas.CardSchema): results.append(sessions.search2_series(data=s.filter, project_id=project_id, density=data.density, view_type=data.view_type, metric_type=data.metric_type, metric_of=data.metric_of, metric_value=data.metric_value)) - if data.view_type == schemas.MetricTimeseriesViewType.progress: - r = {"count": results[-1]} - diff = s.filter.endTimestamp - s.filter.startTimestamp - s.filter.endTimestamp = s.filter.startTimestamp - s.filter.startTimestamp = s.filter.endTimestamp - diff - r["previousCount"] = sessions.search2_series(data=s.filter, project_id=project_id, density=data.density, - view_type=data.view_type, metric_type=data.metric_type, - metric_of=data.metric_of, metric_value=data.metric_value) - r["countProgress"] = helper.__progress(old_val=r["previousCount"], new_val=r["count"]) - r["seriesName"] = s.name if s.name else i + 1 - r["seriesId"] = s.series_id if s.series_id else None - results[-1] = r - elif data.view_type == schemas.MetricTableViewType.pie_chart: - if len(results[i].get("values", [])) > PIE_CHART_GROUP: - results[i]["values"] = results[i]["values"][:PIE_CHART_GROUP] \ - + [{ - "name": "Others", "group": True, - "sessionCount": sum(r["sessionCount"] for r in results[i]["values"][PIE_CHART_GROUP:]) - }] return results @@ -132,8 +113,6 @@ def __get_path_analysis_chart(project_id: int, user_id: int, data: schemas.CardP def __get_timeseries_chart(project_id: int, data: schemas.CardTimeSeries, user_id: int = None): series_charts = __try_live(project_id=project_id, data=data) - if data.view_type == schemas.MetricTimeseriesViewType.progress: - return series_charts results = [{}] * len(series_charts[0]) for i in range(len(results)): for j, series_chart in enumerate(series_charts): diff --git a/ee/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql b/ee/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql index 91f852ecc..9eb47cc17 100644 --- a/ee/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql +++ b/ee/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql @@ -34,6 +34,14 @@ WHERE metric_id IN (SELECT metric_id WHERE metric_type = 'webVitals') AND config ->> 'col' = '1'; +UPDATE public.metrics +SET view_type='table' +WHERE view_type = 'pieChart'; + +UPDATE public.metrics +SET view_type='lineChart' +WHERE view_type = 'progress'; + COMMIT; \elif :is_next diff --git a/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql b/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql index 0c8f79f9c..c85933c2b 100644 --- a/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql +++ b/scripts/schema/db/init_dbs/postgresql/1.19.0/1.19.0.sql @@ -34,6 +34,14 @@ WHERE metric_id IN (SELECT metric_id WHERE metric_type = 'webVitals') AND config ->> 'col' = '1'; +UPDATE public.metrics +SET view_type='table' +WHERE view_type = 'pieChart'; + +UPDATE public.metrics +SET view_type='lineChart' +WHERE view_type = 'progress'; + COMMIT; \elif :is_next