in src/data/meminfodata.rs [233:417]
fn process_raw_data(&mut self, buffer: Data) -> Result<ProcessedData> {
let raw_value = match buffer {
Data::MeminfoDataRaw(ref value) => value,
_ => panic!("Invalid Data type in raw file"),
};
let reader = BufReader::new(raw_value.data.as_bytes());
let meminfo = Meminfo::from_reader(reader)?;
let mut meminfo_data = MeminfoData::new();
meminfo_data.add(MeminfoKeys::MemTotal.to_string(), meminfo.mem_total);
meminfo_data.add(MeminfoKeys::MemFree.to_string(), meminfo.mem_free);
meminfo_data.add(
MeminfoKeys::MemAvailable.to_string(),
meminfo.mem_available.unwrap_or_default(),
);
meminfo_data.add(MeminfoKeys::Buffers.to_string(), meminfo.buffers);
meminfo_data.add(MeminfoKeys::Cached.to_string(), meminfo.cached);
meminfo_data.add(MeminfoKeys::SwapCached.to_string(), meminfo.swap_cached);
meminfo_data.add(MeminfoKeys::Active.to_string(), meminfo.active);
meminfo_data.add(MeminfoKeys::Inactive.to_string(), meminfo.inactive);
meminfo_data.add(
MeminfoKeys::ActiveAnon.to_string(),
meminfo.active_anon.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::InactiveAnon.to_string(),
meminfo.inactive_anon.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::ActiveFile.to_string(),
meminfo.active_file.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::InactiveFile.to_string(),
meminfo.inactive_file.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::Unevictable.to_string(),
meminfo.unevictable.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::Mlocked.to_string(),
meminfo.mlocked.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::MmapCopy.to_string(),
meminfo.mmap_copy.unwrap_or_default(),
);
meminfo_data.add(MeminfoKeys::SwapTotal.to_string(), meminfo.swap_total);
meminfo_data.add(MeminfoKeys::SwapFree.to_string(), meminfo.swap_free);
meminfo_data.add(MeminfoKeys::Dirty.to_string(), meminfo.dirty);
meminfo_data.add(MeminfoKeys::Writeback.to_string(), meminfo.writeback);
meminfo_data.add(
MeminfoKeys::AnonPages.to_string(),
meminfo.anon_pages.unwrap_or_default(),
);
meminfo_data.add(MeminfoKeys::Mapped.to_string(), meminfo.mapped);
meminfo_data.add(
MeminfoKeys::Shmem.to_string(),
meminfo.shmem.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::KReclaimable.to_string(),
meminfo.k_reclaimable.unwrap_or_default(),
);
meminfo_data.add(MeminfoKeys::Slab.to_string(), meminfo.slab);
meminfo_data.add(
MeminfoKeys::SReclaimable.to_string(),
meminfo.s_reclaimable.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::SUnreclaim.to_string(),
meminfo.s_unreclaim.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::KernelStack.to_string(),
meminfo.kernel_stack.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::PageTables.to_string(),
meminfo.page_tables.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::Quicklists.to_string(),
meminfo.quicklists.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::NfsUnstable.to_string(),
meminfo.nfs_unstable.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::Bounce.to_string(),
meminfo.bounce.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::WritebackTmp.to_string(),
meminfo.writeback_tmp.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::CommitLimit.to_string(),
meminfo.commit_limit.unwrap_or_default(),
);
meminfo_data.add(MeminfoKeys::CommittedAs.to_string(), meminfo.committed_as);
meminfo_data.add(MeminfoKeys::VmallocTotal.to_string(), meminfo.vmalloc_total);
meminfo_data.add(MeminfoKeys::VmallocUsed.to_string(), meminfo.vmalloc_used);
meminfo_data.add(MeminfoKeys::VmallocChunk.to_string(), meminfo.vmalloc_chunk);
meminfo_data.add(
MeminfoKeys::PerCpu.to_string(),
meminfo.per_cpu.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::HardwareCorrupted.to_string(),
meminfo.hardware_corrupted.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::AnonHugepages.to_string(),
meminfo.anon_hugepages.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::ShmemHugepages.to_string(),
meminfo.shmem_hugepages.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::ShmemPmdMapped.to_string(),
meminfo.shmem_pmd_mapped.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::FilePmdMapped.to_string(),
meminfo.file_pmd_mapped.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::FileHugePages.to_string(),
meminfo.file_huge_pages.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::CmaTotal.to_string(),
meminfo.cma_total.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::CmaFree.to_string(),
meminfo.cma_free.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::HugepagesTotal.to_string(),
meminfo.hugepages_total.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::HugepagesFree.to_string(),
meminfo.hugepages_free.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::HugepagesRsvd.to_string(),
meminfo.hugepages_rsvd.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::HugepagesSurp.to_string(),
meminfo.hugepages_surp.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::Hugepagesize.to_string(),
meminfo.hugepagesize.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::Hugetlb.to_string(),
meminfo.hugetlb.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::DirectMap4k.to_string(),
meminfo.direct_map_4k.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::DirectMap4M.to_string(),
meminfo.direct_map_4M.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::DirectMap2M.to_string(),
meminfo.direct_map_2M.unwrap_or_default(),
);
meminfo_data.add(
MeminfoKeys::DirectMap1G.to_string(),
meminfo.direct_map_1G.unwrap_or_default(),
);
meminfo_data.set_time(raw_value.time);
let processed_data = ProcessedData::MeminfoData(meminfo_data);
Ok(processed_data)
}