Skip to content

Releases: f18m/cmonitor

v2.5.0: Prometheus is now supported!

28 Aug 22:30
34c19c1
Compare
Choose a tag to compare

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

13 Jun 21:54
Compare
Choose a tag to compare
  • collector: non-UTF8 contents could be written in output JSON without escaping

v2.4.0: Feature release

13 May 07:04
Compare
Choose a tag to compare

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

09 Apr 14:09
Compare
Choose a tag to compare

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!)

27 Jan 15:00
56f9724
Compare
Choose a tag to compare

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

18 Jan 01:27
b6c7919
Compare
Choose a tag to compare

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

04 Dec 00:22
Compare
Choose a tag to compare
  • 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!

19 Nov 23:55
2779136
Compare
Choose a tag to compare
  • 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

Bugfix release

29 Oct 14:33
Compare
Choose a tag to compare
  • Fix regression introduced in v1.7-0: when collecting per-process stats, only the main thread of each process was considered.
  • Many improvements to charts generated for cgroups/containers
  • Improvements to the versioning of the build
  • Add "cpu_tot" measurement under "cgroup_cpuacct_stats" section to ease post-processing scripts
  • Add CPU throttle and memory failure allocations reporting to cmonitor_statistics and make it more reliable
  • Fix detection of "no-limits" for CPU/memory in cgroups

Feature release

24 Oct 23:14
Compare
Choose a tag to compare

This release contains a new powerful feature: per-thread CPU/IO resource collection:

  • add new 'cgroup_threads' --collect option value to trigger collection of stats associated with secondary threads of processes found inside the cgroup-under-monitor
  • add new '--score-threshold' option value to make configurable the score filter for monitored processes/threads; this is useful to force cmonitor_collector to collect and save stats for all threads, regardless of their CPU usage.