mirror of
https://github.com/ilya-zlobintsev/LACT.git
synced 2025-02-25 18:55:26 -06:00
perf: skip fetching vulkan in exporter
This commit is contained in:
@@ -51,7 +51,7 @@ async fn collect_metrics(handler: &Handler, registry: &Registry) {
|
||||
for (id, controller) in gpu_controllers.iter() {
|
||||
let gpu_config = config.gpus().ok().and_then(|gpus| gpus.get(id));
|
||||
|
||||
let info = controller.get_info();
|
||||
let info = controller.get_info(true);
|
||||
let stats = controller.get_stats(gpu_config);
|
||||
|
||||
let mut device_name = String::new();
|
||||
|
||||
@@ -31,7 +31,7 @@ type FanControlHandle = (Rc<Notify>, JoinHandle<()>);
|
||||
pub trait GpuController {
|
||||
fn controller_info(&self) -> &CommonControllerInfo;
|
||||
|
||||
fn get_info(&self) -> DeviceInfo;
|
||||
fn get_info(&self, skip_vulkan: bool) -> DeviceInfo;
|
||||
|
||||
fn apply_config<'a>(
|
||||
&'a self,
|
||||
|
||||
@@ -529,12 +529,16 @@ impl GpuController for AmdGpuController {
|
||||
&self.common
|
||||
}
|
||||
|
||||
fn get_info(&self) -> DeviceInfo {
|
||||
let vulkan_info = match get_vulkan_info(&self.common.pci_info) {
|
||||
Ok(info) => Some(info),
|
||||
Err(err) => {
|
||||
warn!("could not load vulkan info: {err}");
|
||||
None
|
||||
fn get_info(&self, skip_vulkan: bool) -> DeviceInfo {
|
||||
let vulkan_info = if skip_vulkan {
|
||||
None
|
||||
} else {
|
||||
match get_vulkan_info(&self.common.pci_info) {
|
||||
Ok(info) => Some(info),
|
||||
Err(err) => {
|
||||
warn!("could not load vulkan info: {err}");
|
||||
None
|
||||
}
|
||||
}
|
||||
};
|
||||
let pci_info = Some(self.common.pci_info.clone());
|
||||
|
||||
@@ -498,12 +498,16 @@ impl GpuController for IntelGpuController {
|
||||
&self.common
|
||||
}
|
||||
|
||||
fn get_info(&self) -> DeviceInfo {
|
||||
let vulkan_info = match get_vulkan_info(&self.common.pci_info) {
|
||||
Ok(info) => Some(info),
|
||||
Err(err) => {
|
||||
warn!("could not load vulkan info: {err}");
|
||||
None
|
||||
fn get_info(&self, skip_vulkan: bool) -> DeviceInfo {
|
||||
let vulkan_info = if skip_vulkan {
|
||||
None
|
||||
} else {
|
||||
match get_vulkan_info(&self.common.pci_info) {
|
||||
Ok(info) => Some(info),
|
||||
Err(err) => {
|
||||
warn!("could not load vulkan info: {err}");
|
||||
None
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -249,12 +249,16 @@ impl GpuController for NvidiaGpuController {
|
||||
&self.common
|
||||
}
|
||||
|
||||
fn get_info(&self) -> DeviceInfo {
|
||||
let vulkan_info = match get_vulkan_info(&self.common.pci_info) {
|
||||
Ok(info) => Some(info),
|
||||
Err(err) => {
|
||||
warn!("could not load vulkan info: {err}");
|
||||
None
|
||||
fn get_info(&self, skip_vulkan: bool) -> DeviceInfo {
|
||||
let vulkan_info = if skip_vulkan {
|
||||
None
|
||||
} else {
|
||||
match get_vulkan_info(&self.common.pci_info) {
|
||||
Ok(info) => Some(info),
|
||||
Err(err) => {
|
||||
warn!("could not load vulkan info: {err}");
|
||||
None
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -369,7 +369,7 @@ impl<'a> Handler {
|
||||
}
|
||||
|
||||
pub async fn get_device_info(&'a self, id: &str) -> anyhow::Result<DeviceInfo> {
|
||||
Ok(self.controller_by_id(id).await?.get_info())
|
||||
Ok(self.controller_by_id(id).await?.get_info(false))
|
||||
}
|
||||
|
||||
pub async fn get_gpu_stats(&'a self, id: &str) -> anyhow::Result<DeviceStats> {
|
||||
@@ -723,7 +723,7 @@ impl<'a> Handler {
|
||||
|
||||
let data = json!({
|
||||
"pci_info": controller.controller_info().pci_info.clone(),
|
||||
"info": controller.get_info(),
|
||||
"info": controller.get_info(false),
|
||||
"stats": controller.get_stats(gpu_config),
|
||||
"clocks_info": controller.get_clocks_info().ok(),
|
||||
"power_profile_modes": controller.get_power_profile_modes().ok(),
|
||||
|
||||
Reference in New Issue
Block a user