You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
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>
2 years ago
..
activitypub format with gofumpt (#18184) 2 years ago
analyze Use git attributes to determine generated and vendored status for language stats and diffs (#16773) 3 years ago
appstate format with gofumpt (#18184) 2 years ago
auth RSS/Atom support for Repos (#19055) 2 years ago
avatar format with gofumpt (#18184) 2 years ago
base format with gofumpt (#18184) 2 years ago
cache format with gofumpt (#18184) 2 years ago
charset Don't treat BOM escape sequence as hidden character. (#18909) 2 years ago
container Move reaction to models/issues/ (#19264) 2 years ago
context Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
convert Add Package Registry (#16510) 2 years ago
csv format with gofumpt (#18184) 2 years ago
doctor Make git.OpenRepository accept Context (#19260) 2 years ago
emoji format with gofumpt (#18184) 2 years ago
eventsource Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
generate Use base32 for 2FA scratch token (#18384) 2 years ago
git Improve sync performance for pull-mirrors (#19125) 2 years ago
gitgraph Make git.OpenRepository accept Context (#19260) 2 years ago
graceful Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
hcaptcha hCaptcha Support (#12594) 4 years ago
highlight format with gofumpt (#18184) 2 years ago
hostmatcher remove not needed (#19128) 2 years ago
httpcache format with gofumpt (#18184) 2 years ago
httplib refactor httplib (#18338) 2 years ago
indexer Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
json Make gitea, gitea-vet future-proof (#18361) 2 years ago
lfs Update HTTP status codes to modern codes (#18063) 2 years ago
log Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
markup Make git.OpenRepository accept Context (#19260) 2 years ago
metrics format with gofumpt (#18184) 2 years ago
migration Store the foreign ID of issues during migration (#18446) 2 years ago
nosql Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
notification Add Package Registry (#16510) 2 years ago
options format with gofumpt (#18184) 2 years ago
packages Add Package Registry (#16510) 2 years ago
password Fixed assert statements. (#16089) 3 years ago
pprof refactor: move from io/ioutil to io and os package (#17109) 3 years ago
private Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
process Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
proxy Return nil proxy function if proxy not enabled (#16742) 3 years ago
public Fix mime-type detection for HTTP server (#18370) 2 years ago
queue Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
recaptcha refactor: move from io/ioutil to io and os package (#17109) 3 years ago
references format with gofumpt (#18184) 2 years ago
repository Improve sync performance for pull-mirrors (#19125) 2 years ago
secret Use `CryptoRandomBytes` instead of `CryptoRandomString` (#18439) 2 years ago
session format with gofumpt (#18184) 2 years ago
setting Add Package Registry (#16510) 2 years ago
ssh Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
storage Add Package Registry (#16510) 2 years ago
structs Add Package Registry (#16510) 2 years ago
svg refactor: move from io/ioutil to io and os package (#17109) 3 years ago
sync Fix missing unlock in uniquequeue (#9790) 5 years ago
templates Add Package Registry (#16510) 2 years ago
test Make git.OpenRepository accept Context (#19260) 2 years ago
timeutil format with gofumpt (#18184) 2 years ago
translation Refactor i18n, use Locale to provide i18n/translation related functions (#18648) 2 years ago
typesniffer format with gofumpt (#18184) 2 years ago
updatechecker format with gofumpt (#18184) 2 years ago
upload Simplify parameter types (#18006) 3 years ago
uri Prevent NPE if gitea uploader fails to open url (#18080) 3 years ago
user Add gitea-vet (#10948) 4 years ago
util Use a more general (and faster) method to sanitize URLs with credentials (#19239) 2 years ago
validation format with gofumpt (#18184) 2 years ago
web Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago