From 5471db80e4064e49dd976ff757b34d79dc5971a0 Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Tue, 13 Apr 2021 14:09:23 +0300 Subject: [PATCH] move metrics functions away from workload api classes Signed-off-by: Jari Kolehmainen --- src/renderer/api/endpoints/cluster.api.ts | 20 +++++++++++ src/renderer/api/endpoints/daemon-set.api.ts | 27 ++++++++------- src/renderer/api/endpoints/deployment.api.ts | 26 +++++++------- src/renderer/api/endpoints/ingress.api.ts | 25 +++++++------- src/renderer/api/endpoints/job.api.ts | 27 ++++++++------- src/renderer/api/endpoints/namespaces.api.ts | 25 +++++++------- src/renderer/api/endpoints/nodes.api.ts | 23 +++++++------ .../endpoints/persistent-volume-claims.api.ts | 17 +++++----- src/renderer/api/endpoints/pods.api.ts | 34 +++++++++---------- src/renderer/api/endpoints/replica-set.api.ts | 26 +++++++------- .../api/endpoints/stateful-set.api.ts | 26 +++++++------- .../+cluster/cluster-overview.store.ts | 4 +-- .../components/+namespaces/namespace.store.ts | 4 +-- .../+network-ingresses/ingress.store.ts | 4 +-- src/renderer/components/+nodes/nodes.store.ts | 6 ++-- .../volume-claim.store.ts | 4 +-- .../+workloads-daemonsets/daemonsets.store.ts | 4 +-- .../deployments.store.ts | 4 +-- .../components/+workloads-jobs/job.store.ts | 4 +-- .../components/+workloads-pods/pods.store.ts | 6 ++-- .../replicasets.store.ts | 4 +-- .../statefulset.store.ts | 4 +-- 22 files changed, 175 insertions(+), 149 deletions(-) diff --git a/src/renderer/api/endpoints/cluster.api.ts b/src/renderer/api/endpoints/cluster.api.ts index e96ab7f082..ef9882675a 100644 --- a/src/renderer/api/endpoints/cluster.api.ts +++ b/src/renderer/api/endpoints/cluster.api.ts @@ -27,6 +27,26 @@ export class ClusterApi extends KubeApi { } } +export function getMetricsForNodeNames(nodeNames: string[], params?: IMetricsReqParams): Promise { + const nodes = nodeNames.join("|"); + const opts = { category: "cluster", nodes }; + + return metricsApi.getMetrics({ + memoryUsage: opts, + memoryRequests: opts, + memoryLimits: opts, + memoryCapacity: opts, + cpuUsage: opts, + cpuRequests: opts, + cpuLimits: opts, + cpuCapacity: opts, + podUsage: opts, + podCapacity: opts, + fsSize: opts, + fsUsage: opts + }, params); +} + export enum ClusterStatus { ACTIVE = "Active", CREATING = "Creating", diff --git a/src/renderer/api/endpoints/daemon-set.api.ts b/src/renderer/api/endpoints/daemon-set.api.ts index 5f80a927d0..2a0437ddd3 100644 --- a/src/renderer/api/endpoints/daemon-set.api.ts +++ b/src/renderer/api/endpoints/daemon-set.api.ts @@ -74,20 +74,21 @@ export class DaemonSet extends WorkloadKubeObject { export class DaemonSetApi extends KubeApi { - getMetrics(daemonsets: DaemonSet[], namespace: string, selector = ""): Promise { - const podSelector = daemonsets.map(daemonset => `${daemonset.getName()}-[[:alnum:]]{5}`).join("|"); - const opts = { category: "pods", pods: podSelector, namespace, selector }; +} - return metricsApi.getMetrics({ - cpuUsage: opts, - memoryUsage: opts, - fsUsage: opts, - networkReceive: opts, - networkTransmit: opts, - }, { - namespace, - }); - } +export function getMetricsForDaemonSets(daemonsets: DaemonSet[], namespace: string, selector = ""): Promise { + const podSelector = daemonsets.map(daemonset => `${daemonset.getName()}-[[:alnum:]]{5}`).join("|"); + const opts = { category: "pods", pods: podSelector, namespace, selector }; + + return metricsApi.getMetrics({ + cpuUsage: opts, + memoryUsage: opts, + fsUsage: opts, + networkReceive: opts, + networkTransmit: opts, + }, { + namespace, + }); } export const daemonSetApi = new DaemonSetApi({ diff --git a/src/renderer/api/endpoints/deployment.api.ts b/src/renderer/api/endpoints/deployment.api.ts index 200468b845..584c016be4 100644 --- a/src/renderer/api/endpoints/deployment.api.ts +++ b/src/renderer/api/endpoints/deployment.api.ts @@ -46,21 +46,21 @@ export class DeploymentApi extends KubeApi { } }); } +} - getMetrics(deployments: Deployment[], namespace: string, selector = ""): Promise { - const podSelector = deployments.map(deployment => `${deployment.getName()}-[[:alnum:]]{9,}-[[:alnum:]]{5}`).join("|"); - const opts = { category: "pods", pods: podSelector, namespace, selector }; +export function getMetricsForDeployments(deployments: Deployment[], namespace: string, selector = ""): Promise { + const podSelector = deployments.map(deployment => `${deployment.getName()}-[[:alnum:]]{9,}-[[:alnum:]]{5}`).join("|"); + const opts = { category: "pods", pods: podSelector, namespace, selector }; - return metricsApi.getMetrics({ - cpuUsage: opts, - memoryUsage: opts, - fsUsage: opts, - networkReceive: opts, - networkTransmit: opts, - }, { - namespace, - }); - } + return metricsApi.getMetrics({ + cpuUsage: opts, + memoryUsage: opts, + fsUsage: opts, + networkReceive: opts, + networkTransmit: opts, + }, { + namespace, + }); } interface IContainerProbe { diff --git a/src/renderer/api/endpoints/ingress.api.ts b/src/renderer/api/endpoints/ingress.api.ts index 7d035ad591..7436813cea 100644 --- a/src/renderer/api/endpoints/ingress.api.ts +++ b/src/renderer/api/endpoints/ingress.api.ts @@ -4,18 +4,19 @@ import { IMetrics, metricsApi } from "./metrics.api"; import { KubeApi } from "../kube-api"; export class IngressApi extends KubeApi { - getMetrics(ingress: string, namespace: string): Promise { - const opts = { category: "ingress", ingress }; +} - return metricsApi.getMetrics({ - bytesSentSuccess: opts, - bytesSentFailure: opts, - requestDurationSeconds: opts, - responseDurationSeconds: opts - }, { - namespace, - }); - } +export function getMetricsForIngress(ingress: string, namespace: string): Promise { + const opts = { category: "ingress", ingress }; + + return metricsApi.getMetrics({ + bytesSentSuccess: opts, + bytesSentFailure: opts, + requestDurationSeconds: opts, + responseDurationSeconds: opts + }, { + namespace, + }); } export interface IIngressMetrics { @@ -167,7 +168,7 @@ export class Ingress extends KubeObject { getLoadBalancers() { const { status: { loadBalancer = { ingress: [] } } } = this; - + return (loadBalancer.ingress ?? []).map(address => ( address.hostname || address.ip )); diff --git a/src/renderer/api/endpoints/job.api.ts b/src/renderer/api/endpoints/job.api.ts index b8fa0a862d..9442de150a 100644 --- a/src/renderer/api/endpoints/job.api.ts +++ b/src/renderer/api/endpoints/job.api.ts @@ -110,20 +110,21 @@ export class Job extends WorkloadKubeObject { export class JobApi extends KubeApi { - getMetrics(jobs: Job[], namespace: string, selector = ""): Promise { - const podSelector = jobs.map(job => `${job.getName()}-[[:alnum:]]{5}`).join("|"); - const opts = { category: "pods", pods: podSelector, namespace, selector }; +} - return metricsApi.getMetrics({ - cpuUsage: opts, - memoryUsage: opts, - fsUsage: opts, - networkReceive: opts, - networkTransmit: opts, - }, { - namespace, - }); - } +export function getMetricsForJobs(jobs: Job[], namespace: string, selector = ""): Promise { + const podSelector = jobs.map(job => `${job.getName()}-[[:alnum:]]{5}`).join("|"); + const opts = { category: "pods", pods: podSelector, namespace, selector }; + + return metricsApi.getMetrics({ + cpuUsage: opts, + memoryUsage: opts, + fsUsage: opts, + networkReceive: opts, + networkTransmit: opts, + }, { + namespace, + }); } export const jobApi = new JobApi({ diff --git a/src/renderer/api/endpoints/namespaces.api.ts b/src/renderer/api/endpoints/namespaces.api.ts index 6b8e41005f..ca9c0b1673 100644 --- a/src/renderer/api/endpoints/namespaces.api.ts +++ b/src/renderer/api/endpoints/namespaces.api.ts @@ -25,19 +25,20 @@ export class Namespace extends KubeObject { } export class NamespaceApi extends KubeApi { - getMetrics(namespace: string, selector = ""): Promise { - const opts = { category: "pods", pods: ".*", namespace, selector }; +} - return metricsApi.getMetrics({ - cpuUsage: opts, - memoryUsage: opts, - fsUsage: opts, - networkReceive: opts, - networkTransmit: opts, - }, { - namespace, - }); - } +export function getMetricsForNamespace(namespace: string, selector = ""): Promise { + const opts = { category: "pods", pods: ".*", namespace, selector }; + + return metricsApi.getMetrics({ + cpuUsage: opts, + memoryUsage: opts, + fsUsage: opts, + networkReceive: opts, + networkTransmit: opts, + }, { + namespace, + }); } export const namespacesApi = new NamespaceApi({ diff --git a/src/renderer/api/endpoints/nodes.api.ts b/src/renderer/api/endpoints/nodes.api.ts index d1794f0fb7..70ad3e6711 100644 --- a/src/renderer/api/endpoints/nodes.api.ts +++ b/src/renderer/api/endpoints/nodes.api.ts @@ -4,18 +4,19 @@ import { IMetrics, metricsApi } from "./metrics.api"; import { KubeApi } from "../kube-api"; export class NodesApi extends KubeApi { - getMetrics(): Promise { - const opts = { category: "nodes"}; +} - return metricsApi.getMetrics({ - memoryUsage: opts, - memoryCapacity: opts, - cpuUsage: opts, - cpuCapacity: opts, - fsSize: opts, - fsUsage: opts - }); - } +export function getMetricsForAllNodes(): Promise { + const opts = { category: "nodes"}; + + return metricsApi.getMetrics({ + memoryUsage: opts, + memoryCapacity: opts, + cpuUsage: opts, + cpuCapacity: opts, + fsSize: opts, + fsUsage: opts + }); } export interface INodeMetrics { diff --git a/src/renderer/api/endpoints/persistent-volume-claims.api.ts b/src/renderer/api/endpoints/persistent-volume-claims.api.ts index 1d9e1f1dce..4d65ac26d1 100644 --- a/src/renderer/api/endpoints/persistent-volume-claims.api.ts +++ b/src/renderer/api/endpoints/persistent-volume-claims.api.ts @@ -5,14 +5,15 @@ import { Pod } from "./pods.api"; import { KubeApi } from "../kube-api"; export class PersistentVolumeClaimsApi extends KubeApi { - getMetrics(pvcName: string, namespace: string): Promise { - return metricsApi.getMetrics({ - diskUsage: { category: "pvc", pvc: pvcName }, - diskCapacity: { category: "pvc", pvc: pvcName } - }, { - namespace - }); - } +} + +export function getMetricsForPvc(pvc: PersistentVolumeClaim): Promise { + return metricsApi.getMetrics({ + diskUsage: { category: "pvc", pvc: pvc.getName() }, + diskCapacity: { category: "pvc", pvc: pvc.getName() } + }, { + namespace: pvc.getNs() + }); } export interface IPvcMetrics { diff --git a/src/renderer/api/endpoints/pods.api.ts b/src/renderer/api/endpoints/pods.api.ts index ea2f45023f..2e1229e9ee 100644 --- a/src/renderer/api/endpoints/pods.api.ts +++ b/src/renderer/api/endpoints/pods.api.ts @@ -9,25 +9,25 @@ export class PodsApi extends KubeApi { return this.request.get(path, { query }); } +} - getMetrics(pods: Pod[], namespace: string, selector = "pod, namespace"): Promise { - const podSelector = pods.map(pod => pod.getName()).join("|"); - const opts = { category: "pods", pods: podSelector, namespace, selector }; +export function getMetricsForPods(pods: Pod[], namespace: string, selector = "pod, namespace"): Promise { + const podSelector = pods.map(pod => pod.getName()).join("|"); + const opts = { category: "pods", pods: podSelector, namespace, selector }; - return metricsApi.getMetrics({ - cpuUsage: opts, - cpuRequests: opts, - cpuLimits: opts, - memoryUsage: opts, - memoryRequests: opts, - memoryLimits: opts, - fsUsage: opts, - networkReceive: opts, - networkTransmit: opts, - }, { - namespace, - }); - } + return metricsApi.getMetrics({ + cpuUsage: opts, + cpuRequests: opts, + cpuLimits: opts, + memoryUsage: opts, + memoryRequests: opts, + memoryLimits: opts, + fsUsage: opts, + networkReceive: opts, + networkTransmit: opts, + }, { + namespace, + }); } export interface IPodMetrics { diff --git a/src/renderer/api/endpoints/replica-set.api.ts b/src/renderer/api/endpoints/replica-set.api.ts index b83b5fcd02..db7b88e7b4 100644 --- a/src/renderer/api/endpoints/replica-set.api.ts +++ b/src/renderer/api/endpoints/replica-set.api.ts @@ -26,21 +26,21 @@ export class ReplicaSetApi extends KubeApi { } }); } +} - getMetrics(replicasets: ReplicaSet[], namespace: string, selector = ""): Promise { - const podSelector = replicasets.map(replicaset => `${replicaset.getName()}-[[:alnum:]]{5}`).join("|"); - const opts = { category: "pods", pods: podSelector, namespace, selector }; +export function getMetricsForReplicaSets(replicasets: ReplicaSet[], namespace: string, selector = ""): Promise { + const podSelector = replicasets.map(replicaset => `${replicaset.getName()}-[[:alnum:]]{5}`).join("|"); + const opts = { category: "pods", pods: podSelector, namespace, selector }; - return metricsApi.getMetrics({ - cpuUsage: opts, - memoryUsage: opts, - fsUsage: opts, - networkReceive: opts, - networkTransmit: opts, - }, { - namespace, - }); - } + return metricsApi.getMetrics({ + cpuUsage: opts, + memoryUsage: opts, + fsUsage: opts, + networkReceive: opts, + networkTransmit: opts, + }, { + namespace, + }); } @autobind() diff --git a/src/renderer/api/endpoints/stateful-set.api.ts b/src/renderer/api/endpoints/stateful-set.api.ts index df612757e2..f60fc2261d 100644 --- a/src/renderer/api/endpoints/stateful-set.api.ts +++ b/src/renderer/api/endpoints/stateful-set.api.ts @@ -26,21 +26,21 @@ export class StatefulSetApi extends KubeApi { } }); } +} - getMetrics(statefulSets: StatefulSet[], namespace: string, selector = ""): Promise { - const podSelector = statefulSets.map(statefulset => `${statefulset.getName()}-[[:digit:]]+`).join("|"); - const opts = { category: "pods", pods: podSelector, namespace, selector }; +export function getMetricsForStatefulSets(statefulSets: StatefulSet[], namespace: string, selector = ""): Promise { + const podSelector = statefulSets.map(statefulset => `${statefulset.getName()}-[[:digit:]]+`).join("|"); + const opts = { category: "pods", pods: podSelector, namespace, selector }; - return metricsApi.getMetrics({ - cpuUsage: opts, - memoryUsage: opts, - fsUsage: opts, - networkReceive: opts, - networkTransmit: opts, - }, { - namespace, - }); - } + return metricsApi.getMetrics({ + cpuUsage: opts, + memoryUsage: opts, + fsUsage: opts, + networkReceive: opts, + networkTransmit: opts, + }, { + namespace, + }); } @autobind() diff --git a/src/renderer/components/+cluster/cluster-overview.store.ts b/src/renderer/components/+cluster/cluster-overview.store.ts index 0158b405d0..3f3b4cfdee 100644 --- a/src/renderer/components/+cluster/cluster-overview.store.ts +++ b/src/renderer/components/+cluster/cluster-overview.store.ts @@ -1,6 +1,6 @@ import { action, observable, reaction, when } from "mobx"; import { KubeObjectStore } from "../../kube-object.store"; -import { Cluster, clusterApi, IClusterMetrics } from "../../api/endpoints"; +import { Cluster, clusterApi, getMetricsForNodeNames, IClusterMetrics } from "../../api/endpoints"; import { autobind, createStorage } from "../../utils"; import { IMetricsReqParams, normalizeMetrics } from "../../api/endpoints/metrics.api"; import { nodesStore } from "../+nodes/nodes.store"; @@ -78,7 +78,7 @@ export class ClusterOverviewStore extends KubeObjectStore implements Cl const { masterNodes, workerNodes } = nodesStore; const nodes = this.metricNodeRole === MetricNodeRole.MASTER && masterNodes.length ? masterNodes : workerNodes; - this.metrics = await clusterApi.getMetrics(nodes.map(node => node.getName()), params); + this.metrics = await getMetricsForNodeNames(nodes.map(node => node.getName()), params); this.metricsLoaded = true; } diff --git a/src/renderer/components/+namespaces/namespace.store.ts b/src/renderer/components/+namespaces/namespace.store.ts index 365eabefce..177fbc71b2 100644 --- a/src/renderer/components/+namespaces/namespace.store.ts +++ b/src/renderer/components/+namespaces/namespace.store.ts @@ -1,6 +1,6 @@ import { action, comparer, computed, IReactionDisposer, IReactionOptions, observable, reaction } from "mobx"; import { autobind, createStorage } from "../../utils"; -import { IPodMetrics, Namespace, namespacesApi } from "../../api/endpoints"; +import { IPodMetrics, Namespace, namespacesApi, getMetricsForNamespace } from "../../api/endpoints"; import { KubeObjectStore, KubeObjectStoreLoadingParams } from "../../kube-object.store"; import { createPageParam } from "../../navigation"; import { apiManager } from "../../api/api-manager"; @@ -40,7 +40,7 @@ export class NamespaceStore extends KubeObjectStore { } async loadMetrics(namespace: Namespace) { - this.metrics = await namespacesApi.getMetrics(namespace.getName(), ""); + this.metrics = await getMetricsForNamespace(namespace.getName(), ""); } private async init() { diff --git a/src/renderer/components/+network-ingresses/ingress.store.ts b/src/renderer/components/+network-ingresses/ingress.store.ts index 37156c2741..3a1096bd33 100644 --- a/src/renderer/components/+network-ingresses/ingress.store.ts +++ b/src/renderer/components/+network-ingresses/ingress.store.ts @@ -1,7 +1,7 @@ import { observable } from "mobx"; import { KubeObjectStore } from "../../kube-object.store"; import { autobind } from "../../utils"; -import { IIngressMetrics, Ingress, ingressApi } from "../../api/endpoints"; +import { IIngressMetrics, Ingress, ingressApi, getMetricsForIngress } from "../../api/endpoints"; import { apiManager } from "../../api/api-manager"; @autobind() @@ -10,7 +10,7 @@ export class IngressStore extends KubeObjectStore { @observable metrics: IIngressMetrics = null; async loadMetrics(ingress: Ingress) { - this.metrics = await this.api.getMetrics(ingress.getName(), ingress.getNs()); + this.metrics = await getMetricsForIngress(ingress.getName(), ingress.getNs()); } reset() { diff --git a/src/renderer/components/+nodes/nodes.store.ts b/src/renderer/components/+nodes/nodes.store.ts index b301015747..d3d56d7408 100644 --- a/src/renderer/components/+nodes/nodes.store.ts +++ b/src/renderer/components/+nodes/nodes.store.ts @@ -1,6 +1,6 @@ import { sum } from "lodash"; import { action, computed, observable } from "mobx"; -import { clusterApi, IClusterMetrics, INodeMetrics, Node, nodesApi } from "../../api/endpoints"; +import { IClusterMetrics, INodeMetrics, Node, nodesApi, getMetricsForAllNodes, getMetricsForNodeNames } from "../../api/endpoints"; import { autobind } from "../../utils"; import { KubeObjectStore } from "../../kube-object.store"; import { apiManager } from "../../api/api-manager"; @@ -19,7 +19,7 @@ export class NodesStore extends KubeObjectStore { this.metricsLoading = true; try { - this.metrics = await nodesApi.getMetrics(); + this.metrics = await getMetricsForAllNodes(); this.metricsLoaded = true; } finally { this.metricsLoading = false; @@ -28,7 +28,7 @@ export class NodesStore extends KubeObjectStore { @action async loadMetrics(nodeName: string) { - this.nodeMetrics = await clusterApi.getMetrics([nodeName]); + this.nodeMetrics = await getMetricsForNodeNames([nodeName]); } @computed get masterNodes() { diff --git a/src/renderer/components/+storage-volume-claims/volume-claim.store.ts b/src/renderer/components/+storage-volume-claims/volume-claim.store.ts index 8c4baaaf76..f339c1d07c 100644 --- a/src/renderer/components/+storage-volume-claims/volume-claim.store.ts +++ b/src/renderer/components/+storage-volume-claims/volume-claim.store.ts @@ -1,7 +1,7 @@ import { action, observable } from "mobx"; import { KubeObjectStore } from "../../kube-object.store"; import { autobind } from "../../utils"; -import { IPvcMetrics, PersistentVolumeClaim, pvcApi } from "../../api/endpoints"; +import { getMetricsForPvc, IPvcMetrics, PersistentVolumeClaim, pvcApi } from "../../api/endpoints"; import { apiManager } from "../../api/api-manager"; @autobind() @@ -11,7 +11,7 @@ export class VolumeClaimStore extends KubeObjectStore { @action async loadMetrics(pvc: PersistentVolumeClaim) { - this.metrics = await pvcApi.getMetrics(pvc.getName(), pvc.getNs()); + this.metrics = await getMetricsForPvc(pvc); } reset() { diff --git a/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts b/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts index b6b669488d..9fef127f2f 100644 --- a/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts +++ b/src/renderer/components/+workloads-daemonsets/daemonsets.store.ts @@ -1,7 +1,7 @@ import { observable } from "mobx"; import { KubeObjectStore } from "../../kube-object.store"; import { autobind } from "../../utils"; -import { DaemonSet, daemonSetApi, IPodMetrics, Pod, PodStatus } from "../../api/endpoints"; +import { DaemonSet, daemonSetApi, IPodMetrics, Pod, PodStatus, getMetricsForDaemonSets } from "../../api/endpoints"; import { podsStore } from "../+workloads-pods/pods.store"; import { apiManager } from "../../api/api-manager"; @@ -12,7 +12,7 @@ export class DaemonSetStore extends KubeObjectStore { @observable metrics: IPodMetrics = null; async loadMetrics(daemonSet: DaemonSet) { - this.metrics = await daemonSetApi.getMetrics([daemonSet], daemonSet.getNs(), ""); + this.metrics = await getMetricsForDaemonSets([daemonSet], daemonSet.getNs(), ""); } getChildPods(daemonSet: DaemonSet): Pod[] { diff --git a/src/renderer/components/+workloads-deployments/deployments.store.ts b/src/renderer/components/+workloads-deployments/deployments.store.ts index 9ddcb1a722..b78c755d9b 100644 --- a/src/renderer/components/+workloads-deployments/deployments.store.ts +++ b/src/renderer/components/+workloads-deployments/deployments.store.ts @@ -1,5 +1,5 @@ import { observable } from "mobx"; -import { Deployment, deploymentApi, IPodMetrics, PodStatus } from "../../api/endpoints"; +import { Deployment, deploymentApi, IPodMetrics, PodStatus, getMetricsForDeployments } from "../../api/endpoints"; import { KubeObjectStore } from "../../kube-object.store"; import { autobind } from "../../utils"; import { podsStore } from "../+workloads-pods/pods.store"; @@ -17,7 +17,7 @@ export class DeploymentStore extends KubeObjectStore { } async loadMetrics(deployment: Deployment) { - this.metrics = await deploymentApi.getMetrics([deployment], deployment.getNs(), ""); + this.metrics = await getMetricsForDeployments([deployment], deployment.getNs(), ""); } getStatuses(deployments?: Deployment[]) { diff --git a/src/renderer/components/+workloads-jobs/job.store.ts b/src/renderer/components/+workloads-jobs/job.store.ts index 08d40a2a38..92afcdfb65 100644 --- a/src/renderer/components/+workloads-jobs/job.store.ts +++ b/src/renderer/components/+workloads-jobs/job.store.ts @@ -1,6 +1,6 @@ import { KubeObjectStore } from "../../kube-object.store"; import { autobind } from "../../utils"; -import { Job, jobApi } from "../../api/endpoints/job.api"; +import { Job, jobApi, getMetricsForJobs } from "../../api/endpoints/job.api"; import { CronJob, IPodMetrics, Pod, PodStatus } from "../../api/endpoints"; import { podsStore } from "../+workloads-pods/pods.store"; import { apiManager } from "../../api/api-manager"; @@ -13,7 +13,7 @@ export class JobStore extends KubeObjectStore { @observable metrics: IPodMetrics = null; async loadMetrics(job: Job) { - this.metrics = await jobApi.getMetrics([job], job.getNs(), ""); + this.metrics = await getMetricsForJobs([job], job.getNs(), ""); } getChildPods(job: Job): Pod[] { diff --git a/src/renderer/components/+workloads-pods/pods.store.ts b/src/renderer/components/+workloads-pods/pods.store.ts index 5a535cec66..a999a2bbe7 100644 --- a/src/renderer/components/+workloads-pods/pods.store.ts +++ b/src/renderer/components/+workloads-pods/pods.store.ts @@ -2,7 +2,7 @@ import countBy from "lodash/countBy"; import { action, observable } from "mobx"; import { KubeObjectStore } from "../../kube-object.store"; import { autobind, cpuUnitsToNumber, unitsToBytes } from "../../utils"; -import { IPodMetrics, Pod, PodMetrics, podMetricsApi, podsApi } from "../../api/endpoints"; +import { getMetricsForPods, IPodMetrics, Pod, PodMetrics, podMetricsApi, podsApi } from "../../api/endpoints"; import { apiManager } from "../../api/api-manager"; import { WorkloadKubeObject } from "../../api/workload-kube-object"; @@ -15,11 +15,11 @@ export class PodsStore extends KubeObjectStore { @action async loadMetrics(pod: Pod) { - this.metrics = await podsApi.getMetrics([pod], pod.getNs()); + this.metrics = await getMetricsForPods([pod], pod.getNs()); } loadContainerMetrics(pod: Pod) { - return podsApi.getMetrics([pod], pod.getNs(), "container, namespace"); + return getMetricsForPods([pod], pod.getNs(), "container, namespace"); } async loadKubeMetrics(namespace?: string) { diff --git a/src/renderer/components/+workloads-replicasets/replicasets.store.ts b/src/renderer/components/+workloads-replicasets/replicasets.store.ts index cf6c20bf1d..4e58a1ff1f 100644 --- a/src/renderer/components/+workloads-replicasets/replicasets.store.ts +++ b/src/renderer/components/+workloads-replicasets/replicasets.store.ts @@ -1,7 +1,7 @@ import { observable } from "mobx"; import { autobind } from "../../utils"; import { KubeObjectStore } from "../../kube-object.store"; -import { Deployment, ReplicaSet, replicaSetApi } from "../../api/endpoints"; +import { Deployment, ReplicaSet, replicaSetApi, getMetricsForReplicaSets } from "../../api/endpoints"; import { podsStore } from "../+workloads-pods/pods.store"; import { apiManager } from "../../api/api-manager"; import { IPodMetrics, PodStatus } from "../../api/endpoints/pods.api"; @@ -12,7 +12,7 @@ export class ReplicaSetStore extends KubeObjectStore { @observable metrics: IPodMetrics = null; async loadMetrics(replicaSet: ReplicaSet) { - this.metrics = await replicaSetApi.getMetrics([replicaSet], replicaSet.getNs(), ""); + this.metrics = await getMetricsForReplicaSets([replicaSet], replicaSet.getNs(), ""); } getChildPods(replicaSet: ReplicaSet) { diff --git a/src/renderer/components/+workloads-statefulsets/statefulset.store.ts b/src/renderer/components/+workloads-statefulsets/statefulset.store.ts index 4694a1dbbf..850f228c6c 100644 --- a/src/renderer/components/+workloads-statefulsets/statefulset.store.ts +++ b/src/renderer/components/+workloads-statefulsets/statefulset.store.ts @@ -1,7 +1,7 @@ import { observable } from "mobx"; import { autobind } from "../../utils"; import { KubeObjectStore } from "../../kube-object.store"; -import { IPodMetrics, PodStatus, StatefulSet, statefulSetApi } from "../../api/endpoints"; +import { IPodMetrics, PodStatus, StatefulSet, statefulSetApi, getMetricsForStatefulSets } from "../../api/endpoints"; import { podsStore } from "../+workloads-pods/pods.store"; import { apiManager } from "../../api/api-manager"; @@ -11,7 +11,7 @@ export class StatefulSetStore extends KubeObjectStore { @observable metrics: IPodMetrics = null; async loadMetrics(statefulSet: StatefulSet) { - this.metrics = await statefulSetApi.getMetrics([statefulSet], statefulSet.getNs(), ""); + this.metrics = await getMetricsForStatefulSets([statefulSet], statefulSet.getNs(), ""); } getChildPods(statefulSet: StatefulSet) {