lib/ohai/plugins/freebsd/memory.rb in ohai-6.24.2 vs lib/ohai/plugins/freebsd/memory.rb in ohai-7.0.0.rc.0
- old
+ new
@@ -14,37 +14,47 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
-provides "memory"
+Ohai.plugin(:Memory) do
+ provides "memory", "memory/swap"
-memory Mash.new
-memory[:swap] = Mash.new
+ collect_data(:freebsd) do
+ memory Mash.new
+ memory[:swap] = Mash.new
-# /usr/src/sys/sys/vmmeter.h
-memory[:page_size] = from("sysctl -n vm.stats.vm.v_page_size")
-memory[:page_count] = from("sysctl -n vm.stats.vm.v_page_count")
-memory[:total] = memory[:page_size].to_i * memory[:page_count].to_i
-memory[:free] = memory[:page_size].to_i * from("sysctl -n vm.stats.vm.v_free_count").to_i
-memory[:active] = memory[:page_size].to_i * from("sysctl -n vm.stats.vm.v_active_count").to_i
-memory[:inactive] = memory[:page_size].to_i * from("sysctl -n vm.stats.vm.v_inactive_count").to_i
-memory[:cache] = memory[:page_size].to_i * from("sysctl -n vm.stats.vm.v_cache_count").to_i
-memory[:wired] = memory[:page_size].to_i * from("sysctl -n vm.stats.vm.v_wire_count").to_i
-memory[:buffers] = from("sysctl -n vfs.bufspace")
+ # /usr/src/sys/sys/vmmeter.h
+ so = shell_out("sysctl -n vm.stats.vm.v_page_size")
+ memory[:page_size] = so.stdout.split($/)[0]
+ so = shell_out("sysctl -n vm.stats.vm.v_page_count")
+ memory[:page_count] = so.stdout.split($/)[0]
+ memory[:total] = memory[:page_size].to_i * memory[:page_count].to_i
+ so = shell_out("sysctl -n vm.stats.vm.v_free_count")
+ memory[:free] = memory[:page_size].to_i * so.stdout.split($/)[0].to_i
+ so = shell_out("sysctl -n vm.status.vm.v_active_count")
+ memory[:active] = memory[:page_size].to_i * so.stdout.split($/)[0].to_i
+ so = shell_out("sysctl -n vm.status.vm.v_inactive_count")
+ memory[:inactive] = memory[:page_size].to_i * so.stdout.split($/)[0].to_i
+ so = shell_out("sysctl -n vm.stats.vm.v_cache_count")
+ memory[:cache] = memory[:page_size].to_i * so.stdout.split($/)[0].to_i
+ so = shell_out("sysctl -n vm.stats.vm.v_wire_count")
+ memory[:wired] = memory[:page_size].to_i * so.stdout.split($/)[0].to_i
+ so = shell_out("sysctl -n vfs.bufspace")
+ memory[:buffers] = so.stdout.split($/)[0]
-popen4("swapinfo") do |pid, stdin, stdout, stderr|
- stdin.close
- stdout.each do |line|
- # Device 1K-blocks Used Avail Capacity
- # /dev/ad0s1b 253648 0 253648 0%
- if line =~ /^([\d\w\/]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+([\d\%]+)/
- mdev = $1
- memory[:swap][mdev] = Mash.new
- memory[:swap][mdev][:total] = $2
- memory[:swap][mdev][:used] = $3
- memory[:swap][mdev][:free] = $4
- memory[:swap][mdev][:percent_free] = $5
+ so = shell_out("swapinfo")
+ so.stdout.lines do |line|
+ # Device 1K-blocks Used Avail Capacity
+ # /dev/ad0s1b 253648 0 253648 0%
+ if line =~ /^([\d\w\/]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+([\d\%]+)/
+ mdev = $1
+ memory[:swap][mdev] = Mash.new
+ memory[:swap][mdev][:total] = $2
+ memory[:swap][mdev][:used] = $3
+ memory[:swap][mdev][:free] = $4
+ memory[:swap][mdev][:percent_free] = $5
+ end
end
end
end