mirror of
https://github.com/portainer/portainer.git
synced 2025-07-23 07:19:41 +02:00
* feat(k8s/container): metrics layout * feat(k8s/container): memory graph * feat(k8s/container): cpu usage percent * feat(k8s/metrics): metrics api validation to enable metrics server * feat(k8s/pods): update error metrics view * feat(k8s/container): improve stopRepeater function * feat(k8s/pods): display empty view instead of empty graphs * feat(k8s/pods): fix CPU usage * feat(k8s/configure): fix the metrics server test * feat(k8s/pod): fix cpu issue * feat(k8s/pod): fix toaster for non register pods in metrics server * feat(k8s/service): remove options before 30 secondes for refresh rate * feat(k8s/pod): fix default value for the refresh rate * feat(k8s/pod): fix rebase
53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
import angular from 'angular';
|
|
import PortainerError from 'Portainer/error';
|
|
import { KubernetesCommonParams } from 'Kubernetes/models/common/params';
|
|
|
|
class KubernetesMetricsService {
|
|
/* @ngInject */
|
|
constructor($async, KubernetesMetrics) {
|
|
this.$async = $async;
|
|
this.KubernetesMetrics = KubernetesMetrics;
|
|
|
|
this.capabilitiesAsync = this.capabilitiesAsync.bind(this);
|
|
this.getPodAsync = this.getPodAsync.bind(this);
|
|
}
|
|
|
|
/**
|
|
* GET
|
|
*/
|
|
async capabilitiesAsync(endpointID) {
|
|
try {
|
|
await this.KubernetesMetrics().capabilities({ endpointId: endpointID }).$promise;
|
|
} catch (err) {
|
|
throw new PortainerError('Unable to retrieve metrics', err);
|
|
}
|
|
}
|
|
|
|
capabilities(endpointID) {
|
|
return this.$async(this.capabilitiesAsync, endpointID);
|
|
}
|
|
|
|
/**
|
|
* Stats
|
|
*
|
|
* @param {string} namespace
|
|
* @param {string} podName
|
|
*/
|
|
async getPodAsync(namespace, podName) {
|
|
try {
|
|
const params = new KubernetesCommonParams();
|
|
params.id = podName;
|
|
const data = await this.KubernetesMetrics(namespace).getPod(params).$promise;
|
|
return data;
|
|
} catch (err) {
|
|
throw new PortainerError('Unable to retrieve pod stats', err);
|
|
}
|
|
}
|
|
|
|
getPod(namespace, podName) {
|
|
return this.$async(this.getPodAsync, namespace, podName);
|
|
}
|
|
}
|
|
|
|
export default KubernetesMetricsService;
|
|
angular.module('portainer.kubernetes').service('KubernetesMetricsService', KubernetesMetricsService);
|