mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
64 lines
1.9 KiB
TypeScript
64 lines
1.9 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
import { getInjectable } from "@ogre-tools/injectable";
|
|
import type { MetricData } from "../metrics.api";
|
|
import type { RequestMetricsParams } from "./request-metrics.injectable";
|
|
import requestMetricsInjectable from "./request-metrics.injectable";
|
|
|
|
export interface ClusterMetricData {
|
|
memoryUsage: MetricData;
|
|
memoryRequests: MetricData;
|
|
memoryLimits: MetricData;
|
|
memoryCapacity: MetricData;
|
|
memoryAllocatableCapacity: MetricData;
|
|
cpuUsage: MetricData;
|
|
cpuRequests: MetricData;
|
|
cpuLimits: MetricData;
|
|
cpuCapacity: MetricData;
|
|
cpuAllocatableCapacity: MetricData;
|
|
podUsage: MetricData;
|
|
podCapacity: MetricData;
|
|
podAllocatableCapacity: MetricData;
|
|
fsSize: MetricData;
|
|
fsUsage: MetricData;
|
|
}
|
|
|
|
export type RequestClusterMetricsByNodeNames = (nodeNames: string[], params?: RequestMetricsParams) => Promise<ClusterMetricData>;
|
|
|
|
const requestClusterMetricsByNodeNamesInjectable = getInjectable({
|
|
id: "get-cluster-metrics-by-node-names",
|
|
instantiate: (di): RequestClusterMetricsByNodeNames => {
|
|
const requestMetrics = di.inject(requestMetricsInjectable);
|
|
|
|
return (nodeNames, params) => {
|
|
const opts = {
|
|
category: "cluster",
|
|
nodes: nodeNames.join("|"),
|
|
};
|
|
|
|
return requestMetrics({
|
|
memoryUsage: opts,
|
|
workloadMemoryUsage: opts,
|
|
memoryRequests: opts,
|
|
memoryLimits: opts,
|
|
memoryCapacity: opts,
|
|
memoryAllocatableCapacity: opts,
|
|
cpuUsage: opts,
|
|
cpuRequests: opts,
|
|
cpuLimits: opts,
|
|
cpuCapacity: opts,
|
|
cpuAllocatableCapacity: opts,
|
|
podUsage: opts,
|
|
podCapacity: opts,
|
|
podAllocatableCapacity: opts,
|
|
fsSize: opts,
|
|
fsUsage: opts,
|
|
}, params);
|
|
};
|
|
},
|
|
});
|
|
|
|
export default requestClusterMetricsByNodeNamesInjectable;
|