Skip to content

Commit a6fe8d8

Browse files
committed
graph: Fix a mistake in how we were logging what the load manager is doing
1 parent fc08b58 commit a6fe8d8

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

graph/src/data/graphql/effort.rs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ enum KillStateLogEvent {
133133
Start,
134134
/// Overload has been going on for the duration
135135
Ongoing(Duration),
136+
/// No longer overloaded, reducing the kill_rate
137+
Settling,
136138
/// Overload was resolved after duration time
137139
Resolved(Duration),
138140
/// Don't log anything right now
@@ -163,13 +165,17 @@ impl KillState {
163165
}
164166
}
165167

166-
fn log_event(&mut self, now: Instant, overloaded: bool) -> KillStateLogEvent {
168+
fn log_event(&mut self, now: Instant, kill_rate: f64, overloaded: bool) -> KillStateLogEvent {
167169
use KillStateLogEvent::*;
168170

169171
if let Some(overload_start) = self.overload_start {
170172
if !overloaded {
171-
self.overload_start = None;
172-
Resolved(overload_start.elapsed())
173+
if kill_rate == 0.0 {
174+
self.overload_start = None;
175+
Resolved(overload_start.elapsed())
176+
} else {
177+
Settling
178+
}
173179
} else if now.saturating_duration_since(self.last_overload_log)
174180
> Duration::from_secs(30)
175181
{
@@ -351,8 +357,7 @@ impl LoadManager {
351357
debug!(self.logger, "Declining query";
352358
"query" => query,
353359
"wait_ms" => wait_ms.as_millis(),
354-
"query_effort_ms" => query_effort,
355-
"total_effort_ms" => total_effort,
360+
"query_weight" => format!("{:.2}", query_effort / total_effort),
356361
"kill_rate" => format!("{:.4}", kill_rate),
357362
);
358363
return false;
@@ -395,12 +400,18 @@ impl LoadManager {
395400
let mut state = self.kill_state.write().unwrap();
396401
state.kill_rate = kill_rate;
397402
state.last_update = now;
398-
state.log_event(now, overloaded)
403+
state.log_event(now, kill_rate, overloaded)
399404
};
400405
// Log information about what's happening after we've released the
401406
// lock on self.kill_state
402407
use KillStateLogEvent::*;
403408
match event {
409+
Settling => {
410+
info!(self.logger, "Query overload improving";
411+
"wait_ms" => wait_ms.as_millis(),
412+
"kill_rate" => format!("{:.4}", kill_rate),
413+
"event" => "settling");
414+
}
404415
Resolved(duration) => {
405416
info!(self.logger, "Query overload resolved";
406417
"duration_ms" => duration.as_millis(),

0 commit comments

Comments
 (0)