Compare commits
2 Commits
294438145a
...
7a65e72c49
| Author | SHA1 | Date | |
|---|---|---|---|
| 7a65e72c49 | |||
| f8bbd1199d |
@@ -126,7 +126,7 @@ namespace ResourceMonitorService
|
|||||||
var requestBody = await new StreamReader(context.Request.Body).ReadToEndAsync();
|
var requestBody = await new StreamReader(context.Request.Body).ReadToEndAsync();
|
||||||
var parameters = JsonConvert.DeserializeObject<dynamic>(requestBody);
|
var parameters = JsonConvert.DeserializeObject<dynamic>(requestBody);
|
||||||
|
|
||||||
string action = parameters?.Action?.ToString()?.ToLower(); // "shutdown" or "restart"
|
string? action = parameters?.Action?.ToString()?.ToLower(); // "shutdown" or "restart"
|
||||||
int delaySeconds = parameters?.DelaySeconds ?? 0;
|
int delaySeconds = parameters?.DelaySeconds ?? 0;
|
||||||
|
|
||||||
// Validate action input
|
// Validate action input
|
||||||
@@ -248,32 +248,32 @@ namespace ResourceMonitorService
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.Where(p => p != null)
|
.Where(p => p != null)
|
||||||
.OrderByDescending(p => p.TotalProcessorTime)
|
.OrderByDescending(p => p!.TotalProcessorTime)
|
||||||
.Select(p => p.Process)
|
.Select(p => p!.Process)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
// Create a new anonymous type containing the CPU usage, RAM usage, and the top 3 highest CPU-using processes
|
// Create a new anonymous type containing the CPU usage, RAM usage, and the top 3 highest CPU-using processes
|
||||||
return new
|
return new
|
||||||
{
|
{
|
||||||
Usage = usage,
|
Usage = usage,
|
||||||
Process1 = new
|
Process1 = processes.Count > 0 ? new
|
||||||
{
|
{
|
||||||
Name = processes.ElementAt(0).ProcessName,
|
Name = processes[0].ProcessName,
|
||||||
TotalProcessorTime = processes.ElementAt(0).TotalProcessorTime,
|
TotalProcessorTime = processes[0].TotalProcessorTime,
|
||||||
WorkingSet64 = processes.ElementAt(0).WorkingSet64 / (1024 * 1024) // Convert to MB
|
WorkingSet64 = processes[0].WorkingSet64 / (1024 * 1024) // Convert to MB
|
||||||
},
|
} : null,
|
||||||
Process2 = new
|
Process2 = processes.Count > 1 ? new
|
||||||
{
|
{
|
||||||
Name = processes.ElementAt(1).ProcessName,
|
Name = processes[1].ProcessName,
|
||||||
TotalProcessorTime = processes.ElementAt(1).TotalProcessorTime,
|
TotalProcessorTime = processes[1].TotalProcessorTime,
|
||||||
WorkingSet64 = processes.ElementAt(1).WorkingSet64 / (1024 * 1024) // Convert to MB
|
WorkingSet64 = processes[1].WorkingSet64 / (1024 * 1024) // Convert to MB
|
||||||
},
|
} : null,
|
||||||
Process3 = new
|
Process3 = processes.Count > 2 ? new
|
||||||
{
|
{
|
||||||
Name = processes.ElementAt(2).ProcessName,
|
Name = processes[2].ProcessName,
|
||||||
TotalProcessorTime = processes.ElementAt(2).TotalProcessorTime,
|
TotalProcessorTime = processes[2].TotalProcessorTime,
|
||||||
WorkingSet64 = processes.ElementAt(2).WorkingSet64 / (1024 * 1024) // Convert to MB
|
WorkingSet64 = processes[2].WorkingSet64 / (1024 * 1024) // Convert to MB
|
||||||
}
|
} : null
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
import dynamic from 'next/dynamic';
|
|
||||||
|
|
||||||
const components = {
|
|
||||||
// other components
|
|
||||||
resourceUsage: dynamic(() => import('./resourceUsage/component')),
|
|
||||||
yourwidget: dynamic(() => import("./yourwidget/component"))
|
|
||||||
};
|
|
||||||
|
|
||||||
export default components;
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
import resourceUsage from "./resourceUsage/widget";
|
|
||||||
import yourwidget from "./yourwidget/widget";
|
|
||||||
const widgets = {
|
|
||||||
// other widgets
|
|
||||||
resourceUsage: resourceUsage,
|
|
||||||
yourwidget: yourwidget
|
|
||||||
};
|
|
||||||
|
|
||||||
export default widgets;
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
|
||||||
|
|
||||||
export default function Component({ service }) {
|
|
||||||
const { t } = useTranslation();
|
|
||||||
const { widget } = service;
|
|
||||||
const { data, error } = useWidgetAPI(widget, "info");
|
|
||||||
|
|
||||||
if (error) {
|
|
||||||
return <Container service={service} error={error} />;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
return (
|
|
||||||
<Container service={service}>
|
|
||||||
<Block label="Loading..." />
|
|
||||||
</Container>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Container service={service}>
|
|
||||||
<Block label="Machine Name" value={data.ComputerInfo.MachineName} />
|
|
||||||
<Block label="OS Version" value={data.ComputerInfo.OSVersion} />
|
|
||||||
<Block label="OS Architecture" value={data.ComputerInfo.OSArchitecture} />
|
|
||||||
<Block label="Processor Count" value={data.ComputerInfo.ProcessorCount} />
|
|
||||||
<Block label="CPU Usage" value={data.CPU} />
|
|
||||||
<Block label="RAM Usage" value={data.RAM} />
|
|
||||||
<Block label="GPU Usage" value={data.GPU.Usage} />
|
|
||||||
<Block label="GPU Temperature" value={data.GPU.Temperature} />
|
|
||||||
<Block label="GPU Fan Speed" value={data.GPU.FanSpeed} />
|
|
||||||
<Block label="Currently Running Game" value={data.CurrentlyRunningGame} />
|
|
||||||
</Container>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
|
||||||
|
|
||||||
const widget = {
|
|
||||||
api: "http://192.168.50.201:5000/api/resource-usage",
|
|
||||||
proxyHandler: genericProxyHandler,
|
|
||||||
mappings: {
|
|
||||||
info: {
|
|
||||||
endpoint: ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export default widget;
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
import { useTranslation } from "next-i18next";
|
|
||||||
|
|
||||||
import Container from "components/services/widget/container";
|
|
||||||
import Block from "components/services/widget/block";
|
|
||||||
import useWidgetAPI from "utils/proxy/use-widget-api";
|
|
||||||
|
|
||||||
export default function Component({ service }) {
|
|
||||||
const { t } = useTranslation();
|
|
||||||
const { widget } = service;
|
|
||||||
const { data, error } = useWidgetAPI(widget, "info");
|
|
||||||
|
|
||||||
if (error) {
|
|
||||||
return <Container service={service} error={error} />;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
return (
|
|
||||||
<Container service={service}>
|
|
||||||
<Block label="yourwidget.key1" />
|
|
||||||
<Block label="yourwidget.key2" />
|
|
||||||
<Block label="yourwidget.key3" />
|
|
||||||
</Container>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<Container service={service}>
|
|
||||||
<Block label="yourwidget.key1" value={t("common.number", { value: data.key1 })} />
|
|
||||||
<Block label="yourwidget.key2" value={t("common.number", { value: data.key2 })} />
|
|
||||||
<Block label="yourwidget.key3" value={t("common.number", { value: data.key3 })} />
|
|
||||||
</Container>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
import genericProxyHandler from "utils/proxy/handlers/generic";
|
|
||||||
|
|
||||||
const widget = {
|
|
||||||
api: "{url}/{endpoint}" ,
|
|
||||||
proxyHandler: genericProxyHandler ,
|
|
||||||
|
|
||||||
mappings: {
|
|
||||||
info: {
|
|
||||||
endpoint: "v1/info" ,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
export default widget;
|
|
||||||
Reference in New Issue
Block a user