feat: use specific message for slow query logs (#2880)

closes #2669
This commit is contained in:
Austin Bonander 2023-11-15 20:08:09 -08:00 committed by GitHub
parent 16eeea8611
commit 979a55da9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -86,7 +86,9 @@ impl<'q> QueryLogger<'q> {
pub fn finish(&self) {
let elapsed = self.start.elapsed();
let lvl = if elapsed >= self.settings.slow_statements_duration {
let was_slow = elapsed >= self.settings.slow_statements_duration;
let lvl = if was_slow {
self.settings.slow_statements_level
} else {
self.settings.statements_level
@ -114,6 +116,22 @@ impl<'q> QueryLogger<'q> {
String::new()
};
if was_slow {
private_tracing_dynamic_event!(
target: "sqlx::query",
tracing_level,
summary,
db.statement = sql,
rows_affected = self.rows_affected,
rows_returned = self.rows_returned,
?elapsed,
// When logging to JSON, one can trigger alerts from the presence of this field.
slow_threshold=?self.settings.slow_statements_duration,
// Make sure to use "slow" in the message as that's likely
// what people will grep for.
"slow statement: execution time exceeded alert threshold"
);
} else {
private_tracing_dynamic_event!(
target: "sqlx::query",
tracing_level,
@ -127,6 +145,7 @@ impl<'q> QueryLogger<'q> {
}
}
}
}
impl<'q> Drop for QueryLogger<'q> {
fn drop(&mut self) {