Class: Pvectl::Presenters::TopContainer
- Includes:
- TopPresenter
- Defined in:
- lib/pvectl/presenters/top_container.rb
Overview
Presenter for container resource usage metrics (top command).
Inherits from Presenters::Container for reuse of formatting methods. Includes TopPresenter for shared metrics display. Focuses on CPU, memory, swap, disk, and network utilization.
Instance Method Summary collapse
-
#columns ⇒ Array<String>
Returns column headers for standard table output.
-
#extra_columns ⇒ Array<String>
Returns additional column headers for wide output.
-
#extra_values(model, **_context) ⇒ Array<String>
Returns additional values for wide output.
-
#to_hash(model) ⇒ Hash
Converts Container model to hash for JSON/YAML output.
-
#to_row(model, **_context) ⇒ Array<String>
Converts Container model to table row with metrics values.
Methods included from TopPresenter
#cpu_cores_value, #cpu_usage_value, #percent_display, #percent_value
Methods inherited from Container
#cpu_percent, #disk_display, #disk_total_gib, #disk_used_gib, #display_name, #memory_display, #memory_total_gib, #memory_used_gib, #netin_display, #netout_display, #pool_display, #swap_display, #swap_total_mib, #swap_used_mib, #to_description
Methods inherited from Base
#tags_array, #tags_display, #template_display, #to_description, #to_wide_row, #uptime_human, #wide_columns
Instance Method Details
#columns ⇒ Array<String>
Returns column headers for standard table output.
26 27 28 |
# File 'lib/pvectl/presenters/top_container.rb', line 26 def columns %w[CTID NAME NODE CPU(cores) CPU% MEMORY MEMORY%] end |
#extra_columns ⇒ Array<String>
Returns additional column headers for wide output.
33 34 35 |
# File 'lib/pvectl/presenters/top_container.rb', line 33 def extra_columns %w[SWAP SWAP% DISK DISK% NETIN NETOUT] end |
#extra_values(model, **_context) ⇒ Array<String>
Returns additional values for wide output.
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/pvectl/presenters/top_container.rb', line 60 def extra_values(model, **_context) @container = model [ swap_display, percent_display(container.swap, container.maxswap), disk_display, percent_display(container.disk, container.maxdisk), netin_display, netout_display ] end |
#to_hash(model) ⇒ Hash
Converts Container model to hash for JSON/YAML output.
Returns metrics-focused hash without operational info (no status, template, tags, pool, uptime).
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/pvectl/presenters/top_container.rb', line 79 def to_hash(model) @container = model { "ctid" => container.vmid, "name" => container.name, "node" => container.node, "cpu" => { "usage_percent" => container.cpu.nil? ? nil : (container.cpu * 100).round, "cores" => container.maxcpu }, "memory" => { "used_bytes" => container.mem, "total_bytes" => container.maxmem, "usage_percent" => percent_value(container.mem, container.maxmem) }, "swap" => { "used_bytes" => container.swap, "total_bytes" => container.maxswap, "usage_percent" => percent_value(container.swap, container.maxswap) }, "disk" => { "used_bytes" => container.disk, "total_bytes" => container.maxdisk, "usage_percent" => percent_value(container.disk, container.maxdisk) }, "network" => { "in_bytes" => container.netin, "out_bytes" => container.netout } } end |
#to_row(model, **_context) ⇒ Array<String>
Converts Container model to table row with metrics values.
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/pvectl/presenters/top_container.rb', line 42 def to_row(model, **_context) @container = model [ container.vmid.to_s, display_name, container.node, cpu_cores_value(container), cpu_usage_value(container), memory_display, percent_display(container.mem, container.maxmem) ] end |