Как находить и логировать медленные запросы в Go и Postgres?

Ответ

В Postgres: log_min_duration_statement, pg_stat_statements. В Go: драйвер с логгером (pgx - pgx.Tracer, database/sql - обертка с логированием времени и запроса). Middleware или обертка над *sql.DB логирует каждый запрос и длительность. При превышении порога - логировать с уровнем warn и отправлять в систему мониторинга. Трейсинг (OpenTelemetry) привязывает запросы к span.

// обертка: перед Exec/Query засечь время, после - залогировать и запрос, и duration
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.