feat(chalice): get replay resources from experimental table

This commit is contained in:
Taha Yassine Kraiem 2022-09-07 21:40:42 +01:00
parent ebf7edf476
commit ec966902e3
3 changed files with 26 additions and 10 deletions

View file

@ -42,3 +42,6 @@ if config("EXP_FUNNELS", cast=bool, default=False):
from . import significance_exp as significance
else:
from . import significance as significance
if config("EXP_RESOURCES", cast=bool, default=False):
print(">>> Using experimental resources for session-replay")

View file

@ -1,4 +1,4 @@
from chalicelib.utils import helper
from chalicelib.utils import helper, exp_ch_helper
from chalicelib.utils import ch_client
from chalicelib.utils.TimeUTC import TimeUTC
from decouple import config
@ -9,14 +9,26 @@ def get_by_session_id(session_id, project_id, start_ts, duration):
if duration is None or (type(duration) != 'int' and type(duration) != 'float') or duration < 0:
duration = 0
delta = config("events_ts_delta", cast=int, default=60 * 60) * 1000
ch_query = """\
SELECT
datetime,url,type,duration,ttfb,header_size,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=%(project_id)s
AND datetime >= toDateTime(%(res_start_ts)s / 1000)
AND datetime <= toDateTime(%(res_end_ts)s / 1000);"""
if config("EXP_RESOURCES", cast=bool, default=False):
ch_query = f"""SELECT
datetime,url,type,duration,ttfb,header_size,
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 = toUInt16(%(session_id)s)
AND project_id=%(project_id)s
AND datetime >= toDateTime(%(res_start_ts)s / 1000)
AND datetime <= toDateTime(%(res_end_ts)s / 1000);"""
else:
ch_query = """SELECT
datetime,url,type,duration,ttfb,header_size,
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=%(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,
"res_start_ts": start_ts - delta, "res_end_ts": start_ts + duration + delta, }
rows = ch.execute(query=ch_query, params=params)

View file

@ -66,4 +66,5 @@ EXP_ERRORS_SEARCH=false
EXP_METRICS=false
EXP_7D_MV=false
EXP_ALERTS=false
EXP_FUNNELS=false
EXP_FUNNELS=false
EXP_RESOURCES=true