Releases: Granulate/gprofiler
Releases · Granulate/gprofiler
1.2.0
- Initial Aarch64 support (as a Docker container)
- Exit with 0 if gProfiler's mutex is already taken.
- Disable profilers whose
start()
method fails (instead of exiting gProfiler) - Use
/proc/pid/comm
as the first stack of process profiles - java: Allow skipping the JDK version check
- php: Log stderr & stdout if startup fails
- python: PyPerf: Allow passing 0 for --pyperf-user-stacks-pages
1.1.9
- Upgrade PyPerf to v1.1.1 to fix a memory leak
- Add memory usage logging to gProfiler's container (to be able to track gProfiler's total memory usage)
1.1.8
- Add metrics & metadata collection: gProfiler collects system metrics (CPU & memory utilization) & static metadata (OS version, hardware info, cloud metadata). These will augment the data displayed in the backend.
- java: Identify Java process to profile by existence of
libjvm.so
in their/proc/pid/maps
. - java: Allow sending detailed native samples in case there are no debug symbols; the extra data allows to add proper symbols information in the backend. Currently disabled, until backend support will be added.
- python: Add timeout to py-spy runs
- Bugfix: attempt to fix-up numerous output files situation of PyPerf (delete all & use the latest)
- Print nicer exceptions: if Python processes go down before profiling starts, if
ldd
is missing, if gProfiler failed to take its lock due to an error.
1.1.7
- Run
perf
continuously - instead of re-startingperf
each profiling session, we now run it continuously and request it to dump data each session (improves accuracy & performance) - Preliminary NodeJS support - this requires running your Node app with some extra flags, and to add
--nodejs-mode perf
to gProfiler's arguments - Native stacks for Python (PyPerf based) - PyPerf now collects native stacks (CPython runtime, library DSOs, ...) in addition to the Python stacks & kernel stacks
1.1.6
1.1.5
python, ruby: Remove collapsed files after reading (#128) * merge: Add parse_and_remove_one_collapsed() * python: Use parse_and_remove_one_collapsed() Fixes a regression: we didn't remove old collapsed files. * ruby: Use parse_and_remove_one_collapsed() Fixes same bug from Python.
1.1.4
Server Logging (#119) * Implement server logging * Use new logger adapters across project * Add server logging section to README.md * logging: allow not sending extra to server * Server Logging: Change environment variable name * ruby: use logger adapter * gprofiler: bump version
1.1.3
Upgrade py-spy & bump gProfiler version (#124) * Includes a fix for py-spy from https://github.com/benfred/py-spy/pull/407 * Bump gProfiler version to 1.1.3
1.1.2
Bump gProfiler version (1.1.2) (#117) * Bump gProfiler version * utils: Handle processes dying while iterating on pgrep_maps() results * utils: Add missing return in random_prefix()
1.1.1
Bump gProfiler version to 1.1.1 (#105) * python: Upgrade PyPerf to v1.0.7 * Bump gProfiler version