1
0
Fork 0
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
avatar
base
cache
charset
container
context Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
convert
csv
doctor
emoji
eventsource Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
generate
git
gitgraph
graceful Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
hcaptcha
highlight
hostmatcher
httpcache
httplib
indexer Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
json
lfs
log Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
markup
metrics
migration
nosql Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
notification
options
packages
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
secret
session
setting
ssh Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00
storage
structs
svg
sync
templates
test
timeutil
translation
typesniffer
updatechecker
upload
uri
user
util
validation
web Add Goroutine stack inspector to admin/monitor (#19207) 2022-03-31 19:01:43 +02:00