use of oshi.software.os.FileSystem in project graylog2-server by Graylog2.
the class OshiProcessProbe method processStats.
@Override
public ProcessStats processStats() {
final OperatingSystem os = service.getOs();
final FileSystem fs = os.getFileSystem();
final long pid = os.getProcessId();
final OSProcess proc = os.getProcess(os.getProcessId());
final ProcessStats.Cpu cpu = ProcessStats.Cpu.create(((short) proc.getProcessCpuLoadCumulative()), proc.getKernelTime(), proc.getUserTime(), proc.getUpTime());
final ProcessStats.Memory mem = ProcessStats.Memory.create(proc.getVirtualSize(), proc.getResidentSetSize(), -1);
return ProcessStats.create(pid, fs.getOpenFileDescriptors(), fs.getMaxFileDescriptors(), cpu, mem);
}
use of oshi.software.os.FileSystem in project ats-framework by Axway.
the class OshiSystemInformation method listFileSystems.
@Override
public IFileSystem[] listFileSystems() {
FileSystem fs = this.systemInfo.getOperatingSystem().getFileSystem();
// enumerate only local drives. (Network ones are excluded)
List<OSFileStore> fileStores = fs.getFileStores(true);
List<IFileSystem> fileSystems = new ArrayList<IFileSystem>();
for (OSFileStore fileStore : fileStores) {
fileSystems.add(new OshiFileSystem(fileStore, fileStore.getMount()));
}
return fileSystems.toArray(new IFileSystem[fileSystems.size()]);
}
use of oshi.software.os.FileSystem in project ats-framework by Axway.
the class OshiSystemInformation method getFileSystem.
@Override
public IFileSystem getFileSystem(String devName) {
try {
FileSystem fs = this.os.getFileSystem();
List<OSFileStore> fileStores = fs.getFileStores();
for (OSFileStore fileStore : fileStores) {
if (fileStore.getName().equals(devName)) {
return new OshiFileSystem(fileStore, fileStore.getName());
}
}
throw new SystemInformationException("No such file system drive device '" + devName + "'");
} catch (Exception e) {
throw new SystemInformationException("Could not obtain file system for/from device '" + devName + "'", e);
}
}
use of oshi.software.os.FileSystem in project graylog2-server by Graylog2.
the class OshiFsProbe method init.
private void init() {
final OperatingSystem os = service.getOs();
final FileSystem fileSystem = os.getFileSystem();
final HardwareAbstractionLayer hardware = service.getHal();
for (Path location : locations) {
Path path = location.toAbsolutePath();
oshiFileSystems.put(path, fileSystem.getFileStores().stream().filter(fs -> path.startsWith(fs.getMount())).max(Comparator.comparingInt(p -> Paths.get(p.getMount()).getNameCount())).map(fs -> {
// First try search for the diskstore with the logical volume or volume name
Optional<HWDiskStore> diskStore = hardware.getDiskStores().stream().filter(ds -> ds.getName().equals(StringUtils.defaultIfEmpty(fs.getLogicalVolume(), fs.getVolume()))).findFirst();
if (diskStore.isPresent()) {
return new Pair<>(fs, diskStore.get());
}
// Try to search for the diskstore with the partition of our mountpoint
diskStore = hardware.getDiskStores().stream().filter(ds -> ds.getPartitions().stream().anyMatch(part -> path.startsWith(part.getMountPoint()))).max(Comparator.comparingInt(ds -> ds.getPartitions().stream().filter(part -> path.startsWith(part.getMountPoint())).mapToInt(part -> Paths.get(part.getMountPoint()).getNameCount()).max().orElse(0)));
if (diskStore.isPresent()) {
return new Pair<>(fs, diskStore.get());
}
return new Pair<>(fs, generateDummyDiskStore());
}).orElse(new Pair<>(generateDummyFileStore(), generateDummyDiskStore())));
}
}
Aggregations