forgejo/modules
zeripath c88547ce71
Add Goroutine stack inspector to admin/monitor (#19207)
Continues on from #19202.

Following the addition of pprof labels we can now more easily understand the relationship between a goroutine and the requests that spawn them. 

This PR takes advantage of the labels and adds a few others, then provides a mechanism for the monitoring page to query the pprof goroutine profile.

The binary profile that results from this profile is immediately piped in to the google library for parsing this and then stack traces are formed for the goroutines.

If the goroutine is within a context or has been created from a goroutine within a process context it will acquire the process description labels for that process. 

The goroutines are mapped with there associate pids and any that do not have an associated pid are placed in a group at the bottom as unbound.

In this way we should be able to more easily examine goroutines that have been stuck.

A manager command `gitea manager processes` is also provided that can export the processes (with or without stacktraces) to the command line.

Signed-off-by: Andrew Thornton <art27@cantab.net>
2022-03-31 19:01:43 +02:00
..
activitypub format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
analyze Use git attributes to determine generated and vendored status for language stats and diffs (#16773) 2021-09-09 21:13:36 +01:00
appstate format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
auth RSS/Atom support for Repos (#19055) 2022-03-13 17:40:47 +01:00
avatar format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
base format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
cache format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
charset Don't treat BOM escape sequence as hidden character. (#18909) 2022-02-26 16:48:23 +00:00
container Move reaction to models/issues/ (#19264) 2022-03-31 17:20:39 +08:00
context Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
convert Add Package Registry (#16510) 2022-03-30 16:42:47 +08:00
csv format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
doctor Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
emoji format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
eventsource Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
generate Use base32 for 2FA scratch token (#18384) 2022-01-26 12:10:10 +08:00
git Improve sync performance for pull-mirrors (#19125) 2022-03-31 14:30:40 +02:00
gitgraph Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
graceful Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
hcaptcha hCaptcha Support (#12594) 2020-10-02 23:37:53 -04:00
highlight format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
hostmatcher remove not needed (#19128) 2022-03-18 20:17:57 +01:00
httpcache format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
httplib refactor httplib (#18338) 2022-01-19 19:31:39 -05:00
indexer Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
json Make gitea, gitea-vet future-proof (#18361) 2022-01-22 21:59:34 +00:00
lfs Update HTTP status codes to modern codes (#18063) 2022-03-23 12:54:07 +08:00
log Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
markup Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
metrics format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
migration Store the foreign ID of issues during migration (#18446) 2022-03-17 18:08:35 +01:00
nosql Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
notification Add Package Registry (#16510) 2022-03-30 16:42:47 +08:00
options format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
packages Add Package Registry (#16510) 2022-03-30 16:42:47 +08:00
password Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
pprof refactor: move from io/ioutil to io and os package (#17109) 2021-09-22 13:38:34 +08:00
private Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
process Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
proxy Return nil proxy function if proxy not enabled (#16742) 2021-08-19 16:41:20 -04:00
public Fix mime-type detection for HTTP server (#18370) 2022-01-23 20:19:49 +08:00
queue Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
recaptcha refactor: move from io/ioutil to io and os package (#17109) 2021-09-22 13:38:34 +08:00
references format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
repository Improve sync performance for pull-mirrors (#19125) 2022-03-31 14:30:40 +02:00
secret Use CryptoRandomBytes instead of CryptoRandomString (#18439) 2022-02-04 18:03:15 +01:00
session format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
setting Add Package Registry (#16510) 2022-03-30 16:42:47 +08:00
ssh Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
storage Add Package Registry (#16510) 2022-03-30 16:42:47 +08:00
structs Add Package Registry (#16510) 2022-03-30 16:42:47 +08:00
svg refactor: move from io/ioutil to io and os package (#17109) 2021-09-22 13:38:34 +08:00
sync Fix missing unlock in uniquequeue (#9790) 2020-01-15 23:58:33 +02:00
templates Add Package Registry (#16510) 2022-03-30 16:42:47 +08:00
test Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
timeutil format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
translation Refactor i18n, use Locale to provide i18n/translation related functions (#18648) 2022-02-08 11:02:30 +08:00
typesniffer format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
updatechecker format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
upload Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
uri Prevent NPE if gitea uploader fails to open url (#18080) 2021-12-23 16:27:33 +00:00
user Add gitea-vet (#10948) 2020-04-05 07:20:50 +01:00
util Use a more general (and faster) method to sanitize URLs with credentials (#19239) 2022-03-31 10:25:40 +08:00
validation format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
web Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00