Releases: xxxserxxx/gotop
Bugfixes and quieting the demons
This is a bugfix release.
The v3.5.0 release included debugging code that caused messages to be written to the logs every second. While this wasn't catastrophic due to log rotation released earlier, it did cause unnecessary disk IO. Cleaning that up is the main reason for this release, and gotop should be much more quiet now. Other changes include
- The kitchensink layout was forgotten
- Safety check prevent uninitialized colorscheme registry use, which could cause crashes
- The readme includes instructions on where to put colorschemes and layouts
- Some enhancements for plugins which, since extensions hasn't been officially released, most people won't notice.
Metrics and extensions
gotop can now export metrics with the -x <port>
flag. Data is exposed as Prometheus metrics; this allows snapshotting of the state of a machine, but it also allows remote querying of machines. A future release will include virtual devices who's data comes from remote gotop instances, allowing admins to have one gotop instance showing the state of multiple machines.
A new power widget has been added, which shows the battery as a bar rather than a histograph. It takes up less space and also displays the charging state of the system. It can be seen by using the built-in kitchensink
layout (gotop -l kitchensink
) or with a custom layout using the power
widget (e.g. echo '3:cpu\npower' | gotop -l -
).
More pull requests are merged, including one that puts a ° symbol in the temp widget; apparently, this bugged a number of people because there was more than one pull request candidate.
This release adds new features and lays groundwork for future enhancements based on a plugin architecture that will prevent bloat while enabling us to ship support for devices that aren't ubiquitous. An Nvidia GPU usage, memory, and temperature device will be the first such device within the next couple of weeks.
darwin 386 builds are no longer provided.
Bug fixes
Fixes:
- #15, crash caused by battery widget when some accessories have batteries
- #57, colors with dashes in the name not found.
Also, FYI: cjbassi#127 and cjbassi#130 were included in the v3.1.0 release, and have been in all releases since.
Bug hotfix
- Fixed: Fixes a layout bug where, if columns filled up early, widgets would be consumed but not displayed. This affects layouts such as
3:cpu 3:procs mem
- Fixed: Rolled back dependency update on github.com/shirou/gopsutil; the new version has a bug that causes cores to not be seen.
EDIT
The rpm and debs have been updated; the previous archives contained the wrong version of the application due to my unfamiliarity with the nfpm tool used to build them.
Logs and configuration
Adds a feature request to prevent logs from eventually eating the entire drive. This was a tough one, as log rotation is arguably something kitchen-sinkish. OTOH, it's also (frequently) non-trivial for users to set up, and log size really can be a problem. So I included it.
Configurations can now be persisted in a config file. This was another hard one. gotop
configuration really isn't complex, or widely varied. But, somebody asked for it, and somebody else provided a patch for it, so what the heck.
- Added: Logs are now rotated. Settings are currently hard-coded at 4 files of 5MB each, so logs shouldn't take up more than 20MB. I'm going to see how many complain about wanting to configure these settings before I make them configurable.
- Added: Config file support. $XDG_CONFIG_HOME/gotop/gotop.conf can now contain any field in Config. Syntax is simply KEY=VALUE. Values in config file are overridden by command-line arguments (although, there's a weakness in that there's no way to disable boolean fields enabled in the config).
- Changed: Colorscheme registration is changed to be less hard-coded. Colorschemes can now be created and added to the repo, without having to also add hard-coded references elsewhere. This change is invisible to users.
- Changed: Minor code refactoring to support Config file changes has resulted in better isolation. This change is invisible to users.
I'm slowly filling gaps in the cross-compiled binaries for other platforms; however, I only have access to Linux so YMMV if you're not Linux/AMD64. Darwin and OpenBSD are not available as they require headers to which I don't have access.
As an aside: gotop is, essentially, a single executable. I struggle to see the value of adding snaps, appimages, docker images, or flatpacks. Even RPM and debs are only there because Caleb added them at some point, and Newton's first law of thermodynamics and all that. Anyway, convince me otherwise and I'll add them.
Bugs & pulls
Fixes a bug and merges more contributions.
- FIX Rowspan in a column loses widgets in later columns
- Merged pull request for README clean-ups (@theverything add-missing-option-to-readme)
- Merge Nord color scheme (@jrswab nordColorScheme)
- Merge support for multiple (and filtering) network interfaces (@mattLLVW feature/network_interface_list)
- Merge filtering subprocesses by substring (@rephorm filter)
Layouts, colors, and kills
New features and merges from other forks. This also contains a substantial restructuring of the codebase to better follow common practices. This change has no effect on users, but does affect developers.
- Merges @howjmay spelling fixes
- Merges @markuspeloquin solarized themes
- Merges @jrswab additional kill terms
- Adds the ability to lay out the UI using a text file