Skip to content

Releases: elba-docker/radvisor

v1.4.0

09 Jan 15:06
Compare
Choose a tag to compare

Added

  • Changed license from the MIT License to the GNU General Public License v3.0
  • Support for cgroup v2 was added to the Docker container statistics collection.
    • Motivation: Cgroup v2 handles accounting for writeback I/O better than cgroup v1, and is slowly replacing cgroup v1 as the more modern system.
    • Support: Docker added support for Cgroup v2 in its 20.10 release, and most low-level container runtimes added support for it by the end of 2021. Additionally Cgroup v2 is the default-mounted cgroup version in Ubuntu starting in 21.10, and in most other popular distros starting around 2021.
    • Changes:
      • The schema for the CSV data in the log-file is different in cgroup v1 and cgroup v2, since the kernel exposes different statistics for each.
      • The CollectorType log metadata field was added to distinguish whether a log file contains statistics from cgroup_v1 or cgroup_v2
      • Cgroup and CgroupDriver log metadata fields were moved under CollectorMetadata
      • (internal) A new abstraction was introduced, Collector, which defines a trait that is used to collect resource utilization statistics for a running target. Both cgroup_v1::Collector and cgroup_v2::Collector implement this trait.

v1.3.1

19 Nov 01:38
Compare
Choose a tag to compare

Added

  • Remove support for Windows builds (until actual support for Host Compute Platform is added)
  • Add support for specifying the Kubernetes config file:
    • radvisor run kubernetes --kube-config ~/.kube/config
  • Re-enable ZSH completions on the generated Debian package, and add value hints for all relevant CLI options
  • (internal) Remove dependency on Nightly Rust and change toolchain to Stable Rust 1.47
  • (internal) Use single-threaded Tokio executors to reduce number of kernel threads used at runtime
  • (internal) Clean up Makefile builds and unify with CI

v1.3.0

11 Oct 04:57
Compare
Choose a tag to compare

Added

  • Block I/O stats have been better-parsed to now be useful as simple scalar values.
    • For blkio.time and blkio.sectors, this is a single scalar (representing the total of all devices), while for all other block I/O columns, each category is now split and aggregated into four separate columns for read total, write total, sync total, and async total (for all devices).
    • For example, the non-scalar column blkio.service.bytes is now 4 scalar columns: blkio.service.bytes.read, blkio.service.bytes.write, blkio.service.bytes.sync, and blkio.service.bytes.async

v1.2.2

10 Oct 23:29
Compare
Choose a tag to compare

Added

  • Two additional groups of block-io stats have been added: bfq and throttle, and with them, 4 more logfile columns:
    blkio.throttle.service.bytes,
    blkio.throttle.service.ios,
    blkio.bfq.service.bytes,
    blkio.bfq.service.ios
    

Fixed

  • PolledAt is now a standard entry on the logfile header. Fixes regression made in v1.1.5 where PolledAt no longer appeared on target logfiles created by the Docker provider

v1.2.1

27 Sep 21:28
Compare
Choose a tag to compare

Added

  • The buffer size is now parameterized by providing a --buffer option to the main CLI. This buffer size is allocated on the heap for each collection target, and is used to store the CSV records as they are produced.
  • (internal) Upgraded to clap version "3.0.0-beta.2", removing 1/2 of the dependencies on Git package versions (sys-info-rs) is still depended on

v1.2.0

25 Sep 20:54
Compare
Choose a tag to compare

Added

  • Buffer flush logging by providing a --flush-log option to the CLI that can be used to enable logging to an in-memory buffer when the collection log file buffers get flushed (and written). This is to provide a record of when rAdvisor consumes resources like file I/O to ensure it doesn't confound experimental results.

v1.1.7

11 Apr 23:47
Compare
Choose a tag to compare

Added

  • Debian packaging is now included with every release (#10)
  • Man files compiled from source in the /man folder
  • (internal) Additional CLI tool crate in build/, called radvisor-toolbox, used to generate shell completions and compress docs for packaging
  • (internal) Enabled additional lint rules in clippy::nursery and clippy::pedantic, along with ensuring compliance across the codebase

v1.1.6

11 Apr 00:40
67adf99
Compare
Choose a tag to compare

Fixed

  • NUL byte bug where read fields in the final output were right-padded with NUL characters, caused by writing the entire buffer

v1.1.5

10 Apr 23:57
8e91840
Compare
Choose a tag to compare
v1.1.5 Pre-release
Pre-release

(YANKED) - do not use

Added

  • System information to log metadata, including Linux distribution (if available) and CPU/memory information (#6)
  • (internal) Event-based thread communication between the polling and collection threads (#8)

Changed

  • Modified the structure of log header metadata to support the migration to event-based thread communication

v1.1.4

04 Apr 15:59
Compare
Choose a tag to compare

Added

  • Polling for Docker containers to the Docker daemon, retrieving a list of active, running containers to collect statistics for (radvisor run docker)
  • Polling for Kubernetes pods to the Kubernetes API, determining what the current node the process is running on and collecting pods that are ccurrently running on that node.
  • Cgroup-based statistics collection on Linux for collection targets (pods/containers)
  • CSVY statistics output with YAML metadata headers and CSV data bodies in /var/log/radvisor/stats