Releases: f18m/cmonitor
2.6.1: Bugfix release
What's Changed
- Test docker build by @f18m in #69
- Cgroup V2 statistic engine improvements by @gkhandake in #68
Full Changelog: 2.6.0...2.6.1
2.6.0: Drop of Centos7 support
This release comes after almost 2 years since previous one.
I've not been very active on this project.
I recently found the time to update all build dependencies (Conan, Prometheus-cpp, docker tags, Github actions, etc) and get this new fresh release out.
To be able to build & compile the RPMs for newer platforms though I've taken the decision to drop Centos7/EPEL7 support (they lack a GCC compiler with c++14 support!). So if you're using the tool on that OS, please stick with the previous version.
What's Changed
- fix CI and COPR by @f18m in #60
- chore(deps): update actions/checkout action to v4 by @renovate in #64
- chore(deps): update alpine docker tag to v3.20.2 by @renovate in #62
- cgroup v2 CPU & memory stats for correct chart generation by @gkhandake in #65
- chore(deps): update dependency prometheus-cpp to v1.2.4 by @renovate in #63
- Feature/newer conan by @f18m in #67
New Contributors
Full Changelog: 2.5.0...2.6.0
v2.5.0: Prometheus is now supported!
Major new feature of this release is the addition of Prometheus support with the integration of the prometheus-cpp client library into cmonitor_collector.
cmonitor_collector is now able to expose, using --remote=prometheus option, an HTTP endpoint that can be scraped by Prometheus and will provide all stats about the system/container under monitor.
Thanks to @satyabratabharati for this contribution!
v2.4.1: Bugfix release
- collector: non-UTF8 contents could be written in output JSON without escaping
v2.4.0: Feature release
BACKWARD INCOMPATIBLE CHANGE IN JSON: depending on how you use the cmonitor JSONs, this release may require an update in your scripts / post-processing code
- Review JSON format for tracked processes by grouping together similar KPIs: introduce new JSON objects containing all related "cpu", "memory", "io", "proc_info" fields previously prefixed with "cpu_", "memory_", "io_", etc
v2.3.2: Bugfix Release
This release is fixing deployment of "cmonitor-tools" RPM on RHEL8 and Fedora environments, where "python-dateutil" package exists under the name "python3-dateutil".
The version 2.3.1 was an internal release not tagged in github.
v2.3.0: Feature release (WARN: BACKWARD INCOMPAT changes!)
cmonitor_chart:
- BACKWARD INCOMPATIBLE CHANGE: remove --input option in favour of more standard positional argument for input
- BACKWARD INCOMPATIBLE CHANGE: remove --filter option moved into new cmonitor_filter --task_name option
- add support for reading JSON directly from stdin using '-'
- add custom metadata in chart output under "Configuration"
- add commit hash into --version output
- refactoring to share code with other Python utils
- refactoring to allow using cmonitor_chart from other Python programs by moving all core classes into system-wide python modules
cmonitor_statistics:
- BACKWARD INCOMPATIBLE CHANGE: remove --input option in favour of more standard positional argument for input
- add support for reading JSON directly from stdin using '-'
- add commit hash into --version output
- refactoring to share code with other Python utils
- refactoring to allow using cmonitor_statistics from other Python programs by moving all core classes into system-wide python modules
cmonitor_collector:
- add commit hash into --version output
others:
- add new cmonitor_filter utility that can be used as filtering stage before cmonitor_statistics or cmonitor_chart are used
- all components: bump to a 3digits version 2.3.0 plus release number for RPMs fixed to 0; this is to better match github tags
v2.2-0: Feature release
Fix crash in case cmonitor_collector cannot find the cgroup to monitor
cmonitor_collector crashing on Ubuntu 20.04 (#31)
cmonitor_collector developments to improve the Docker-monitoring-Docker scenario
Improve cmonitor_chart utility (#34)
in cmonitor_chart output HTML:
- split in 2 categories cgroup buttons/charts related to global-cgroup stats and per-process stats
- improve cpu-by-process/thread chart by stacking the various CPU and MEMORY contributions and highlight when the CPU throttling kicks in by drwaing a thick RED line on the 2nd Y axis
- even when cgroup_threads are collected, create a "memory by process" chart and not a "memory by thread" chart
- improve rendering of TOOLTIPs and VAXIS ticks by adding Javascript code for pretty printing
- add stress-cpu and stress-mem docker examples
in cmonitor_collector:
- fix bug in collector not considering new-born PIDs for top-scorer computation
- make failcnt a differential value like cpu throttling and rename to "events.failcnt" for coherency with cgroups v2 stats
- Large Cgroup configuration code refactor: revise completely and deep-test all supported kernels/cgroup-provider combination
- Add unit tests for SYSTEMD-created cgroups (previously we had only for DOCKER-created cgroups)
- Fix search for cmonitor_collector PID in cgroups v2 (when running outside a container)
- Log errors on stdout when running in debug mode
- Change behavior: if some cgroup v2 limit cannot be detected, keep monitoring instead of giving up; this makes collector logic much more robust against unknown environments (combination of linux kernel, distribution, systemd/docker/etc)
- Fix bug where last baremetal cpu was not monitored
- in README: add info on how to build from sources
cmonitor tools:
- Fix formatting of Python scripts by increasing length used by black
- in cmonitor_chart: fix reading of timestamps when --utc is not provided
v2.1-0: Feature release
- collector: backward incompat change: generate delta CPU throttling values instead of absolute values: this is more coherent with delta CPU utilization values already produced
- collector: added "cgroup_network" as possible --collect option parameter: it works by taking the first PID inside the cgroup and then tracking the network statistics of its /proc//net/dev file; in practice provide insight on how much network traffic is done by a cgroup
- collector: add FastFileReader class to centralize the way kernel files are opened and read; this produced a noticeable speedup in sampling time
- collector: add fmtlib dependency and replace all occurrences of s[n]printf() during sampling and output generation to speedup cmonitor_collector
- collector: add sub-second sampling possibility; now --sampling-interval accepts floating point values;
- collector: do not log when a process disappears from cgroup
- collector: use fastfilereader for sampling disk statistics and other stats
- collector: close FDs for files used just during header info generation
- collector: fix hostname collection
- chart: improve rendering of date/time in output charts: add millisec accuracy in tooltip
v2.0-0: Cgroups v2 now supported!
- add support for "cpu" and "memory" cgroup controllers v2
- bump major version of cmonitor_collector and cmonitor_tools from 1.8-5 to 2.0-0
- add new data collected from kernel of Fedora35
- backward incompat change: change cgroups v1 memory stats replacing the "total_" prefix with "stat." to make them more similar to cgroups v2 stats
- add major version check in cmonitor_chart and cmonitor_statistics to avoid troubles when mixing by mistake recordings obtained with version 1.8-5 and version 2.0-0
- regenerate all examples