Compatibility changes:
- Database schema has changed. Applying migrations is necessary when upgrading from previous Perforator version.
- Agent with Kubernetes integration now uses KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT environment variables to reach API server if they are available. Previously hardcoded address
kubernetes.default.svc.cluster.local
was always used. This behavior can be controlled withkubernetes_api_server_host
agent configuration field oragent.config.KubernetesAPIServerHost
chart value.
Fixes:
- (Language support) Fix perfmap-based JVM profiling when process working directory is read-only (f3d6f60)
- (Agent) Support CRI-O and cri-dockerd container runtimes (272ee55)
- (UI) Fix unstable behavior when viewing large flamegraphs (32a6fff)
- (Language support) Fix NodeJS symbolization quality degradation over time (5d44eb0)
- (Storage) Adjust GOMAXPROCS when running in container (37977c1)
- (Proxy) Fix panic at startup when using Go v1.23 or higher (ee11159)
- (CI) Fix AutoFDO build (c0e4425)
- (UI) Fix root frame color calculation (8c0f439)
- (Proxy) Do not count
no profiles to merge
errors on proxy (5ecbc0e) - (UI) Fix tab crash on large profiles (6c195b6)
Features:
- (Language support) CPython v2.4 and later versions are now supported
- (Language support) Cython is now supported
- (UI) Allow to delete stacks with Alt+Click (15b1dce)
- (Microscopes) Increase max microscope duration to 48h (was 1h) (73e9ca3)
- (Query language)
build_ids
filter now filters out samples that don't contain any code from the specified binaries - (UI) Add search focus mode (8fd27c1)
- (UI) Add title to search (4bc2d0f)
- (UI) Add frame context menu (0f48371)
- (UI) Add proxy name to task view (75c58cf)
- (Agent) Add support for user-defined labels for profiles (80a70a5)
- (Agent, CLI) Support uprobes
- (Agent) Add namespace label and pod labels to profile (e28bf75)
- (UI) Paginate profiles list (01d60a3)
- (UI) Add top tab to task results (734d377)
- (CLI) Add html-v2 output format (b4c4715)
- (CLI) Add profile quality statistiscs to record --upload output (ca66809)
- (UI) Paginate tasks list (ff021ef)
- (CLI) Support local flamegraph construction from pprof/collapsed stacks; support local profile symbolization using split DWARF (5bc9cc3)
- (Storage) Object storage requests routing can use HTTP proxy with proxy configuration discovered and refreshed at runtime (56cc43b)
- (UI) Add side-by-side top view to flamegraph page ( b1132ce)
Improvements:
- Avoid updating last used timestamp on every AnnounceBinaries to decrease write load on the database (af7164d)
- Add metrics for object storage request retries (17d896a)
- Improve interpreted language representation in new profile format (a958ab1)
- Preserve flamegraph options in profiles uploaded via CLI (a54c9d3)
- Improve pagination in ListProfiles RPC (940fd8d)
- Unify TLS configuration (5e962ca, bb4dfdd)
- Add total task count to ListTasks RPC (0e3aa3f)
- Add service to atomic profile selector (2449719)
- Make storage use cluster label provided by agent by default (963b040)
- Change TCMalloc cache mode from per-core to per-thread in agent (411bd2c)
- Upgrade TCMalloc (8f34d17)
- Add exponential backoff to storage client (952b27e)
- Optimize hover (dede1b3)
Documentation:
- Document nginx ingress controller installation (e42f0af)
- Add link to the Medium post (d0de017)
- Clarify
PERFORATOR_ENDPOINT
expected format and default port (7a4cecb) - Remove incorrect claim about SVG output format support (04028e5)
- Document multi-cluster perforator setup (6be8a54)
- Remove docker compose-based databases setup (93af4f9)
- Fix missing redirect (e55625e)
- Add missing build step (dd7b6b1)
- Explain python profiling implementation details