0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-01-22 22:29:05 -05:00
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
analyze
appstate
auth RSS/Atom support for Repos (#19055) 2022-03-13 17:40:47 +01:00
avatar
base
cache
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
doctor Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
emoji
eventsource Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
generate
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
highlight
hostmatcher remove not needed (#19128) 2022-03-18 20:17:57 +01:00
httpcache
httplib
indexer Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
json
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
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
packages Add Package Registry (#16510) 2022-03-30 16:42:47 +08:00
password
pprof
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
public
queue Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
recaptcha
references
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
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
sync
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
translation Refactor i18n, use Locale to provide i18n/translation related functions (#18648) 2022-02-08 11:02:30 +08:00
typesniffer
updatechecker
upload
uri
user
util Use a more general (and faster) method to sanitize URLs with credentials (#19239) 2022-03-31 10:25:40 +08:00
validation
web Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00