Skip to content

Commit b03c23f

Browse files
committed
feat: use specific message for slow query logs
closes #2669
1 parent 16eeea8 commit b03c23f

File tree

1 file changed

+29
-10
lines changed

1 file changed

+29
-10
lines changed

sqlx-core/src/logger.rs

+29-10
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ impl<'q> QueryLogger<'q> {
8686
pub fn finish(&self) {
8787
let elapsed = self.start.elapsed();
8888

89-
let lvl = if elapsed >= self.settings.slow_statements_duration {
89+
let was_slow = elapsed >= self.settings.slow_statements_duration;
90+
91+
let lvl = if was_slow {
9092
self.settings.slow_statements_level
9193
} else {
9294
self.settings.statements_level
@@ -114,15 +116,32 @@ impl<'q> QueryLogger<'q> {
114116
String::new()
115117
};
116118

117-
private_tracing_dynamic_event!(
118-
target: "sqlx::query",
119-
tracing_level,
120-
summary,
121-
db.statement = sql,
122-
rows_affected = self.rows_affected,
123-
rows_returned= self.rows_returned,
124-
?elapsed,
125-
);
119+
if was_slow {
120+
private_tracing_dynamic_event!(
121+
target: "sqlx::query",
122+
tracing_level,
123+
summary,
124+
db.statement = sql,
125+
rows_affected = self.rows_affected,
126+
rows_returned = self.rows_returned,
127+
?elapsed,
128+
// When logging to JSON, one can trigger alerts from the presence of this field.
129+
slow_threshold=?self.settings.slow_statements_duration,
130+
// Make sure to use "slow" in the message as that's likely
131+
// what people will grep for.
132+
"slow statement: execution time exceeded alert threshold"
133+
);
134+
} else {
135+
private_tracing_dynamic_event!(
136+
target: "sqlx::query",
137+
tracing_level,
138+
summary,
139+
db.statement = sql,
140+
rows_affected = self.rows_affected,
141+
rows_returned = self.rows_returned,
142+
?elapsed,
143+
);
144+
}
126145
}
127146
}
128147
}

0 commit comments

Comments
 (0)