Skip to content

Commit 9cd61b9

Browse files
committed
chore(cubestore): Upgrade DF: finer grained app_metrics in planning
1 parent 5823aa1 commit 9cd61b9

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

rust/cubestore/cubestore/src/app_metrics.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,11 @@ pub static DATA_QUERIES_CACHE_SIZE: Gauge = metrics::gauge("cs.sql.query.data.ca
1515
// Approximate total weighted size of entries in this cache.
1616
pub static DATA_QUERIES_CACHE_WEIGHT: Gauge = metrics::gauge("cs.sql.query.data.cache.weight");
1717
pub static DATA_QUERY_TIME_MS: Histogram = metrics::histogram("cs.sql.query.data.ms");
18+
pub static DATA_QUERY_LOGICAL_PLAN_TOTAL_CREATION_TIME_MS: Histogram = metrics::histogram("cs.sql.query.data.planning.logical_plan_total_creation.ms");
1819
pub static DATA_QUERY_LOGICAL_PLAN_OPTIMIZE_TIME_MS: Histogram = metrics::histogram("cs.sql.query.data.planning.logical_plan_optimize.ms");
20+
pub static DATA_QUERY_CHOOSE_INDEX_TIME_MS: Histogram = metrics::histogram("cs.sql.query.data.planning.choose_index.ms");
1921
pub static DATA_QUERY_CHOOSE_INDEX_AND_WORKERS_TIME_MS: Histogram = metrics::histogram("cs.sql.query.data.planning.choose_index_and_workers.ms");
22+
pub static DATA_QUERY_TO_SERIALIZED_PLAN_TIME_MS: Histogram = metrics::histogram("cs.sql.query.data.planning.to_serialized_plan.ms");
2023
pub static DATA_QUERY_CREATE_ROUTER_PHYSICAL_PLAN_MS: Histogram = metrics::histogram("cs.sql.query.data.planning.router_plan.ms");
2124
pub static DATA_QUERY_CREATE_WORKER_PHYSICAL_PLAN_MS: Histogram = metrics::histogram("cs.sql.query.data.planning.worker_plan.ms");
2225

rust/cubestore/cubestore/src/queryplanner/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,13 @@ impl QueryPlanner for QueryPlannerImpl {
194194
self.config.enable_topk(),
195195
)
196196
.await?;
197+
let choose_index_ext_end = SystemTime::now();
197198
let workers = compute_workers(
198199
self.config.as_ref(),
199200
&logical_plan,
200201
&meta.multi_part_subtree,
201202
)?;
203+
app_metrics::DATA_QUERY_CHOOSE_INDEX_TIME_MS.report(choose_index_ext_end.duration_since(choose_index_ext_start)?.as_millis() as i64);
202204
app_metrics::DATA_QUERY_CHOOSE_INDEX_AND_WORKERS_TIME_MS.report(choose_index_ext_start.elapsed()?.as_millis() as i64);
203205
QueryPlan::Select(
204206
PreSerializedPlan::try_new(logical_plan, meta, trace_obj)?,

rust/cubestore/cubestore/src/sql/mod.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::collections::HashMap;
22
use std::convert::TryFrom;
33
use std::path::{Path, PathBuf};
44
use std::sync::Arc;
5-
use std::time::Duration;
5+
use std::time::{Duration, SystemTime};
66

77
use async_trait::async_trait;
88
use chrono::format::Fixed::Nanosecond3;
@@ -1114,6 +1114,7 @@ impl SqlService for SqlServiceImpl {
11141114
.await
11151115
}
11161116
CubeStoreStatement::Statement(Statement::Query(q)) => {
1117+
let logical_plan_time_start = SystemTime::now();
11171118
let logical_plan = self
11181119
.query_planner
11191120
.logical_plan(
@@ -1123,6 +1124,8 @@ impl SqlService for SqlServiceImpl {
11231124
)
11241125
.await?;
11251126

1127+
app_metrics::DATA_QUERY_LOGICAL_PLAN_TOTAL_CREATION_TIME_MS.report(logical_plan_time_start.elapsed()?.as_millis() as i64);
1128+
11261129
// TODO distribute and combine
11271130
let res = match logical_plan {
11281131
QueryPlan::Meta(logical_plan) => {
@@ -1137,13 +1140,16 @@ impl SqlService for SqlServiceImpl {
11371140

11381141
let cluster = self.cluster.clone();
11391142
let executor = self.query_executor.clone();
1143+
let serialized_plan_time_start = SystemTime::now();
1144+
let serialized_plan = serialized.to_serialized_plan()?;
1145+
app_metrics::DATA_QUERY_TO_SERIALIZED_PLAN_TIME_MS.report(serialized_plan_time_start.elapsed()?.as_millis() as i64);
11401146
timeout(
11411147
self.query_timeout,
11421148
self.cache
11431149
.get(
11441150
query,
11451151
context,
1146-
serialized.to_serialized_plan()?,
1152+
serialized_plan,
11471153
async move |plan| {
11481154
let records;
11491155
if workers.len() == 0 {

0 commit comments

Comments
 (0)