feat(api): round time metrics
This commit is contained in:
parent
a153547575
commit
e322e9c3d0
4 changed files with 67 additions and 42 deletions
|
|
@ -967,7 +967,7 @@ def get_pages_dom_build_time(project_id, startTimestamp=TimeUTC.now(delta_days=-
|
|||
|
||||
cur.execute(cur.mogrify(pg_query, params))
|
||||
row = cur.fetchone()
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(row)
|
||||
return row
|
||||
|
||||
|
||||
|
|
@ -1126,7 +1126,9 @@ def get_pages_response_time(project_id, startTimestamp=TimeUTC.now(delta_days=-1
|
|||
WHERE {" AND ".join(pg_sub_query)};"""
|
||||
cur.execute(cur.mogrify(pg_query, params))
|
||||
avg = cur.fetchone()["avg"]
|
||||
return {"value": avg, "chart": rows, "unit": schemas.TemplatePredefinedUnits.millisecond}
|
||||
result = {"value": avg, "chart": rows}
|
||||
helper.__time_value(result)
|
||||
return result
|
||||
|
||||
|
||||
def get_pages_response_time_distribution(project_id, startTimestamp=TimeUTC.now(delta_days=-1),
|
||||
|
|
@ -1348,7 +1350,7 @@ def get_time_to_render(project_id, startTimestamp=TimeUTC.now(delta_days=-1),
|
|||
"endTimestamp": endTimestamp, "value": url, **__get_constraint_values(args)}
|
||||
cur.execute(cur.mogrify(pg_query, params))
|
||||
row = cur.fetchone()
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(row)
|
||||
return row
|
||||
|
||||
|
||||
|
|
@ -2241,7 +2243,7 @@ def get_application_activity_avg_image_load_time(project_id, startTimestamp=Time
|
|||
row = __get_application_activity_avg_image_load_time(cur, project_id, startTimestamp, endTimestamp, **args)
|
||||
previous = helper.dict_to_camel_case(row)
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2300,7 +2302,7 @@ def __get_application_activity_avg_page_load_time(cur, project_id, startTimestam
|
|||
|
||||
cur.execute(cur.mogrify(pg_query, params))
|
||||
row = cur.fetchone()
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(row)
|
||||
return row
|
||||
|
||||
|
||||
|
|
@ -2316,7 +2318,7 @@ def get_application_activity_avg_page_load_time(project_id, startTimestamp=TimeU
|
|||
row = __get_application_activity_avg_page_load_time(cur, project_id, startTimestamp, endTimestamp, **args)
|
||||
previous = helper.dict_to_camel_case(row)
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2369,7 +2371,7 @@ def __get_application_activity_avg_request_load_time(cur, project_id, startTimes
|
|||
"endTimestamp": endTimestamp, **__get_constraint_values(args)}))
|
||||
|
||||
row = cur.fetchone()
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(row)
|
||||
return row
|
||||
|
||||
|
||||
|
|
@ -2385,7 +2387,7 @@ def get_application_activity_avg_request_load_time(project_id, startTimestamp=Ti
|
|||
row = __get_application_activity_avg_request_load_time(cur, project_id, startTimestamp, endTimestamp, **args)
|
||||
previous = helper.dict_to_camel_case(row)
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2442,7 +2444,7 @@ def get_page_metrics_avg_dom_content_load_start(project_id, startTimestamp=TimeU
|
|||
row = __get_page_metrics_avg_dom_content_load_start(cur, project_id, startTimestamp, endTimestamp, **args)
|
||||
previous = helper.dict_to_camel_case(row)
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2512,7 +2514,7 @@ def get_page_metrics_avg_first_contentful_pixel(project_id, startTimestamp=TimeU
|
|||
if len(rows) > 0:
|
||||
previous = helper.dict_to_camel_case(rows[0])
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2645,7 +2647,7 @@ def get_user_activity_avg_session_duration(project_id, startTimestamp=TimeUTC.no
|
|||
|
||||
previous = helper.dict_to_camel_case(row)
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2731,7 +2733,7 @@ def get_top_metrics_avg_response_time(project_id, startTimestamp=TimeUTC.now(del
|
|||
cur.execute(cur.mogrify(pg_query, params))
|
||||
rows = cur.fetchall()
|
||||
row["chart"] = helper.list_to_camel_case(rows)
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(row)
|
||||
return helper.dict_to_camel_case(row)
|
||||
|
||||
|
||||
|
|
@ -2772,7 +2774,7 @@ def get_top_metrics_avg_first_paint(project_id, startTimestamp=TimeUTC.now(delta
|
|||
cur.execute(cur.mogrify(pg_query, params))
|
||||
rows = cur.fetchall()
|
||||
row["chart"] = helper.list_to_camel_case(rows)
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(row)
|
||||
return helper.dict_to_camel_case(row)
|
||||
|
||||
|
||||
|
|
@ -2816,7 +2818,7 @@ def get_top_metrics_avg_dom_content_loaded(project_id, startTimestamp=TimeUTC.no
|
|||
cur.execute(cur.mogrify(pg_query, params))
|
||||
rows = cur.fetchall()
|
||||
row["chart"] = helper.list_to_camel_case(rows)
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(row)
|
||||
return helper.dict_to_camel_case(row)
|
||||
|
||||
|
||||
|
|
@ -2857,7 +2859,7 @@ def get_top_metrics_avg_till_first_bit(project_id, startTimestamp=TimeUTC.now(de
|
|||
cur.execute(cur.mogrify(pg_query, params))
|
||||
rows = cur.fetchall()
|
||||
row["chart"] = helper.list_to_camel_case(rows)
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(row)
|
||||
return helper.dict_to_camel_case(row)
|
||||
|
||||
|
||||
|
|
@ -2899,7 +2901,7 @@ def get_top_metrics_avg_time_to_interactive(project_id, startTimestamp=TimeUTC.n
|
|||
cur.execute(cur.mogrify(pg_query, params))
|
||||
rows = cur.fetchall()
|
||||
row["chart"] = helper.list_to_camel_case(rows)
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(row)
|
||||
return helper.dict_to_camel_case(row)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,12 +1,13 @@
|
|||
import math
|
||||
import random
|
||||
import re
|
||||
import string
|
||||
from typing import Union
|
||||
|
||||
import math
|
||||
import requests
|
||||
|
||||
import schemas
|
||||
from chalicelib.utils.TimeUTC import TimeUTC
|
||||
|
||||
local_prefix = 'local-'
|
||||
from decouple import config
|
||||
|
|
@ -384,3 +385,20 @@ def custom_alert_to_front(values):
|
|||
if values.get("seriesId") is not None and values["query"]["left"] == schemas.AlertColumn.custom:
|
||||
values["query"]["left"] = values["seriesId"]
|
||||
return values
|
||||
|
||||
|
||||
def __time_value(row):
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
factor = 1
|
||||
if row["value"] > TimeUTC.MS_MINUTE:
|
||||
row["value"] = row["value"] / TimeUTC.MS_MINUTE
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.minute
|
||||
factor = TimeUTC.MS_MINUTE
|
||||
elif row["value"] > 1 * 1000:
|
||||
row["value"] = row["value"] / 1000
|
||||
row["unit"] = schemas.TemplatePredefinedUnits.second
|
||||
factor = 1000
|
||||
|
||||
if "chart" in row and factor > 1:
|
||||
for r in row["chart"]:
|
||||
r["value"] /= factor
|
||||
|
|
|
|||
|
|
@ -966,6 +966,7 @@ class TemplatePredefinedKeys(str, Enum):
|
|||
|
||||
class TemplatePredefinedUnits(str, Enum):
|
||||
millisecond = "ms"
|
||||
second = "s"
|
||||
minute = "min"
|
||||
memory = "mb"
|
||||
frame = "f/s"
|
||||
|
|
|
|||
|
|
@ -943,11 +943,13 @@ def get_pages_dom_build_time(project_id, startTimestamp=TimeUTC.now(delta_days=-
|
|||
FROM pages {"INNER JOIN sessions_metadata USING(session_id)" if len(meta_condition) > 0 else ""}
|
||||
WHERE {" AND ".join(ch_sub_query_chart)};"""
|
||||
avg = ch.execute(query=ch_query, params=params)[0]["avg"] if len(rows) > 0 else 0
|
||||
return {"value": avg,
|
||||
"chart": __complete_missing_steps(rows=rows, start_time=startTimestamp,
|
||||
end_time=endTimestamp,
|
||||
density=density, neutral={"value": 0}),
|
||||
"unit": schemas.TemplatePredefinedUnits.millisecond}
|
||||
|
||||
results = {"value": avg,
|
||||
"chart": __complete_missing_steps(rows=rows, start_time=startTimestamp,
|
||||
end_time=endTimestamp,
|
||||
density=density, neutral={"value": 0})}
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
def get_slowest_resources(project_id, startTimestamp=TimeUTC.now(delta_days=-1),
|
||||
|
|
@ -1088,11 +1090,12 @@ def get_pages_response_time(project_id, startTimestamp=TimeUTC.now(delta_days=-1
|
|||
FROM pages {"INNER JOIN sessions_metadata USING(session_id)" if len(meta_condition) > 0 else ""}
|
||||
WHERE {" AND ".join(ch_sub_query_chart)};"""
|
||||
avg = ch.execute(query=ch_query, params=params)[0]["avg"] if len(rows) > 0 else 0
|
||||
return {"value": avg,
|
||||
"chart": __complete_missing_steps(rows=rows, start_time=startTimestamp,
|
||||
end_time=endTimestamp,
|
||||
density=density, neutral={"value": 0}),
|
||||
"unit": schemas.TemplatePredefinedUnits.millisecond}
|
||||
results = {"value": avg,
|
||||
"chart": __complete_missing_steps(rows=rows, start_time=startTimestamp,
|
||||
end_time=endTimestamp,
|
||||
density=density, neutral={"value": 0})}
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
def get_pages_response_time_distribution(project_id, startTimestamp=TimeUTC.now(delta_days=-1),
|
||||
|
|
@ -1288,10 +1291,11 @@ def get_time_to_render(project_id, startTimestamp=TimeUTC.now(delta_days=-1),
|
|||
FROM pages {"INNER JOIN sessions_metadata USING(session_id)" if len(meta_condition) > 0 else ""}
|
||||
WHERE {" AND ".join(ch_sub_query_chart)};"""
|
||||
avg = ch.execute(query=ch_query, params=params)[0]["avg"] if len(rows) > 0 else 0
|
||||
return {"value": avg, "chart": __complete_missing_steps(rows=rows, start_time=startTimestamp,
|
||||
end_time=endTimestamp, density=density,
|
||||
neutral={"value": 0}),
|
||||
"unit": schemas.TemplatePredefinedUnits.millisecond}
|
||||
results = {"value": avg, "chart": __complete_missing_steps(rows=rows, start_time=startTimestamp,
|
||||
end_time=endTimestamp, density=density,
|
||||
neutral={"value": 0})}
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
def get_impacted_sessions_by_slow_pages(project_id, startTimestamp=TimeUTC.now(delta_days=-1),
|
||||
|
|
@ -2102,7 +2106,7 @@ def get_application_activity_avg_page_load_time(project_id, startTimestamp=TimeU
|
|||
row = __get_application_activity_avg_page_load_time(ch, project_id, startTimestamp, endTimestamp, **args)
|
||||
previous = helper.dict_to_camel_case(row)
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2179,7 +2183,7 @@ def get_application_activity_avg_image_load_time(project_id, startTimestamp=Time
|
|||
row = __get_application_activity_avg_image_load_time(ch, project_id, startTimestamp, endTimestamp, **args)
|
||||
previous = helper.dict_to_camel_case(row)
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2255,7 +2259,7 @@ def get_application_activity_avg_request_load_time(project_id, startTimestamp=Ti
|
|||
row = __get_application_activity_avg_request_load_time(ch, project_id, startTimestamp, endTimestamp, **args)
|
||||
previous = helper.dict_to_camel_case(row)
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2334,7 +2338,7 @@ def get_page_metrics_avg_dom_content_load_start(project_id, startTimestamp=TimeU
|
|||
if len(rows) > 0:
|
||||
previous = helper.dict_to_camel_case(rows[0])
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2395,7 +2399,7 @@ def get_page_metrics_avg_first_contentful_pixel(project_id, startTimestamp=TimeU
|
|||
if len(rows) > 0:
|
||||
previous = helper.dict_to_camel_case(rows[0])
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2529,7 +2533,7 @@ def get_user_activity_avg_session_duration(project_id, startTimestamp=TimeUTC.no
|
|||
if len(rows) > 0:
|
||||
previous = helper.dict_to_camel_case(rows[0])
|
||||
results["progress"] = helper.__progress(old_val=previous["value"], new_val=results["value"])
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2608,7 +2612,7 @@ def get_top_metrics_avg_response_time(project_id, startTimestamp=TimeUTC.now(del
|
|||
end_time=endTimestamp,
|
||||
density=density, neutral={"value": 0})
|
||||
results["chart"] = rows
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return helper.dict_to_camel_case(results)
|
||||
|
||||
|
||||
|
|
@ -2684,7 +2688,7 @@ def get_top_metrics_avg_first_paint(project_id, startTimestamp=TimeUTC.now(delta
|
|||
density=density,
|
||||
neutral={"value": 0}))
|
||||
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return helper.dict_to_camel_case(results)
|
||||
|
||||
|
||||
|
|
@ -2726,7 +2730,7 @@ def get_top_metrics_avg_dom_content_loaded(project_id, startTimestamp=TimeUTC.no
|
|||
end_time=endTimestamp,
|
||||
density=density,
|
||||
neutral={"value": 0}))
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return results
|
||||
|
||||
|
||||
|
|
@ -2768,7 +2772,7 @@ def get_top_metrics_avg_till_first_bit(project_id, startTimestamp=TimeUTC.now(de
|
|||
end_time=endTimestamp,
|
||||
density=density,
|
||||
neutral={"value": 0}))
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return helper.dict_to_camel_case(results)
|
||||
|
||||
|
||||
|
|
@ -2810,5 +2814,5 @@ def get_top_metrics_avg_time_to_interactive(project_id, startTimestamp=TimeUTC.n
|
|||
end_time=endTimestamp,
|
||||
density=density,
|
||||
neutral={"value": 0}))
|
||||
results["unit"] = schemas.TemplatePredefinedUnits.millisecond
|
||||
helper.__time_value(results)
|
||||
return helper.dict_to_camel_case(results)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue