Skip to content

Releases: Granulate/gprofiler

1.2.0

29 Aug 14:09
f519f12
Compare
Choose a tag to compare
  • 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

10 Aug 14:28
f6b448a
Compare
Choose a tag to compare
  • 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

05 Aug 17:34
bebf900
Compare
Choose a tag to compare
  • 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

21 Jul 14:53
7f348dc
Compare
Choose a tag to compare
  • Run perf continuously - instead of re-starting perf 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

13 Jul 14:19
54490a5
Compare
Choose a tag to compare
  • java: Allow different gProfiler versions to use different APs (#137)
  • java: Build async-profiler with -static-libstdc++ (#139)

1.1.5

30 Jun 14:26
ccb9bda
Compare
Choose a tag to compare
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

28 Jun 12:16
e0c29d3
Compare
Choose a tag to compare
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

27 Jun 10:08
5b20958
Compare
Choose a tag to compare
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

21 Jun 11:43
5a37348
Compare
Choose a tag to compare
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

08 Jun 09:02
9d48af6
Compare
Choose a tag to compare
Bump gProfiler version to 1.1.1 (#105)

* python: Upgrade PyPerf to v1.0.7

* Bump gProfiler version