Releases: aws/aperf
v1.2.3
What's Changed
- Created APerf MCP server that can be started through
aperf server --mcp. Refer to MCP-SERVER.md for detailed usages. - Improved the EKS script and added support for Karpenter.
- Added new metric "Minor Page Faults" and analytical rules for Virtual Memory Stats.
- Added PREEMPT_LAZY analytical rule for kernel v7+.
- Fixed bugs in reading renamed runs and added checks for duplicate run paths during report generation.
Full Changelog: v1.2.2...v1.2.3
Nightly Build
Built from commit b17509a87acad9bda89b026dad41026048881f01.
v1.2.2
What's Changed
- New data type: ENA and EFA metrics on supported instances
- New data type: Memory Allocation metrics (
/proc/slabinfo,/proc/pagetypeinfo, and/proc/buddyinfo) - New report generation option
--time-range, which trims the report data to the specified time range - Report generation now supports renamed archives and duplicate run names (with auto deduplication)
- Nightly Build is available at https://github.com/aws/aperf/releases/tag/nightly, which contains the binaries that were built with latest changes; Nightly docker images are also available at public.ecr.aws/aperf/aperf:nightly
- APerf releases now contain RPM and DEB packages for easier installation
- Enhanced the EKS script and added kubectl plugin
- Report UI improvement in the navigation panel
- Error message improvements
Full Changelog: v1.2.1...v1.2.2
v1.2.1
What's Changed
- APerf images are now available on public ECR repository: https://gallery.ecr.aws/aperf/aperf
- Metrics data points with all zero values are now compressed to reduce report size
- Fixed the incorrect evaluation of some analytical rules when comparing data with zero values
Full Changelog: v1.2.0...v1.2.1
v1.2.0
What's Changed
- APerf is now built and released on Windows and MacOS with the
reportfeature. Any APerf run data produced byaperf recordcan now be processed by APerf executable on Windows and MacOS to generate reports. - Improved robustness when processing raw CPU utilization data that contains decreased accumulative CPU time values.
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's Changed
- APerf now supports analytics. Analytical rules are defined in the Rust code, which during report generation are matched against the processed data and produce analytical findings. Statistical analysis are automatically performed in the report frontend, which compares all time-series metric stats among different runs. The report now has the "Analytical findings" and "Statistical findings" sections.
- Container usage improvements:
- Supported
--profile-javaineks-aperf.sh - Added
devcontainerDockerfile
- Supported
- UI bug fixes and improvements:
- Enforced ordering of sections within the graph data type
- Removed case sensitivity for keys in key-value data
- Improved unit for bytes data
- Matched Java profiling graphs using JVM name
- Added helpful links and optimization guides in the help panel
- Showed the top 16 processes with the highest CPU time in all processes metrics
- Saved the preference of number of graphs per page to browser local storage
- Added
strex-spec-pkimetric in PMU data to detect usage of STREX instructions - Added DEVELOPMENT.md to include code change guidelines
Full Changelog: v1.0.0...v1.1.0
v1.0.0
What's Changed
-
Update README and perf_stat warnings by @lancelui-amzn in #313
-
Implemented uniform report data format by @CongkaiTan and @lancelui-amzn
- add aperf standard report data format #321
- Process cpu_utilization into uniform data format #325
- Process diskstats into uniform data format #326
- Process interrupts into uniform data format #330
- Process processes into uniform data format #331
- Process perf_stat into uniform data format #332
- Process vmstat into uniform data format #333
- Process netstat into uniform data format #334
- Process aperf_stats into uniform data format #335
- Process meminfo into uniform data format #336
- Process sysctl into uniform data format #337
- Process kernel_config into uniform data format #338
- Process all graph data and text data into uniform data format #339
- Process systeminfo into uniform data format #340
-
Fix crash when previous disk stat value is missing by @CristianPrundeanu in #324
-
chore: Scope down GitHub Token permissions by @AdnaneKhan in #327
-
Update to AWS Cloudscape React Based UI by @CongkaiTan and @lancelui-amzn
- Introduce react-based report UI #342
- Enable component resize for the new report UI and make side panels closable #343
- Add post-processing logic to consolidate sorted_metric_names and value_ranges across all runs #344
- Use Grid component for the report home page #345
- add data descriptions in the new report #346
- Remove interrupt info from interrupt metric names #347
- Fix aperf_stat value range, perf_stat zero denominator, and cpu_utilization series order #349
- Add vertical and horizontal scroll bar to text data page in new report #350
- Add descriptions for aperf_stat metrics and unify its series ordering #352
- Fix KeyValueDataPage crash when run data not available #353
- add dark mode #354
- Remove old processing logic and switch to new data format and UI #357
- minor ui fixes, interrupts renaming #359
- remove old ui, y-axis scaling, pmu ordering #360
-
Install MUSL from github source code in ci.yml, add run stat comparison, fix report generation from report #348
New Contributors
- @natict made their first contribution in #322
- @CristianPrundeanu made their first contribution in #324
- @AdnaneKhan made their first contribution in #327
Full Changelog: v0.1.18-alpha...v1.0.0
v0.1.18-alpha
What's Changed
- Update Hotline frontend by @kkhulbe-aws in #297
- Demangle function names during serialization by @kkhulbe-aws in #301
- Refactor record and report data initialization to improve code reuse by @CongkaiTan in #302
- Add --dont-collect and --collect-only flags to customize which data to collect by @CongkaiTan in #303
- Restore compile-time loading of JS files and adapt empty data files by @CongkaiTan in #304
- Added reverse flamegraph
- Added Stats to plots
- update java profiling to output heatmaps for cpu, alloc, and wall profiles
New Contributors
- @CongkaiTan made their first contribution in #298
- @aperf-bot made their first contribution in #307
Full Changelog: v0.1.16-alpha...v0.1.18-alpha
v0.1.17-alpha
Add --dont-collect and --collect-only flags to customize which data t…
v0.1.16-alpha
What's Changed
- Added eks-aperf.sh, Dockerfile and README-EKS.md for EKS instructions by @salvatoredipietro in #286
- Improved eks-aperf.sh, Dockerfile and README-EKS.md for EKS instructions by @salvatoredipietro in #287
- Add Hotline SPE code profiling by @kkhulbe-aws in #288
New Contributors
- @salvatoredipietro made their first contribution in #286
- @kkhulbe-aws made their first contribution in #288
Full Changelog: v0.1.15-alpha...v0.1.16-alpha