Merge pull request #2734 from loganhz/monitoring

Monitoring update
This commit is contained in:
Westly Wright 2019-03-08 09:13:19 -07:00 committed by GitHub
commit 82a1bf2e44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 121 additions and 9 deletions

View File

@ -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));
} }

View File

@ -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>

View File

@ -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: