# elastic/gosigar Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added ### Fixed ### Changed ### Deprecated ## [0.14.3] ### Fixed - darwin: Fix checkptr error in `(*Mem).Get` for Go 1.22. ## [0.14.2] ### Fixed - Fix again unsupported devices for filesystem. [#164](https://github.com/elastic/gosigar/pull/164) ## [0.14.1] ### Fixed - Fix unsupported devices for filesystem. [#159](https://github.com/elastic/gosigar/pull/159) ## [0.14.0] ### Addded - Add darwin ARM support. [#152](https://github.com/elastic/gosigar/pull/152) ## [0.13.0] ### Added - Add method of overriding the /sys/fs/cgroup hierarchy, for reading cgroup metrics inside Docker [#148](https://github.com/elastic/gosigar/pull/148) ## [0.12.0] ### Added - Add `Cached` data to Memory [#145](https://github.com/elastic/gosigar/pull/145) - Add `SysTypeName` support on Windows [#146](https://github.com/elastic/gosigar/pull/146) ## [0.11.0] ### Added - Added support for AIX. [#133](https://github.com/elastic/gosigar/pull/133) ### Fixed - Fixed the `ss` example by replacing the Logrus package with the stdlib `log` package. [#123](https://github.com/elastic/gosigar/issues/123) [#136](https://github.com/elastic/gosigar/pull/136) - Replaced `bytePtrToString` and cleaned up darwin code. [#138](https://github.com/elastic/gosigar/issues/138) [#141](https://github.com/elastic/gosigar/pull/141) ## [0.10.5] ### Fixed - Fixed uptime calculation under Windows. [#126](https://github.com/elastic/gosigar/pull/126) - Fixed compilation issue for darwin/386. [#128](https://github.com/elastic/gosigar/pull/128) ### Changed - Load DLLs only from Windows system directory. [#132](https://github.com/elastic/gosigar/pull/132) ## [0.10.4] ### Fixed - Fixed a crash when splitting command-line arguments under Windows. [#124](https://github.com/elastic/gosigar/pull/124) ## [0.10.3] ### Fixed - ProcState.Get() doesn't fail under Windows when it cannot obtain process ownership information. [#121](https://github.com/elastic/gosigar/pull/121) ## [0.10.2] ### Fixed - Fix memory leak when getting process arguments. [#119](https://github.com/elastic/gosigar/pull/119) ## [0.10.1] ### Fixed - Replaced the WMI queries with win32 apis due to high CPU usage. [#116](https://github.com/elastic/gosigar/pull/116) ## [0.10.0] ### Added - List filesystems on Windows that have an access path but not an assigned letter. [#112](https://github.com/elastic/gosigar/pull/112) ### Fixed - Added missing runtime import for FreeBSD. [#104](https://github.com/elastic/gosigar/pull/104) - Handle nil command line in Windows processes. [#110](https://github.com/elastic/gosigar/pull/110) ## [0.9.0] ### Added - Added support for huge TLB pages on Linux [#97](https://github.com/elastic/gosigar/pull/97) - Added support for big endian platform [#100](https://github.com/elastic/gosigar/pull/100) ### Fixed - Add missing method for OpenBSD [#99](https://github.com/elastic/gosigar/pull/99) ## [0.8.0] ### Added - Added partial `getrusage` support for Windows to retrieve system CPU time and user CPU time. [#95](https://github.com/elastic/gosigar/pull/95) - Added full `getrusage` support for Unix. [#95](https://github.com/elastic/gosigar/pull/95) ## [0.7.0] ### Added - Added method stubs for process handling for operating system that are not supported by gosigar. All methods return `ErrNotImplemented` on such systems. [#88](https://github.com/elastic/gosigar/pull/88) ### Fixed - Fix freebsd build by using the common version of Get(pid). [#91](https://github.com/elastic/gosigar/pull/91) ### Changed - Fixed issues in cgroup package by adding missing error checks and closing file handles. [#92](https://github.com/elastic/gosigar/pull/92) ## [0.6.0] ### Added - Added method stubs to enable compilation for operating systems that are not supported by gosigar. All methods return `ErrNotImplemented` on these unsupported operating systems. [#83](https://github.com/elastic/gosigar/pull/83) - FreeBSD returns `ErrNotImplemented` for `ProcTime.Get`. [#83](https://github.com/elastic/gosigar/pull/83) ### Changed - OpenBSD returns `ErrNotImplemented` for `ProcTime.Get` instead of `nil`. [#83](https://github.com/elastic/gosigar/pull/83) - Fixed incorrect `Mem.Used` calculation under linux. [#82](https://github.com/elastic/gosigar/pull/82) - Fixed `ProcState` on Linux and FreeBSD when process names contain parentheses. [#81](https://github.com/elastic/gosigar/pull/81) ### Removed - Remove NetBSD build from sigar_unix.go as it is not supported by gosigar. [#83](https://github.com/elastic/gosigar/pull/83) ## [0.5.0] ### Changed - Fixed Trim environment variables when comparing values in the test suite. [#79](https://github.com/elastic/gosigar/pull/79) - Make `kern_procargs` more robust under darwin when we cannot retrieve all the information about a process. [#78](https://github.com/elastic/gosigar/pull/78) ## [0.4.0] ### Changed - Fixed Windows issue that caused a hang during `init()` if WMI wasn't ready. [#74](https://github.com/elastic/gosigar/pull/74) ## [0.3.0] ### Added - Read `MemAvailable` value for kernel 3.14+ [#71](https://github.com/elastic/gosigar/pull/71) ## [0.2.0] ### Added - Added `ErrCgroupsMissing` to indicate that /proc/cgroups is missing which is an indicator that cgroups were disabled at compile time. [#64](https://github.com/elastic/gosigar/pull/64) ### Changed - Changed `cgroup.SupportedSubsystems()` to honor the "enabled" column in the /proc/cgroups file. [#64](https://github.com/elastic/gosigar/pull/64) ## [0.1.0] ### Added - Added `CpuList` implementation for Windows that returns CPU timing information on a per CPU basis. [#55](https://github.com/elastic/gosigar/pull/55) - Added `Uptime` implementation for Windows. [#55](https://github.com/elastic/gosigar/pull/55) - Added `Swap` implementation for Windows based on page file metrics. [#55](https://github.com/elastic/gosigar/pull/55) - Added support to `github.com/gosigar/sys/windows` for querying and enabling privileges in a process token. - Added utility code for interfacing with linux NETLINK_INET_DIAG. [#60](https://github.com/elastic/gosigar/pull/60) - Added `ProcEnv` for getting a process's environment variables. [#61](https://github.com/elastic/gosigar/pull/61) ### Changed - Changed several `OpenProcess` calls on Windows to request the lowest possible access privileges. [#50](https://github.com/elastic/gosigar/pull/50) - Removed cgo usage from Windows code. - Added OS version checks to `ProcArgs.Get` on Windows because the `Win32_Process` WMI query is not available prior to Windows vista. On XP and Windows 2003, this method returns `ErrNotImplemented`. [#55](https://github.com/elastic/gosigar/pull/55) ### Fixed - Fixed value of `Mem.ActualFree` and `Mem.ActualUsed` on Windows. [#49](https://github.com/elastic/gosigar/pull/49) - Fixed `ProcTime.StartTime` on Windows to report value in milliseconds since Unix epoch. [#51](https://github.com/elastic/gosigar/pull/51) - Fixed `ProcStatus.PPID` value is wrong on Windows. [#55](https://github.com/elastic/gosigar/pull/55) - Fixed `ProcStatus.Username` error on Windows XP [#56](https://github.com/elastic/gosigar/pull/56) [Unreleased]: https://github.com/elastic/gosigar/compare/v0.14.3...HEAD [0.14.3]: https://github.com/elastic/gosigar/releases/tag/v0.14.3 [0.14.2]: https://github.com/elastic/gosigar/releases/tag/v0.14.2 [0.14.1]: https://github.com/elastic/gosigar/releases/tag/v0.14.1 [0.14.0]: https://github.com/elastic/gosigar/releases/tag/v0.14.0 [0.13.0]: https://github.com/elastic/gosigar/releases/tag/v0.13.0 [0.12.0]: https://github.com/elastic/gosigar/releases/tag/v0.12.0 [0.11.0]: https://github.com/elastic/gosigar/releases/tag/v0.11.0 [0.10.5]: https://github.com/elastic/gosigar/releases/tag/v0.10.5 [0.10.4]: https://github.com/elastic/gosigar/releases/tag/v0.10.4 [0.10.3]: https://github.com/elastic/gosigar/releases/tag/v0.10.3 [0.10.2]: https://github.com/elastic/gosigar/releases/tag/v0.10.2 [0.10.1]: https://github.com/elastic/gosigar/releases/tag/v0.10.1 [0.10.0]: https://github.com/elastic/gosigar/releases/tag/v0.10.0 [0.9.0]: https://github.com/elastic/gosigar/releases/tag/v0.9.0 [0.8.0]: https://github.com/elastic/gosigar/releases/tag/v0.8.0 [0.7.0]: https://github.com/elastic/gosigar/releases/tag/v0.7.0 [0.6.0]: https://github.com/elastic/gosigar/releases/tag/v0.6.0 [0.5.0]: https://github.com/elastic/gosigar/releases/tag/v0.5.0 [0.4.0]: https://github.com/elastic/gosigar/releases/tag/v0.4.0 [0.3.0]: https://github.com/elastic/gosigar/releases/tag/v0.3.0 [0.2.0]: https://github.com/elastic/gosigar/releases/tag/v0.2.0 [0.1.0]: https://github.com/elastic/gosigar/releases/tag/v0.1.0