gitea/models
Earl Warren b748d62b46
Add slow SQL query warning (#27545)
- Databases are one of the most important parts of Forgejo, every
interaction uses the database in one way or another. Therefore, it is
important to maintain the database and recognize when the server is not
doing well with the database. There already is the option to log *every*
SQL query along with its execution time, but monitoring becomes
impractical for larger instances and takes up unnecessary storage in the
logs.
- Add a QoL enhancement that allows instance administrators to specify a
threshold value beyond which query execution time is logged as a warning
in the xorm logger. The default value is a conservative five seconds to
avoid this becoming a source of spam in the logs.
- The use case for this patch is that with an instance the size of
Codeberg, monitoring SQL logs is not very fruitful and most of them are
uninteresting. Recently, in the context of persistent deadlock issues
(https://codeberg.org/forgejo/forgejo/issues/220), I have noticed that
certain queries hold locks on tables like comment and issue for several
seconds. This patch helps to identify which queries these are and when
they happen.
- Added unit test.

(cherry picked from commit 9cf501f1af4cd870221cef6af489618785b71186)

---------

Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-authored-by: Giteabot <teabot@gitea.io>
Co-authored-by: 6543 <6543@obermui.de>
2024-02-23 00:57:24 +00:00
..
actions Artifact deletion in actions ui (#27172) 2024-02-18 10:33:50 +00:00
activities Revert "Speed up loading the dashboard on mysql/mariadb (#28546)" (#29006) 2024-02-01 14:25:37 +08:00
admin Next round of db.DefaultContext refactor (#27089) 2023-09-16 14:39:12 +00:00
asymkey Update tool dependencies (#29030) 2024-02-02 19:11:39 -05:00
auth Support SAML authentication (#25165) 2024-02-23 00:08:17 +00:00
avatars Refactor some legacy code and remove unused code (#28622) 2023-12-28 09:38:59 +00:00
db Add slow SQL query warning (#27545) 2024-02-23 00:57:24 +00:00
dbfs make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
fixtures Unify user update methods (#28733) 2024-02-04 13:29:09 +00:00
git Refactor locale&string&template related code (#29165) 2024-02-14 21:48:45 +00:00
issues Workaround to clean up old reviews on creating a new one (#28554) 2024-02-19 14:42:18 +01:00
migrations Add support for sha256 repositories (#23894) 2024-01-19 17:05:02 +01:00
organization Remove unused KeyID. (#29167) 2024-02-14 12:50:10 -05:00
packages Fix some RPM registry flaws (#28782) 2024-01-19 11:37:10 +00:00
perm Remove GetByBean method because sometimes it's danger when query condition parameter is zero and also introduce new generic methods (#28220) 2023-12-07 15:27:36 +08:00
project Fix comment permissions (#28213) 2023-11-25 17:21:21 +00:00
pull Add support for sha256 repositories (#23894) 2024-01-19 17:05:02 +01:00
repo Add merge style fast-forward-only (#28954) 2024-02-12 23:37:23 +01:00
secret Use db.Find instead of writing methods for every object (#28084) 2023-11-24 03:49:41 +00:00
shared/types Refactor locale&string&template related code (#29165) 2024-02-14 21:48:45 +00:00
system Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
unit Make actions default enabled for newly created repository if global configuraion enabled (#27482) 2023-10-10 14:45:31 +00:00
unittest Workaround to clean up old reviews on creating a new one (#28554) 2024-02-19 14:42:18 +01:00
user Remove unused KeyID. (#29167) 2024-02-14 12:50:10 -05:00
webhook Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
error.go Add merge style fast-forward-only (#28954) 2024-02-12 23:37:23 +01:00
fixture_generation.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
fixture_test.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
main_test.go make writing main test easier (#27270) 2023-09-28 01:38:53 +00:00
org_team_test.go Reduce usage of db.DefaultContext (#27073) 2023-09-14 17:09:32 +00:00
org_team.go Remove GetByBean method because sometimes it's danger when query condition parameter is zero and also introduce new generic methods (#28220) 2023-12-07 15:27:36 +08:00
org_test.go Replace more db.DefaultContext (#27628) 2023-10-15 17:46:06 +02:00
org.go Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00
repo_test.go Penultimate round of db.DefaultContext refactor (#27414) 2023-10-11 04:24:07 +00:00
repo_transfer.go Move some repository transfer functions to service layer (#28855) 2024-02-05 06:17:23 +00:00
repo.go Refactor deletion (#28610) 2023-12-25 21:25:29 +01:00