in middleware/controllers/nodeExporter.js [176:209]
async function getTimeSpentDoingIO(req, res) {
const { from = "now-5m", until = "now", step = 28 } = req.body;
const query = "rate(node_disk_io_time_seconds_total{device='vda', job='node_exporter'}[5m])";
try {
const baseUrl = buildUrl(getEnv("NODE_EXPORTER_BASE_URL"), {
query,
start: from,
end: until,
step,
});
const config = {
method: 'get',
url: baseUrl,
};
const response = await axios.request(config);
const result = response?.data?.data?.result?.[0]?.values || [];
const formattedData = result.map(([timestamp, value]) => ({
time: new Date(timestamp * 1000).toISOString(),
value: parseFloat(value),
}));
return res.send({ data: formattedData });
} catch (error) {
logger.error("Error fetching Disk IO Time data:", error);
return res.status(400).send({
error: error.message || "Failed to fetch Disk IO Time data",
});
}
}