copypasta query window seconds
This commit is contained in:
parent
4f1885306f
commit
94c5b0479a
@ -239,8 +239,8 @@ pub async fn get_aggregate_rpc_stats_from_params(
|
|||||||
serde_json::to_value(query_window_seconds)?,
|
serde_json::to_value(query_window_seconds)?,
|
||||||
);
|
);
|
||||||
|
|
||||||
q.column_as(expr, "query_window")
|
q.column_as(expr, "query_window_seconds")
|
||||||
.group_by(Expr::cust("query_window"))
|
.group_by(Expr::cust("query_window_seconds"))
|
||||||
} else {
|
} else {
|
||||||
// TODO: order by more than this?
|
// TODO: order by more than this?
|
||||||
// query_window_seconds is not set so we aggregate all records
|
// query_window_seconds is not set so we aggregate all records
|
||||||
@ -338,13 +338,6 @@ pub async fn get_detailed_stats(
|
|||||||
serde_json::to_value(query_start.timestamp() as u64)?,
|
serde_json::to_value(query_start.timestamp() as u64)?,
|
||||||
);
|
);
|
||||||
|
|
||||||
if query_window_seconds != 0 {
|
|
||||||
response.insert(
|
|
||||||
"query_window_seconds",
|
|
||||||
serde_json::to_value(query_window_seconds)?,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: how do we get count reverts compared to other errors? does it matter? what about http errors to our users?
|
// TODO: how do we get count reverts compared to other errors? does it matter? what about http errors to our users?
|
||||||
// TODO: how do we count uptime?
|
// TODO: how do we count uptime?
|
||||||
let q = rpc_accounting::Entity::find()
|
let q = rpc_accounting::Entity::find()
|
||||||
@ -432,6 +425,33 @@ pub async fn get_detailed_stats(
|
|||||||
|
|
||||||
let q = q.filter(condition);
|
let q = q.filter(condition);
|
||||||
|
|
||||||
|
let q = if query_window_seconds != 0 {
|
||||||
|
/*
|
||||||
|
let query_start_timestamp: u64 = query_start
|
||||||
|
.timestamp()
|
||||||
|
.try_into()
|
||||||
|
.context("query_start to timestamp")?;
|
||||||
|
*/
|
||||||
|
// TODO: is there a better way to do this? how can we get "period_datetime" into this with types?
|
||||||
|
// TODO: how can we get the first window to start at query_start_timestamp
|
||||||
|
let expr = Expr::cust_with_values(
|
||||||
|
"FLOOR(UNIX_TIMESTAMP(rpc_accounting.period_datetime) / ?) * ?",
|
||||||
|
[query_window_seconds, query_window_seconds],
|
||||||
|
);
|
||||||
|
|
||||||
|
response.insert(
|
||||||
|
"query_window_seconds",
|
||||||
|
serde_json::to_value(query_window_seconds)?,
|
||||||
|
);
|
||||||
|
|
||||||
|
q.column_as(expr, "query_window_seconds")
|
||||||
|
.group_by(Expr::cust("query_window_seconds"))
|
||||||
|
} else {
|
||||||
|
// TODO: order by more than this?
|
||||||
|
// query_window_seconds is not set so we aggregate all records
|
||||||
|
q
|
||||||
|
};
|
||||||
|
|
||||||
// log query here. i think sea orm has a useful log level for this
|
// log query here. i think sea orm has a useful log level for this
|
||||||
|
|
||||||
// TODO: transform this into a nested hashmap instead of a giant table?
|
// TODO: transform this into a nested hashmap instead of a giant table?
|
||||||
|
Loading…
Reference in New Issue
Block a user