Bot releases are hidden (Show)
Published by raulk almost 3 years ago
Thanks to @marten-seemann for the contributions!
Published by raulk almost 3 years ago
go-watchdog now supports multiple GC notifees. The global NotifyGC
variable is deprecated, and has been replaced with a RegisterNotifee
function. NotifyGC
is still invoked if non-nil, but it will be removed entirely in future releases.
Thanks to @marten-seemann for this feature.
Published by raulk over 3 years ago
This contains minor adjustments:
Published by raulk over 3 years ago
This release introduces major changes.
HeapDriven
and SystemDriven
are now distinct run modes.HeapDriven
watchdog now adjusts GOGC dynamically, based on the policy's target, thus delegating the scheduling of GC to the runtime. This results in a higher reliability, that is not to quick memory bursts within sampling periods.SystemDriven
watchdog remains a polling watchdog.A new cgroup-driven watchdog has been implemented. This watchdog discovers the memory limit from the cgroup of the process (derived from /proc/self/cgroup), or from the root cgroup path if the PID == 1 (which indicates that the process is running in a container). It uses the cgroup stats to obtain the current usage.
A heapdump will be captured when the usage trespasses a configured threshold. Staying above the threshold won't trigger another heapdump. If the usage goes down, then back up, that is considered another "episode" to be captured in a heapdump. The behaviour is controlled by the Heapdump*
global variables.
If a panic occurs in the watchdog, it will be swallowed and the watchdog will be disarmed.
Published by raulk almost 4 years ago
initial release