为了保证程序正常运行,对服务器监控是非常有必要的。
今天推荐一个开源库,方便监控硬件的运行状态,以确保设备的高效运行。
01 项目简介
LibreHardwareMonitor 是一个开源的硬件监控软件,能够实时监测计算机的各种硬件信息,包括温度传感器、风扇转速、电压、负载以及时钟速度等。
它是 Open Hardware Monitor 的一个分支版本,继承了其优秀的功能特性,并在此基础上进行了改进和优化。
LibreHardwareMonitor 支持多种主流硬件设备,如英特尔和 AMD 处理器、NVIDIA 和 AMD 显卡、HDD、SSD 和 NVMe 硬盘以及网卡等,几乎涵盖了计算机中的所有关键硬件组件。
02 项目组成
该项目两个主要部分组成:
(一)LibreHardwareMonitor 应用程序
这是一个基于 Windows Forms 的图形界面应用程序,依赖于 .NET Framework 4.7.2。
直观的图形界面展示所有硬件的监控数据,用户可以轻松查看各个硬件组件的实时状态。
(二)LibreHardwareMonitorLib 库
LibreHardwareMonitorLib 是一个功能强大的库,允许开发者将其集成到自己的应用程序中。
它支持多种 .NET 版本,包括 .NET Framework 4.7.2、.NET 6.0 和 .NET 8.0,为开发者提供了广泛的兼容性选择。
通过使用该库,开发者可以在自己的应用程序中实现硬件监控功能,而无需从头开始开发相关的硬件接口代码。
03 使用示例
1、安装依赖库
Install-Package LibreHardwareMonitorLib
2、监控代码
using LibreHardwareMonitor.Hardware;
public class UpdateVisitor : IVisitor
{
public void VisitComputer(IComputer computer)
{
computer.Traverse(this);
}
public void VisitHardware(IHardware hardware)
{
hardware.Update();
foreach (IHardware subHardware in hardware.SubHardware) subHardware.Accept(this);
}
public void VisitSensor(ISensor sensor) { }
public void VisitParameter(IParameter parameter) { }
public void Monitor()
{
Computer computer = new Computer
{
IsCpuEnabled = true,
IsGpuEnabled = true,
IsMemoryEnabled = true,
IsMotherboardEnabled = true,
IsControllerEnabled = true,
IsNetworkEnabled = true,
IsStorageEnabled = true
};
computer.Open();
computer.Accept(new UpdateVisitor());
foreach (IHardware hardware in computer.Hardware)
{
Console.WriteLine("Hardware: {0}", hardware.Name);
foreach (IHardware subhardware in hardware.SubHardware)
{
Console.WriteLine("\tSubhardware: {0}", subhardware.Name);
foreach (ISensor sensor in subhardware.Sensors)
{
Console.WriteLine("\t\tSensor: {0}, value: {1}", sensor.Name, sensor.Value);
}
}
foreach (ISensor sensor in hardware.Sensors)
{
Console.WriteLine("\tSensor: {0}, value: {1}", sensor.Name, sensor.Value);
}
}
computer.Close();
}
}
3、调用监控代码
var visitor = new UpdateVisitor();
visitor.Monitor();
4、运行效果如下
04 项目地址
- End -