feat(api): custom metrics for issues
This commit is contained in:
parent
df5772d487
commit
e35f3a7b9f
2 changed files with 11 additions and 6 deletions
|
|
@ -302,12 +302,16 @@ def search2_series(data: schemas.SessionsSearchPayloadSchema, project_id: int, d
|
|||
elif metric_type == schemas.MetricType.table:
|
||||
if isinstance(metric_of, schemas.MetricOfType):
|
||||
main_col = "user_id"
|
||||
extra_col = ""
|
||||
if metric_of == schemas.MetricOfType.user_country:
|
||||
main_col = "user_country"
|
||||
elif metric_of == schemas.MetricOfType.user_device:
|
||||
main_col = "user_device"
|
||||
elif metric_of == schemas.MetricOfType.user_browser:
|
||||
main_col = "user_browser"
|
||||
elif metric_of == schemas.MetricOfType.issues:
|
||||
main_col = "issue"
|
||||
extra_col = f", UNNEST(s.issue_types) AS {main_col}"
|
||||
main_query = cur.mogrify(f"""SELECT COUNT(*) AS count, COALESCE(JSONB_AGG(users_sessions) FILTER ( WHERE rn <= 200 ), '[]'::JSONB) AS values
|
||||
FROM (SELECT {main_col} AS name,
|
||||
count(full_sessions) AS session_count,
|
||||
|
|
@ -316,7 +320,7 @@ def search2_series(data: schemas.SessionsSearchPayloadSchema, project_id: int, d
|
|||
FROM (SELECT DISTINCT ON(s.session_id) s.session_id, s.user_uuid,
|
||||
s.user_id, s.user_os,
|
||||
s.user_browser, s.user_device,
|
||||
s.user_device_type, s.user_country
|
||||
s.user_device_type, s.user_country, s.issue_types{extra_col}
|
||||
{query_part}
|
||||
ORDER BY s.session_id desc) AS filtred_sessions
|
||||
) AS full_sessions
|
||||
|
|
|
|||
|
|
@ -726,11 +726,12 @@ class CustomMetricRawPayloadSchema2(CustomMetricRawPayloadSchema):
|
|||
|
||||
|
||||
class MetricOfType(str, Enum):
|
||||
user_os = FilterType.user_os
|
||||
user_browser = FilterType.user_browser
|
||||
user_device = FilterType.user_device
|
||||
user_country = FilterType.user_country
|
||||
user_id = FilterType.user_id
|
||||
user_os = FilterType.user_os.value
|
||||
user_browser = FilterType.user_browser.value
|
||||
user_device = FilterType.user_device.value
|
||||
user_country = FilterType.user_country.value
|
||||
user_id = FilterType.user_id.value
|
||||
issues = FilterType.issue.value
|
||||
|
||||
|
||||
class CustomMetricChartPayloadSchema(CustomMetricRawPayloadSchema):
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue