From 7d73590ceda3ad8374a01e9284bcc00010b25a48 Mon Sep 17 00:00:00 2001 From: David Kaltschmidt Date: Thu, 4 Feb 2016 17:17:11 +0100 Subject: [PATCH] Enable metric feeder also for health overflow items * tried activating it for child tables too, but that became quite CPU intensive, and feed intervals became out of sync (host CPU < container CPU, which is hard to believe) --- .../node-details-health-overflow-item.js | 5 ++++- .../node-details-table-node-metric.js | 15 +++++++++++++++ .../components/node-details/node-details-table.js | 15 +++++++++------ client/app/scripts/hoc/metric-feeder.js | 3 +++ client/app/styles/main.less | 2 +- 5 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 client/app/scripts/components/node-details/node-details-table-node-metric.js diff --git a/client/app/scripts/components/node-details/node-details-health-overflow-item.js b/client/app/scripts/components/node-details/node-details-health-overflow-item.js index bcf861e12..bb1944765 100644 --- a/client/app/scripts/components/node-details/node-details-health-overflow-item.js +++ b/client/app/scripts/components/node-details/node-details-health-overflow-item.js @@ -1,8 +1,9 @@ import React from 'react'; +import metricFeeder from '../../hoc/metric-feeder'; import { formatMetric } from '../../utils/string-utils'; -export default class NodeDetailsHealthOverflowItem extends React.Component { +class NodeDetailsHealthOverflowItem extends React.Component { render() { return (
@@ -12,3 +13,5 @@ export default class NodeDetailsHealthOverflowItem extends React.Component { ); } } + +export default metricFeeder(NodeDetailsHealthOverflowItem); diff --git a/client/app/scripts/components/node-details/node-details-table-node-metric.js b/client/app/scripts/components/node-details/node-details-table-node-metric.js new file mode 100644 index 000000000..c27c12ab8 --- /dev/null +++ b/client/app/scripts/components/node-details/node-details-table-node-metric.js @@ -0,0 +1,15 @@ +import React from 'react'; + +import { formatMetric } from '../../utils/string-utils'; + +class NodeDetailsTableNodeMetric extends React.Component { + render() { + return ( + + {formatMetric(this.props.value, this.props)} + + ); + } +} + +export default NodeDetailsTableNodeMetric; diff --git a/client/app/scripts/components/node-details/node-details-table.js b/client/app/scripts/components/node-details/node-details-table.js index ce0c9cc4f..062c82029 100644 --- a/client/app/scripts/components/node-details/node-details-table.js +++ b/client/app/scripts/components/node-details/node-details-table.js @@ -2,7 +2,7 @@ import _ from 'lodash'; import React from 'react'; import NodeDetailsTableNodeLink from './node-details-table-node-link'; -import { formatMetric } from '../../utils/string-utils'; +import NodeDetailsTableNodeMetric from './node-details-table-node-metric'; export default class NodeDetailsTable extends React.Component { @@ -117,11 +117,14 @@ export default class NodeDetailsTable extends React.Component { return this.props.columns.map(col => { const field = fields[col]; if (field) { - return ( - - {field.valueType === 'metadata' ? field.value : formatMetric(field.value, field)} - - ); + if (field.valueType === 'metadata') { + return ( + + {field.value} + + ); + } + return ; } }); } diff --git a/client/app/scripts/hoc/metric-feeder.js b/client/app/scripts/hoc/metric-feeder.js index 306d92899..5665f1303 100644 --- a/client/app/scripts/hoc/metric-feeder.js +++ b/client/app/scripts/hoc/metric-feeder.js @@ -149,6 +149,9 @@ export default ComposedComponent => class extends React.Component { const lastValue = samples.length > 0 ? samples[samples.length - 1].value : null; const slidingWindow = {first: movingFirstDate, last: movingLastDate, max, samples, value: lastValue}; + if (this.props.label === 'CPU') { + console.log(lastValue, movingLastDate); + } return ; } diff --git a/client/app/styles/main.less b/client/app/styles/main.less index 2d8054859..72840f73b 100644 --- a/client/app/styles/main.less +++ b/client/app/styles/main.less @@ -717,7 +717,7 @@ h2 { } } - &-value { + &-value, &-metric { flex: 1; margin-left: 0.5em; text-align: right;