Skip to content

Latest commit

 

History

History
146 lines (89 loc) · 7.47 KB

CHANGELOG.md

File metadata and controls

146 lines (89 loc) · 7.47 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.


1.4.0 - 2022-01-09

v1.4.0

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.

1.3.1 - 2020-11-18

v1.3.1

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

1.3.0 - 2020-10-11

v1.3.0

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

1.2.2 - 2020-10-10

v1.2.2

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

1.2.1 - 2020-09-27

v1.2.1

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

1.2.0 - 2020-09-25

v1.2.0

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.

1.1.7 - 2020-04-11

v1.1.7

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

1.1.6 - 2020-04-10

v1.1.6

Fixed

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

1.1.5 (YANKED) - 2020-04-10

v1.1.5

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

1.1.4 - 2020-04-04

v1.1.4

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