diff --git a/OpenHardwareMonitorExporter/MetricsCollector.cs b/OpenHardwareMonitorExporter/MetricsCollector.cs index 81e19d3..36fc8d2 100644 --- a/OpenHardwareMonitorExporter/MetricsCollector.cs +++ b/OpenHardwareMonitorExporter/MetricsCollector.cs @@ -15,10 +15,13 @@ public MetricsCollector(CollectorRegistry registry) _computer = new Computer() { - CPUEnabled = true, + CPUEnabled = true, + GPUEnabled = true, + RAMEnabled = true, + HDDEnabled = true, }; } - + public void Open() { _computer.Open(); diff --git a/OpenHardwareMonitorExporter/MetricsVisitor.cs b/OpenHardwareMonitorExporter/MetricsVisitor.cs index a0a3afa..0bbddd3 100644 --- a/OpenHardwareMonitorExporter/MetricsVisitor.cs +++ b/OpenHardwareMonitorExporter/MetricsVisitor.cs @@ -51,6 +51,64 @@ public void VisitSensor(ISensor sensor) var gauge = Metrics.WithCustomRegistry(_registry).CreateGauge(metricName, help, "hw", "name"); gauge.Labels(hw, sensor.Name).Set(sensor.Value.Value); } + else if (sensor.Hardware.HardwareType == HardwareType.GpuAti) + { + var metricName = $"ohm_gpu_{sensor.SensorType.ToString().ToLowerInvariant()}"; + var hw = sensor.Hardware.Identifier.ToString(); + var help = "TODO"; + switch (sensor.SensorType) + { + case SensorType.Clock: + help = "Clock [MHz]"; + break; + case SensorType.Load: + help = "Load [%]"; + break; + case SensorType.Temperature: + help = "Temperature [C]"; + break; + case SensorType.Power: + help = "Power consumption [W]"; + break; + case SensorType.Control: + help = "Fan speed [rpm]"; + break; + } + var gauge = Metrics.WithCustomRegistry(_registry).CreateGauge(metricName, help, "hw", "name"); + gauge.Labels(hw, sensor.Name).Set(sensor.Value.Value); + } + else if (sensor.Hardware.HardwareType == HardwareType.RAM) + { + var metricName = $"ohm_ram_{sensor.SensorType.ToString().ToLowerInvariant()}"; + var hw = sensor.Hardware.Identifier.ToString(); + var help = "TODO"; + switch (sensor.SensorType) + { + case SensorType.Load: + help = "Load [%]"; + break; + case SensorType.Data: + help = "Memory"; + break; + } + var gauge = Metrics.WithCustomRegistry(_registry).CreateGauge(metricName, help, "hw", "name"); + gauge.Labels(hw, sensor.Name).Set(sensor.Value.Value); + } + else if (sensor.Hardware.HardwareType == HardwareType.HDD) + { + var metricName = $"ohm_hdd_{sensor.SensorType.ToString().ToLowerInvariant()}"; + var hw = sensor.Hardware.Identifier.ToString(); + var help = "TODO"; + switch (sensor.SensorType) + { + case SensorType.Temperature: + help = "Temperature [C]"; + break; + } + var gauge = Metrics.WithCustomRegistry(_registry).CreateGauge(metricName, help, "hw", "name"); + gauge.Labels(hw, sensor.Name).Set(sensor.Value.Value); + } + } } }