mirror of https://github.com/rancher/ui.git
commit
82a1bf2e44
|
|
@ -3,6 +3,8 @@ import { on } from '@ember/object/evented';
|
||||||
import Component from '@ember/component';
|
import Component from '@ember/component';
|
||||||
import { set, get, computed, observer } from '@ember/object';
|
import { set, get, computed, observer } from '@ember/object';
|
||||||
import { alias } from '@ember/object/computed';
|
import { alias } from '@ember/object/computed';
|
||||||
|
import { convertToMillis } from 'shared/utils/util';
|
||||||
|
import { parseSi } from 'shared/utils/parse-unit';
|
||||||
import layout from './template';
|
import layout from './template';
|
||||||
|
|
||||||
const PROMETHEUS = 'prometheus';
|
const PROMETHEUS = 'prometheus';
|
||||||
|
|
@ -23,10 +25,14 @@ export default Component.extend({
|
||||||
enableNodeExporter: true,
|
enableNodeExporter: true,
|
||||||
prometheusPersistenceSize: '50Gi',
|
prometheusPersistenceSize: '50Gi',
|
||||||
grafanaPersistenceSize: '10Gi',
|
grafanaPersistenceSize: '10Gi',
|
||||||
|
requestsCpu: '200',
|
||||||
|
limitsCpu: '1000',
|
||||||
|
requestsMemory: '100',
|
||||||
|
limitsMemory: '500',
|
||||||
prometheusStorageClass: null,
|
prometheusStorageClass: null,
|
||||||
grafanaStorageClass: null,
|
grafanaStorageClass: null,
|
||||||
nodeSelectors: null,
|
nodeSelectors: null,
|
||||||
retention: 360,
|
retention: 12,
|
||||||
port: 9796,
|
port: 9796,
|
||||||
|
|
||||||
cluster: alias('scope.currentCluster'),
|
cluster: alias('scope.currentCluster'),
|
||||||
|
|
@ -63,6 +69,10 @@ export default Component.extend({
|
||||||
answers['grafana.persistence.storageClass'] = `${ get(this, 'grafanaStorageClass') === null ? 'default' : get(this, 'grafanaStorageClass') }`;
|
answers['grafana.persistence.storageClass'] = `${ get(this, 'grafanaStorageClass') === null ? 'default' : get(this, 'grafanaStorageClass') }`;
|
||||||
answers['grafana.persistence.size'] = `${ get(this, 'grafanaPersistenceSize') }`;
|
answers['grafana.persistence.size'] = `${ get(this, 'grafanaPersistenceSize') }`;
|
||||||
answers['prometheus.persistence.size'] = `${ get(this, 'prometheusPersistenceSize') }`;
|
answers['prometheus.persistence.size'] = `${ get(this, 'prometheusPersistenceSize') }`;
|
||||||
|
answers['prometheus.resources.core.requests.cpu'] = `${ get(this, 'requestsCpu') }m`;
|
||||||
|
answers['prometheus.resources.core.limits.cpu'] = `${ get(this, 'limitsCpu') }m`;
|
||||||
|
answers['prometheus.resources.core.requests.memory'] = `${ get(this, 'requestsMemory') }Mi`;
|
||||||
|
answers['prometheus.resources.core.limits.memory'] = `${ get(this, 'limitsMemory') }Mi`;
|
||||||
|
|
||||||
Object.keys(answers).filter((key) => key.startsWith('prometheus.nodeSelectors[') ).forEach((key) => {
|
Object.keys(answers).filter((key) => key.startsWith('prometheus.nodeSelectors[') ).forEach((key) => {
|
||||||
delete answers[key]
|
delete answers[key]
|
||||||
|
|
@ -137,6 +147,22 @@ export default Component.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
updateConfig(answers) {
|
updateConfig(answers) {
|
||||||
|
if ( answers['prometheus.resources.core.requests.cpu'] ) {
|
||||||
|
set(this, 'requestsCpu', convertToMillis(answers['prometheus.resources.core.requests.cpu']));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( answers['prometheus.resources.core.limits.cpu'] ) {
|
||||||
|
set(this, 'limitsCpu', convertToMillis(answers['prometheus.resources.core.limits.cpu']));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( answers['prometheus.resources.core.requests.memory'] ) {
|
||||||
|
set(this, 'requestsMemory', parseSi(answers['prometheus.resources.core.requests.memory'], 1024) / 1048576);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( answers['prometheus.resources.core.limits.memory'] ) {
|
||||||
|
set(this, 'limitsMemory', parseSi(answers['prometheus.resources.core.limits.memory'], 1024) / 1048576);
|
||||||
|
}
|
||||||
|
|
||||||
if ( answers['prometheus.retention'] ) {
|
if ( answers['prometheus.retention'] ) {
|
||||||
set(this, 'retention', answers['prometheus.retention'].substr(0, answers['prometheus.retention'].length - 1));
|
set(this, 'retention', answers['prometheus.retention'].substr(0, answers['prometheus.retention'].length - 1));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -65,14 +65,7 @@
|
||||||
{{schema/input-boolean value=enableGrafanaPersistence}}
|
{{schema/input-boolean value=enableGrafanaPersistence}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{#if (and (eq level "cluster") enableNodeExporter)}}
|
|
||||||
<div class="row">
|
|
||||||
<div class="col span-6">
|
|
||||||
<label class="acc-label">{{t "monitoringPage.config.nodeexporter.label"}}</label>
|
|
||||||
{{input-integer min=1 max=65535 value=port}}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
{{#if enablePrometheusPersistence}}
|
{{#if enablePrometheusPersistence}}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col span-6">
|
<div class="col span-6">
|
||||||
|
|
@ -99,6 +92,85 @@
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<label class="acc-label">{{t "monitoringPage.config.prometheus.cpuLimit.label"}}</label>
|
||||||
|
<span class="with-input">
|
||||||
|
<div class="input-group">
|
||||||
|
{{input-integer
|
||||||
|
min="0"
|
||||||
|
step="100"
|
||||||
|
value=limitsCpu
|
||||||
|
classNames="form-control"
|
||||||
|
placeholder=(t "monitoringPage.config.prometheus.cpuLimit.placeholder")
|
||||||
|
}}
|
||||||
|
<div class="input-group-addon bg-default">
|
||||||
|
{{t "monitoringPage.config.prometheus.cpuLimit.unit"}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<label class="acc-label mt-20">{{t "monitoringPage.config.prometheus.cpuRequest.label"}}</label>
|
||||||
|
<span class="with-input">
|
||||||
|
<div class="input-group">
|
||||||
|
{{input-integer
|
||||||
|
min="0"
|
||||||
|
step="100"
|
||||||
|
value=requestsCpu
|
||||||
|
classNames="form-control"
|
||||||
|
placeholder=(t "monitoringPage.config.prometheus.cpuRequest.placeholder")
|
||||||
|
}}
|
||||||
|
<div class="input-group-addon bg-default">
|
||||||
|
{{t "monitoringPage.config.prometheus.cpuRequest.unit"}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col span-6">
|
||||||
|
<label class="acc-label">{{t "monitoringPage.config.prometheus.memoryLimit.label"}}</label>
|
||||||
|
<div class="input-group">
|
||||||
|
{{input-integer
|
||||||
|
min="4"
|
||||||
|
step="1"
|
||||||
|
value=limitsMemory
|
||||||
|
classNames="form-control"
|
||||||
|
placeholder=(t "monitoringPage.config.prometheus.memoryLimit.placeholder")
|
||||||
|
}}
|
||||||
|
<div class="input-group-addon bg-default">
|
||||||
|
{{t "generic.mibibyte"}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="acc-label mt-20">{{t "monitoringPage.config.prometheus.memoryRequest.label"}}</label>
|
||||||
|
<div class="input-group">
|
||||||
|
{{input-integer
|
||||||
|
min="4"
|
||||||
|
step="1"
|
||||||
|
value=requestsMemory
|
||||||
|
classNames="form-control"
|
||||||
|
placeholder=(t "monitoringPage.config.prometheus.memoryRequest.placeholder")
|
||||||
|
}}
|
||||||
|
<div class="input-group-addon bg-default">
|
||||||
|
{{t "generic.mibibyte"}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{#if (and (eq level "cluster") enableNodeExporter)}}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col span-6">
|
||||||
|
<label class="acc-label">{{t "monitoringPage.config.nodeexporter.label"}}</label>
|
||||||
|
{{input-integer
|
||||||
|
min=1
|
||||||
|
max=65535
|
||||||
|
value=port
|
||||||
|
}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col span-12">
|
<div class="col span-12">
|
||||||
<label class="acc-label">{{t "monitoringPage.nodeSelector.helpText"}}</label>
|
<label class="acc-label">{{t "monitoringPage.nodeSelector.helpText"}}</label>
|
||||||
|
|
|
||||||
|
|
@ -100,6 +100,20 @@ monitoringPage:
|
||||||
prometheus: Prometheus
|
prometheus: Prometheus
|
||||||
header: Prometheus Configuration
|
header: Prometheus Configuration
|
||||||
prometheus:
|
prometheus:
|
||||||
|
cpuLimit:
|
||||||
|
label: Prometheus CPU Limit
|
||||||
|
placeholder: e.g. 1000
|
||||||
|
unit: milli CPUs
|
||||||
|
cpuRequest:
|
||||||
|
label: Prometheus CPU Reservation
|
||||||
|
placeholder: e.g. 1000
|
||||||
|
unit: milli CPUs
|
||||||
|
memoryLimit:
|
||||||
|
label: Prometheus Memory Limit
|
||||||
|
placeholder: e.g. 1000
|
||||||
|
memoryRequest:
|
||||||
|
label: Prometheus Memory Reservation
|
||||||
|
placeholder: e.g. 1000
|
||||||
enablePersistence:
|
enablePersistence:
|
||||||
label: Enable Persistent Storage for Prometheus
|
label: Enable Persistent Storage for Prometheus
|
||||||
size:
|
size:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue