feat(api): optimized get session replay
This commit is contained in:
parent
e20b0d4f68
commit
e31dd82b92
3 changed files with 9 additions and 9 deletions
|
|
@ -1,23 +1,23 @@
|
|||
from chalicelib.utils import helper, pg_client
|
||||
|
||||
|
||||
def get_by_session_id(session_id):
|
||||
def get_by_session_id(session_id, project_id):
|
||||
with pg_client.PostgresClient() as cur:
|
||||
ch_query = """\
|
||||
SELECT
|
||||
timestamp AS datetime,
|
||||
url,
|
||||
type,
|
||||
duration,
|
||||
resources.duration AS duration,
|
||||
ttfb,
|
||||
header_size,
|
||||
encoded_body_size,
|
||||
decoded_body_size,
|
||||
success,
|
||||
COALESCE(status, CASE WHEN success THEN 200 END) AS status
|
||||
FROM events.resources
|
||||
WHERE session_id = %(session_id)s;"""
|
||||
params = {"session_id": session_id}
|
||||
FROM events.resources INNER JOIN sessions USING (session_id)
|
||||
WHERE session_id = %(session_id)s AND project_id= %(project_id)s;"""
|
||||
params = {"session_id": session_id, "project_id": project_id}
|
||||
cur.execute(cur.mogrify(ch_query, params))
|
||||
rows = cur.fetchall()
|
||||
return helper.list_to_camel_case(rows)
|
||||
|
|
|
|||
|
|
@ -94,7 +94,7 @@ def get_by_id2_pg(project_id, session_id, user_id, full_data=False, include_fav_
|
|||
data['userEvents'] = events.get_customs_by_sessionId2_pg(project_id=project_id,
|
||||
session_id=session_id)
|
||||
data['mobsUrl'] = sessions_mobs.get_web(sessionId=session_id)
|
||||
data['resources'] = resources.get_by_session_id(session_id=session_id)
|
||||
data['resources'] = resources.get_by_session_id(session_id=session_id, project_id=project_id)
|
||||
|
||||
data['metadata'] = __group_metadata(project_metadata=data.pop("projectMetadata"), session=data)
|
||||
data['issues'] = issues.get_by_session_id(session_id=session_id)
|
||||
|
|
|
|||
|
|
@ -3,14 +3,14 @@ from chalicelib.utils import ch_client
|
|||
from chalicelib.utils.TimeUTC import TimeUTC
|
||||
|
||||
|
||||
def get_by_session_id(session_id):
|
||||
def get_by_session_id(session_id, project_id):
|
||||
with ch_client.ClickHouseClient() as ch:
|
||||
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);"""
|
||||
params = {"session_id": session_id}
|
||||
WHERE session_id = toUInt64(%(session_id)s) AND project_id=%(project_id)s;"""
|
||||
params = {"session_id": session_id, "project_id": project_id}
|
||||
rows = ch.execute(query=ch_query, params=params)
|
||||
results = []
|
||||
for r in rows:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue