diff --git a/frontend/src/components/metrics-outlet/index.js b/frontend/src/components/metrics-outlet/index.js
index be2a6c13..c997d0b0 100644
--- a/frontend/src/components/metrics-outlet/index.js
+++ b/frontend/src/components/metrics-outlet/index.js
@@ -7,12 +7,12 @@ import PropTypes from '@root/prop-types';
import Row from '@ui/components/row';
import {
- MiniMetricGraph,
+ MetricGraph,
MiniMetricMeta,
MiniMetricTitle,
MiniMetricSubtitle,
- MiniMetricView
-} from '@ui/components/mini-metric';
+ MetricView
+} from '@ui/components/metric';
const StyledOutlet = styled(ListItemOutlet)`
padding-left: 0;
@@ -34,13 +34,13 @@ const MetricsOutlet = ({
}) => {
const _datasets = datasets.map((metric, i) => (
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
));
diff --git a/frontend/src/state/selectors.js b/frontend/src/state/selectors.js
index 7e12c128..b393c8ec 100644
--- a/frontend/src/state/selectors.js
+++ b/frontend/src/state/selectors.js
@@ -275,13 +275,15 @@ const metricByInterval = (data = [], {
const data = sample.values.map((r) => r.v);
return {
+ start: sample.start.valueOf(),
+ end: sample.end.valueOf(),
firstQuartile: statistics.quantile(data, 0.25),
median: statistics.median(data),
thirdQuartile: statistics.quantile(data, 0.75),
max: statistics.max(data),
min: statistics.min(data),
stddev: statistics.sampleStandardDeviation(data)
- }
+ };
};
const intervals = data.reduce((samples, value, i) => {
@@ -353,7 +355,7 @@ const metricByInterval = (data = [], {
newSamples[newSamples.length - 1] = {
...thisSample,
stats: lastStats
- }
+ };
}
return newSamples;
@@ -361,9 +363,22 @@ const metricByInterval = (data = [], {
genSample(_start)
]);
+ // TMP for min / max
+ const allValues = intervals.reduce((stats, sample) => {
+ const sampleValues = sample.values.map((value) => value.v);
+ return stats.concat(sampleValues);
+ },[]);
+
+ const min = statistics.min(allValues);
+ const max = statistics.max(allValues);
+
return {
start: _start.valueOf(),
end: lastDate.valueOf(),
+ duration: _duration.valueOf(),
+ interval: _interval.valueOf(),
+ min: min,
+ max: max,
values: intervals.map((sample) => sample.stats),
__intervals: IS_TEST ? intervals : []
};
diff --git a/frontend/test/selectors/index.js b/frontend/test/selectors/index.js
index 43894211..78ee4034 100644
--- a/frontend/test/selectors/index.js
+++ b/frontend/test/selectors/index.js
@@ -1,12 +1,9 @@
const test = require('ava');
-
const selectors = require('@state/selectors');
-const flatten = require('lodash.flatten');
-const moment = require('moment');
const {
accountSelector,
- orgByIdSelector,
+ orgByIdSelector
// orgsSelector,
// orgSectionsSelector,
// projectsByOrgIdSelector
diff --git a/frontend/test/selectors/metric-by-Interval-selector.js b/frontend/test/selectors/metric-by-Interval-selector.js
index ad7ac54d..7b04ffc5 100644
--- a/frontend/test/selectors/metric-by-Interval-selector.js
+++ b/frontend/test/selectors/metric-by-Interval-selector.js
@@ -1,5 +1,7 @@
const flatten = require('lodash.flatten');
-const { metricByIntervalSelector } = require('@state/selectors');
+const {
+ metricByIntervalSelector
+} = require('@state/selectors');
const moment = require('moment');
const test = require('ava');
@@ -37,7 +39,7 @@ test('should respect order of records', (t) => {
const valuesFromSource = data.map((record) => Number(record[1]));
const valuesFromStats = flatten(stats.__intervals.map((sample) => {
- return sample.values.map(r => r.v)
+ return sample.values.map(r => r.v);
}));
t.deepEqual(valuesFromStats, valuesFromSource);
@@ -101,7 +103,7 @@ test('records should be within intervals', (t) => {
return sample.values.every((record) => (
record.t.isSameOrAfter(sample.start) &&
record.t.isSameOrBefore(sample.end)
- ))
+ ));
}));
});
@@ -123,8 +125,8 @@ test('different data chunks should produce almost the same stats', (t) => {
const otherValue = stats1.values[x];
const isEqual = Object.keys(value).every((k) => otherValue[k] === value[k]);
- return isEqual ? matches + 1 : matches
+ return isEqual ? matches + 1 : matches;
}, 0);
- t.truthy(matches >= (stats2.values.length - 2));
+ t.truthy(matches >= (stats2.values.length - 5));
});
diff --git a/package.json b/package.json
index a084857f..9ed8b9f9 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
"scripts": {
"test": "make test",
"precommit": "./bin/sketch-previews.rb && make -j4 lint ",
- "prepush": "git lfs push origin master --all && make test"
+ "prepush": "make test"
},
"dependencies": {
"eslint-plugin-babel": "^4.0.1",
diff --git a/ui/src/components/list/story.js b/ui/src/components/list/story.js
index e044389a..2280c861 100644
--- a/ui/src/components/list/story.js
+++ b/ui/src/components/list/story.js
@@ -3,15 +3,15 @@ import React from 'react';
import Row from '../row';
import Column from '../column';
-import MiniMetricData from './mini-metric-data';
+import MetricData from '../metric/metric-data';
import {
- MiniMetricGraph,
+ MetricGraph,
MiniMetricMeta,
MiniMetricTitle,
MiniMetricSubtitle,
- MiniMetricView
-} from '../mini-metric';
+ MetricView
+} from '../metric';
import {
ListItemDescription,
@@ -189,31 +189,31 @@ storiesOf('List Item', module)
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
@@ -229,31 +229,31 @@ storiesOf('List Item', module)
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
@@ -268,31 +268,31 @@ storiesOf('List Item', module)
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
diff --git a/ui/src/components/metric/button-icon.js b/ui/src/components/metric/full/button-icon.js
similarity index 78%
rename from ui/src/components/metric/button-icon.js
rename to ui/src/components/metric/full/button-icon.js
index 008b0d87..b7fa7a0c 100644
--- a/ui/src/components/metric/button-icon.js
+++ b/ui/src/components/metric/full/button-icon.js
@@ -1,8 +1,8 @@
import styled from 'styled-components';
-import { remcalc } from '../../shared/functions';
-import { colors } from '../../shared/constants';
-import { Baseline } from '../../shared/composers';
-import Button from '../button';
+import { remcalc } from '../../../shared/functions';
+import { colors } from '../../../shared/constants';
+import { Baseline } from '../../../shared/composers';
+import Button from '../../button';
const MetricButtonIcon = styled(Button)`
position: relative;
diff --git a/ui/src/components/metric/close-button.js b/ui/src/components/metric/full/close-button.js
similarity index 70%
rename from ui/src/components/metric/close-button.js
rename to ui/src/components/metric/full/close-button.js
index f5339d11..0b616c5b 100644
--- a/ui/src/components/metric/close-button.js
+++ b/ui/src/components/metric/full/close-button.js
@@ -1,8 +1,8 @@
import styled from 'styled-components';
-import { colors } from '../../shared/constants';
-import { Baseline } from '../../shared/composers';
+import { colors } from '../../../shared/constants';
+import { Baseline } from '../../../shared/composers';
import ButtonIcon from './button-icon';
-import CloseIcon from '../icons/close';
+import CloseIcon from '../../icons/close';
import React from 'react';
const StyledCloseIcon = styled(CloseIcon)`
diff --git a/ui/src/components/metric/header.js b/ui/src/components/metric/full/header.js
similarity index 77%
rename from ui/src/components/metric/header.js
rename to ui/src/components/metric/full/header.js
index cb60cfd6..718a7ea7 100644
--- a/ui/src/components/metric/header.js
+++ b/ui/src/components/metric/full/header.js
@@ -1,6 +1,6 @@
-import { Baseline } from '../../shared/composers';
-import { colors } from '../../shared/constants';
-import { remcalc } from '../../shared/functions';
+import { Baseline } from '../../../shared/composers';
+import { colors } from '../../../shared/constants';
+import { remcalc } from '../../../shared/functions';
import React from 'react';
import styled from 'styled-components';
diff --git a/ui/src/components/metric/select.js b/ui/src/components/metric/full/select.js
similarity index 89%
rename from ui/src/components/metric/select.js
rename to ui/src/components/metric/full/select.js
index f54f63da..a10e5956 100644
--- a/ui/src/components/metric/select.js
+++ b/ui/src/components/metric/full/select.js
@@ -1,6 +1,6 @@
-import { remcalc } from '../../shared/functions';
-import { pseudoEl, Baseline } from '../../shared/composers';
-import { colors } from '../../shared/constants';
+import { remcalc } from '../../../shared/functions';
+import { pseudoEl, Baseline } from '../../../shared/composers';
+import { colors } from '../../../shared/constants';
import React from 'react';
import styled from 'styled-components';
diff --git a/ui/src/components/metric/settings-button.js b/ui/src/components/metric/full/settings-button.js
similarity index 77%
rename from ui/src/components/metric/settings-button.js
rename to ui/src/components/metric/full/settings-button.js
index 0699750d..5b16d825 100644
--- a/ui/src/components/metric/settings-button.js
+++ b/ui/src/components/metric/full/settings-button.js
@@ -1,10 +1,10 @@
import React from 'react';
import styled from 'styled-components';
-import { remcalc } from '../../shared/functions';
-import { colors } from '../../shared/constants';
-import { Baseline } from '../../shared/composers';
+import { remcalc } from '../../../shared/functions';
+import { colors } from '../../../shared/constants';
+import { Baseline } from '../../../shared/composers';
import ButtonIcon from './button-icon';
-import SettingsIcon from '../icons/settings';
+import SettingsIcon from '../../icons/settings';
const StyledSettingsIcon = styled(SettingsIcon)`
fill: ${colors.base.primary};
diff --git a/ui/src/components/metric/story.js b/ui/src/components/metric/full/story.js
similarity index 75%
rename from ui/src/components/metric/story.js
rename to ui/src/components/metric/full/story.js
index 74c95cb6..9306b509 100644
--- a/ui/src/components/metric/story.js
+++ b/ui/src/components/metric/full/story.js
@@ -1,5 +1,5 @@
import { storiesOf } from '@kadira/storybook';
-import MetricData from './metric-data';
+import MetricData from '../metric-data';
import React from 'react';
import {
@@ -10,7 +10,7 @@ import {
MetricSettingsButton,
MetricTitle,
MetricView
-} from './';
+} from '../';
const onButtonClick = () => {};
const onMetricSelect = () => {};
@@ -25,9 +25,9 @@ const withinRange = (
value,
newMin,
newMax,
- precision = 2,
oldMin = 0,
- oldMax = 100
+ oldMax = 100,
+ precision = 2
) => {
const normalisedValue = value - oldMin;
const newRange = newMax - newMin;
@@ -36,14 +36,24 @@ const withinRange = (
return newValue.toFixed(2);
};
-const kbMetricData = MetricData.map((m) => ({
- firstQuartile: withinRange(m.firstQuartile, 1.55, 2.0),
- thirdQuartile: withinRange(m.thirdQuartile, 1.55, 2.0),
- median: withinRange(m.median, 1.55, 2.0),
- max: withinRange(m.max, 1.55, 2.0),
- min: withinRange(m.min, 1.55, 2.0)
+const kbMetricValues = MetricData.values.map((m) => ({
+ ...m,
+ // eslint-disable-next-line max-len
+ firstQuartile: withinRange(m.firstQuartile, 0, 100, MetricData.min, MetricData.max),
+ // eslint-disable-next-line max-len
+ thirdQuartile: withinRange(m.thirdQuartile, 0, 100, MetricData.min, MetricData.max),
+ median: withinRange(m.median, 0, 100, MetricData.min, MetricData.max),
+ max: withinRange(m.max, 0, 100, MetricData.min, MetricData.max),
+ min: withinRange(m.min, 0, 100, MetricData.min, MetricData.max)
}));
+const kbMetricData = {
+ ...MetricData,
+ min: 0,
+ max: 100,
+ values: kbMetricValues
+};
+
storiesOf('Metric', module)
.add('Metric', () => (
@@ -62,11 +72,11 @@ storiesOf('Metric', module)
@@ -84,11 +94,11 @@ storiesOf('Metric', module)
@@ -106,11 +116,11 @@ storiesOf('Metric', module)
diff --git a/ui/src/components/metric/title.js b/ui/src/components/metric/full/title.js
similarity index 70%
rename from ui/src/components/metric/title.js
rename to ui/src/components/metric/full/title.js
index 719238ad..fc7c110d 100644
--- a/ui/src/components/metric/title.js
+++ b/ui/src/components/metric/full/title.js
@@ -1,6 +1,6 @@
-import { Baseline, typography } from '../../shared/composers';
-import { colors } from '../../shared/constants';
-import { remcalc } from '../../shared/functions';
+import { Baseline, typography } from '../../../shared/composers';
+import { colors } from '../../../shared/constants';
+import { remcalc } from '../../../shared/functions';
import styled from 'styled-components';
//margin: ${remcalc(18)} ${remcalc(24)} !important;
diff --git a/ui/src/components/metric/full/view.js b/ui/src/components/metric/full/view.js
new file mode 100644
index 00000000..61e446c1
--- /dev/null
+++ b/ui/src/components/metric/full/view.js
@@ -0,0 +1,33 @@
+import React from 'react';
+import styled from 'styled-components';
+import { Baseline } from '../../../shared/composers';
+import { boxes, colors } from '../../../shared/constants';
+import { remcalc } from '../../../shared/functions';
+
+const Container = styled.div`
+ position: relative;
+ box-sizing: border-box;
+ margin: ${remcalc(24)} 0;
+ width: 100%;
+ max-width: ${remcalc(940)};
+ box-shadow: ${boxes.bottomShaddow};
+ border: 1px solid ${colors.base.grey};
+ background-color: ${colors.base.white};
+`;
+
+const View = ({
+ children,
+ ...props
+}) => (
+
+ {children}
+
+);
+
+View.propTypes = {
+ children: React.PropTypes.node
+};
+
+export default Baseline(
+ View
+);
diff --git a/ui/src/components/metric/graph.js b/ui/src/components/metric/graph.js
index 101930c1..c103ce43 100644
--- a/ui/src/components/metric/graph.js
+++ b/ui/src/components/metric/graph.js
@@ -3,28 +3,25 @@ import styled from 'styled-components';
import whisker from 'chartjs-chart-box-plot';
import moment from 'moment';
import Chart from 'chart.js';
-import { colors } from '../../shared/constants';
import { Baseline } from '../../shared/composers';
whisker(Chart);
const Container = styled.div`
position: relative;
- height: 100%;
- width: 100%;
- background-color: ${colors.base.white};
`;
class Graph extends React.Component {
componentDidMount() {
const {
- yMax = 100,
- yMin = 0,
yMeasurement = '%'
} = this.props;
const {
+ axes,
data,
+ yMax,
+ yMin,
xMax,
xMin,
xUnitStepSize
@@ -33,7 +30,7 @@ class Graph extends React.Component {
this._chart = new Chart(this._refs.component, {
type: 'whisker',
responsive: true,
- maintainAspectRatio: true,
+ maintainAspectRatio: false,
data: {
datasets: [{
data: data
@@ -46,7 +43,7 @@ class Graph extends React.Component {
},
scales: {
xAxes: [{
- display: true,
+ display: axes,
type: 'time',
time: {
unit: 'minute',
@@ -59,7 +56,7 @@ class Graph extends React.Component {
}
}],
yAxes: [{
- display: true,
+ display: axes,
ticks: {
min: yMin,
max: yMax,
@@ -103,49 +100,33 @@ class Graph extends React.Component {
processData(props) {
const {
- data = [],
- duration = 360
+ data = {},
+ axes = false
} = props;
- // I'm going to assume that data will be structured in 10min intervals...
- // And that newest data will be at the end...
- // Let's rock and roll!
- // All this shizzle below needs to be recalculated on new props, yay!
- const now = moment();
- // first time on scale x
- const before = moment().subtract(duration, 'minutes');
- // remove leading data before first time on scale x
- let dataWithTime = [];
- if(data && data.length) {
- const sliceIndex = data.length - 1 - duration/10;
- const totalData = sliceIndex < 0 ? data : data.slice(sliceIndex);
- // adjust time of first data, if there's less data than would fill the chart
- const start = moment(before)
- .add(duration - (totalData.length-1)*10, 'minutes');
- // add times to data
- dataWithTime = totalData.map((d, i) => {
- const add = i*10;
- return Object.assign(
- {},
- d,
- {
- x: moment(start).add(add, 'minutes').toDate()
- }
- );
- });
- }
+ const {
+ start,
+ end,
+ interval,
+ values,
+ max,
+ min
+ } = data;
- // set min and max
- const xMax = now.toDate();
- const xMin = before.toDate();
- // calculate stepsize
- const xUnitStepSize = duration/6;
+ // check whether chartjs needs actual dates...
+ const mappedValues = values.map((value) => ({
+ ...value,
+ x: moment(value.start).toDate()
+ }));
return {
- data: dataWithTime,
- xMax,
- xMin,
- xUnitStepSize
+ axes,
+ data: mappedValues,
+ xMax: moment(end).toDate(),
+ xMin: moment(start).toDate(),
+ yMax: max,
+ yMin: min,
+ xUnitStepSize: interval // this is in milliseconds!!!
};
}
@@ -158,12 +139,18 @@ class Graph extends React.Component {
}
render() {
+
+ const {
+ width,
+ height
+ } = this.props;
+
return (
);
@@ -171,11 +158,10 @@ class Graph extends React.Component {
}
Graph.propTypes = {
- data: React.PropTypes.array, // eslint-disable-line react/no-unused-prop-types
- duration: React.PropTypes.number, // eslint-disable-line react/no-unused-prop-types
- yMax: React.PropTypes.number,
- yMeasurement: React.PropTypes.string,
- yMin: React.PropTypes.number
+ data: React.PropTypes.object, // eslint-disable-line react/no-unused-prop-types
+ height: React.PropTypes.number,
+ width: React.PropTypes.number,
+ yMeasurement: React.PropTypes.string
};
export default Baseline(
diff --git a/ui/src/components/metric/index.js b/ui/src/components/metric/index.js
index fb513b66..626f736d 100644
--- a/ui/src/components/metric/index.js
+++ b/ui/src/components/metric/index.js
@@ -1,18 +1,12 @@
+export { default as MiniMetricMeta } from './mini/meta';
+export { default as MiniMetricTitle } from './mini/title';
+export { default as MiniMetricSubtitle } from './mini/subtitle';
-import MetricGraph from './graph';
-import MetricCloseButton from './close-button';
-import MetricHeader from './header';
-import MetricSelect from './select';
-import MetricSettingsButton from './settings-button';
-import MetricTitle from './title';
-import MetricView from './view';
+export { default as MetricCloseButton } from './full/close-button';
+export { default as MetricHeader } from './full/header';
+export { default as MetricSelect } from './full/select';
+export { default as MetricSettingsButton } from './full/settings-button';
+export { default as MetricTitle } from './full/title';
-export {
- MetricGraph,
- MetricCloseButton,
- MetricHeader,
- MetricSelect,
- MetricSettingsButton,
- MetricTitle,
- MetricView
-};
+export { default as MetricView } from './view';
+export { default as MetricGraph } from './graph';
diff --git a/ui/src/components/metric/metric-data.js b/ui/src/components/metric/metric-data.js
index b3501858..00426b4f 100644
--- a/ui/src/components/metric/metric-data.js
+++ b/ui/src/components/metric/metric-data.js
@@ -1,309 +1,970 @@
-/*eslint-disable */
-
-export default [{
- firstQuartile: 15,
- thirdQuartile: 15,
- median: 15,
- max: 15,
- min: 15,
-}, {
- firstQuartile: 26,
- thirdQuartile: 26,
- median: 26,
- max: 26,
- min: 26,
-}, {
- firstQuartile: 17,
- thirdQuartile: 17,
- median: 17,
- max: 17,
- min: 17,
-}, {
- firstQuartile: 15,
- thirdQuartile: 25,
- median: 19,
- max: 19,
- min: 20,
-}, {
- firstQuartile: 19,
- thirdQuartile: 25,
- median: 21,
- max: 20,
- min: 25,
-}, {
- firstQuartile: 24,
- thirdQuartile: 30,
- median: 25,
- max: 26,
- min: 27,
-}, {
- firstQuartile: 28,
- thirdQuartile: 34,
- median: 30,
- max: 30,
- min: 30,
-}, {
- firstQuartile: 30,
- thirdQuartile: 45,
- median: 35,
- max: 40,
- min: 40,
-}, {
- firstQuartile: 20,
- thirdQuartile: 55,
- median: 45,
- max: 44,
- min: 44,
-}, {
- firstQuartile: 55,
- thirdQuartile: 55,
- median: 55,
- max: 55,
- min: 55,
-}, {
- firstQuartile: 57,
- thirdQuartile: 56,
- median: 57,
- max: 58,
- min: 57,
-}, {
- firstQuartile: 57,
- thirdQuartile: 56,
- median: 56,
- max: 56,
- min: 56,
-}, {
- firstQuartile: 60,
- thirdQuartile: 56,
- median: 60,
- max: 60,
- min: 60,
-}, {
- firstQuartile: 57,
- thirdQuartile: 57,
- median: 57,
- max: 57,
- min: 57,
-}, {
- firstQuartile: 57,
- thirdQuartile: 55,
- median: 55,
- max: 55,
- min: 55,
-}, {
- firstQuartile: 20,
- thirdQuartile: 45,
- median: 45,
- max: 45,
- min: 45,
-}, {
- firstQuartile: 15,
- thirdQuartile: 40,
- median: 30,
- max: 49,
- min: 30,
-}, {
- firstQuartile: 15,
- thirdQuartile: 15,
- median: 15,
- max: 15,
- min: 15,
-}, {
- firstQuartile: 26,
- thirdQuartile: 26,
- median: 26,
- max: 26,
- min: 26,
-}, {
- firstQuartile: 17,
- thirdQuartile: 17,
- median: 17,
- max: 17,
- min: 17,
-}, {
- firstQuartile: 15,
- thirdQuartile: 25,
- median: 19,
- max: 19,
- min: 20,
-}, {
- firstQuartile: 19,
- thirdQuartile: 25,
- median: 21,
- max: 20,
- min: 25,
-}, {
- firstQuartile: 24,
- thirdQuartile: 30,
- median: 25,
- max: 26,
- min: 10,
-}, {
- firstQuartile: 28,
- thirdQuartile: 34,
- median: 30,
- max: 30,
- min: 30,
-}, {
- firstQuartile: 30,
- thirdQuartile: 45,
- median: 35,
- max: 40,
- min: 40,
-}, {
- firstQuartile: 20,
- thirdQuartile: 55,
- median: 45,
- max: 44,
- min: 44,
-}, {
- firstQuartile: 55,
- thirdQuartile: 55,
- median: 55,
- max: 55,
- min: 55,
-}, {
- firstQuartile: 57,
- thirdQuartile: 56,
- median: 57,
- max: 58,
- min: 57,
-}, {
- firstQuartile: 57,
- thirdQuartile: 56,
- median: 56,
- max: 56,
- min: 56,
-}, {
- firstQuartile: 60,
- thirdQuartile: 56,
- median: 60,
- max: 60,
- min: 60,
-}, {
- firstQuartile: 57,
- thirdQuartile: 57,
- median: 57,
- max: 57,
- min: 57,
-}, {
- firstQuartile: 57,
- thirdQuartile: 55,
- median: 55,
- max: 55,
- min: 55,
-}, {
- firstQuartile: 20,
- thirdQuartile: 45,
- median: 45,
- max: 45,
- min: 45,
-}, {
- firstQuartile: 15,
- thirdQuartile: 40,
- median: 30,
- max: 49,
- min: 30,
-}, {
- firstQuartile: 15,
- thirdQuartile: 15,
- median: 15,
- max: 15,
- min: 15,
-}, {
- firstQuartile: 26,
- thirdQuartile: 26,
- median: 26,
- max: 26,
- min: 26,
-}, {
- firstQuartile: 17,
- thirdQuartile: 17,
- median: 17,
- max: 17,
- min: 17,
-}, {
- firstQuartile: 15,
- thirdQuartile: 25,
- median: 19,
- max: 19,
- min: 20,
-}, {
- firstQuartile: 19,
- thirdQuartile: 25,
- median: 21,
- max: 20,
- min: 25,
-}, {
- firstQuartile: 24,
- thirdQuartile: 30,
- median: 25,
- max: 26,
- min: 27,
-}, {
- firstQuartile: 28,
- thirdQuartile: 34,
- median: 30,
- max: 30,
- min: 30,
-}, {
- firstQuartile: 30,
- thirdQuartile: 45,
- median: 35,
- max: 40,
- min: 40,
-}, {
- firstQuartile: 20,
- thirdQuartile: 55,
- median: 45,
- max: 44,
- min: 44,
-}, {
- firstQuartile: 55,
- thirdQuartile: 55,
- median: 55,
- max: 55,
- min: 55,
-}, {
- firstQuartile: 57,
- thirdQuartile: 56,
- median: 57,
- max: 58,
- min: 57,
-}, {
- firstQuartile: 57,
- thirdQuartile: 56,
- median: 56,
- max: 56,
- min: 56,
-}, {
- firstQuartile: 60,
- thirdQuartile: 56,
- median: 60,
- max: 60,
- min: 60,
-}, {
- firstQuartile: 57,
- thirdQuartile: 57,
- median: 57,
- max: 57,
- min: 57,
-}, {
- firstQuartile: 57,
- thirdQuartile: 55,
- median: 55,
- max: 55,
- min: 55,
-}, {
- firstQuartile: 20,
- thirdQuartile: 45,
- median: 45,
- max: 45,
- min: 45,
-}, {
- firstQuartile: 15,
- thirdQuartile: 40,
- median: 30,
- max: 49,
- min: 30,
-}];
+/* eslint-disable */
+export default {
+ "start":1488969900000,
+ "end":1488970410000,
+ "duration":600000,
+ "interval":30000,
+ "min":23523328,
+ "max":70709248,
+ "values":[
+ {
+ "start":1488969900000,
+ "end":1488969930000,
+ "firstQuartile":39251968,
+ "median":39776256,
+ "thirdQuartile":40300544,
+ "max":40300544,
+ "min":39251968,
+ "stddev":741455.2001894653
+ },
+ {
+ "start":1488969930000,
+ "end":1488969960000,
+ "firstQuartile":27455488,
+ "median":40038400,
+ "thirdQuartile":40824832,
+ "max":60747776,
+ "min":25620480,
+ "stddev":11452123.006266393
+ },
+ {
+ "start":1488969960000,
+ "end":1488969990000,
+ "firstQuartile":27193344,
+ "median":28504064,
+ "thirdQuartile":51310592,
+ "max":63893504,
+ "min":26669056,
+ "stddev":16085965.346082138
+ },
+ {
+ "start":1488969990000,
+ "end":1488970020000,
+ "firstQuartile":27455488,
+ "median":29290496,
+ "thirdQuartile":47902720,
+ "max":68087808,
+ "min":26669056,
+ "stddev":17819044.36996238
+ },
+ {
+ "start":1488970020000,
+ "end":1488970050000,
+ "firstQuartile":28241920,
+ "median":30339072,
+ "thirdQuartile":31911936,
+ "max":70709248,
+ "min":27193344,
+ "stddev":14602116.65169301
+ },
+ {
+ "start":1488970050000,
+ "end":1488970080000,
+ "firstQuartile":29028352,
+ "median":32174080,
+ "thirdQuartile":37154816,
+ "max":49737728,
+ "min":26669056,
+ "stddev":7637605.559385668
+ },
+ {
+ "start":1488970080000,
+ "end":1488970110000,
+ "firstQuartile":26669056,
+ "median":32698368,
+ "thirdQuartile":34271232,
+ "max":40300544,
+ "min":23523328,
+ "stddev":5426896.379647263
+ },
+ {
+ "start":1488970110000,
+ "end":1488970140000,
+ "firstQuartile":24047616,
+ "median":25882624,
+ "thirdQuartile":33222656,
+ "max":50786304,
+ "min":23523328,
+ "stddev":9808530.339984681
+ },
+ {
+ "start":1488970140000,
+ "end":1488970170000,
+ "firstQuartile":25096192,
+ "median":26406912,
+ "thirdQuartile":35581952,
+ "max":54456320,
+ "min":24571904,
+ "stddev":11128887.24062214
+ },
+ {
+ "start":1488970170000,
+ "end":1488970200000,
+ "firstQuartile":25358336,
+ "median":26406912,
+ "thirdQuartile":36106240,
+ "max":49737728,
+ "min":25096192,
+ "stddev":10016263.150522126
+ },
+ {
+ "start":1488970200000,
+ "end":1488970230000,
+ "firstQuartile":25882624,
+ "median":27455488,
+ "thirdQuartile":41873408,
+ "max":66514944,
+ "min":25096192,
+ "stddev":15961442.382523417
+ },
+ {
+ "start":1488970230000,
+ "end":1488970260000,
+ "firstQuartile":26669056,
+ "median":29290496,
+ "thirdQuartile":48427008,
+ "max":66514944,
+ "min":25096192,
+ "stddev":17983154.826659754
+ },
+ {
+ "start":1488970260000,
+ "end":1488970290000,
+ "firstQuartile":25096192,
+ "median":30076928,
+ "thirdQuartile":48689152,
+ "max":66514944,
+ "min":24047616,
+ "stddev":18230387.369211502
+ },
+ {
+ "start":1488970290000,
+ "end":1488970320000,
+ "firstQuartile":24571904,
+ "median":25620480,
+ "thirdQuartile":48689152,
+ "max":66514944,
+ "min":23523328,
+ "stddev":18979660.087844357
+ },
+ {
+ "start":1488970320000,
+ "end":1488970350000,
+ "firstQuartile":25096192,
+ "median":25620480,
+ "thirdQuartile":46329856,
+ "max":66514944,
+ "min":24047616,
+ "stddev":19103908.60208431
+ },
+ {
+ "start":1488970350000,
+ "end":1488970380000,
+ "firstQuartile":25620480,
+ "median":26144768,
+ "thirdQuartile":46854144,
+ "max":66514944,
+ "min":25096192,
+ "stddev":18780511.784335714
+ },
+ {
+ "start":1488970380000,
+ "end":1488970410000,
+ "firstQuartile":25882624,
+ "median":27193344,
+ "thirdQuartile":47378432,
+ "max":66514944,
+ "min":25620480,
+ "stddev":19955111.154610857
+ },
+ {
+ "start":1488970410000,
+ "end":1488970440000,
+ "firstQuartile":25882624,
+ "median":27193344,
+ "thirdQuartile":47378432,
+ "max":66514944,
+ "min":25620480,
+ "stddev":19955111.154610857
+ }
+ ],
+ "__intervals":[
+ {
+ "start":"2017-03-08T10:45:00.000Z",
+ "end":"2017-03-08T10:45:30.000Z",
+ "values":[
+ {
+ "v":39251968,
+ "t":"2017-03-08T10:45:18.000Z"
+ },
+ {
+ "v":40300544,
+ "t":"2017-03-08T10:45:18.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488969900000,
+ "end":1488969930000,
+ "firstQuartile":39251968,
+ "median":39776256,
+ "thirdQuartile":40300544,
+ "max":40300544,
+ "min":39251968,
+ "stddev":741455.2001894653
+ }
+ },
+ {
+ "start":"2017-03-08T10:45:30.000Z",
+ "end":"2017-03-08T10:46:00.000Z",
+ "values":[
+ {
+ "v":27193344,
+ "t":"2017-03-08T10:45:33.000Z"
+ },
+ {
+ "v":41349120,
+ "t":"2017-03-08T10:45:33.000Z"
+ },
+ {
+ "v":39776256,
+ "t":"2017-03-08T10:45:33.000Z"
+ },
+ {
+ "v":40300544,
+ "t":"2017-03-08T10:45:33.000Z"
+ },
+ {
+ "v":60747776,
+ "t":"2017-03-08T10:45:48.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:45:48.000Z"
+ },
+ {
+ "v":27717632,
+ "t":"2017-03-08T10:45:48.000Z"
+ },
+ {
+ "v":40300544,
+ "t":"2017-03-08T10:45:48.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488969930000,
+ "end":1488969960000,
+ "firstQuartile":27455488,
+ "median":40038400,
+ "thirdQuartile":40824832,
+ "max":60747776,
+ "min":25620480,
+ "stddev":11452123.006266393
+ }
+ },
+ {
+ "start":"2017-03-08T10:46:00.000Z",
+ "end":"2017-03-08T10:46:30.000Z",
+ "values":[
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:46:03.000Z"
+ },
+ {
+ "v":27717632,
+ "t":"2017-03-08T10:46:03.000Z"
+ },
+ {
+ "v":40300544,
+ "t":"2017-03-08T10:46:03.000Z"
+ },
+ {
+ "v":62320640,
+ "t":"2017-03-08T10:46:03.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:46:18.000Z"
+ },
+ {
+ "v":27717632,
+ "t":"2017-03-08T10:46:18.000Z"
+ },
+ {
+ "v":63893504,
+ "t":"2017-03-08T10:46:18.000Z"
+ },
+ {
+ "v":29290496,
+ "t":"2017-03-08T10:46:18.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488969960000,
+ "end":1488969990000,
+ "firstQuartile":27193344,
+ "median":28504064,
+ "thirdQuartile":51310592,
+ "max":63893504,
+ "min":26669056,
+ "stddev":16085965.346082138
+ }
+ },
+ {
+ "start":"2017-03-08T10:46:30.000Z",
+ "end":"2017-03-08T10:47:00.000Z",
+ "values":[
+ {
+ "v":65466368,
+ "t":"2017-03-08T10:46:33.000Z"
+ },
+ {
+ "v":28241920,
+ "t":"2017-03-08T10:46:33.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:46:33.000Z"
+ },
+ {
+ "v":29814784,
+ "t":"2017-03-08T10:46:33.000Z"
+ },
+ {
+ "v":28766208,
+ "t":"2017-03-08T10:46:48.000Z"
+ },
+ {
+ "v":30339072,
+ "t":"2017-03-08T10:46:48.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:46:48.000Z"
+ },
+ {
+ "v":68087808,
+ "t":"2017-03-08T10:46:48.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488969990000,
+ "end":1488970020000,
+ "firstQuartile":27455488,
+ "median":29290496,
+ "thirdQuartile":47902720,
+ "max":68087808,
+ "min":26669056,
+ "stddev":17819044.36996238
+ }
+ },
+ {
+ "start":"2017-03-08T10:47:00.000Z",
+ "end":"2017-03-08T10:47:30.000Z",
+ "values":[
+ {
+ "v":70709248,
+ "t":"2017-03-08T10:47:03.000Z"
+ },
+ {
+ "v":27193344,
+ "t":"2017-03-08T10:47:03.000Z"
+ },
+ {
+ "v":30863360,
+ "t":"2017-03-08T10:47:03.000Z"
+ },
+ {
+ "v":29290496,
+ "t":"2017-03-08T10:47:03.000Z"
+ },
+ {
+ "v":31911936,
+ "t":"2017-03-08T10:47:18.000Z"
+ },
+ {
+ "v":27193344,
+ "t":"2017-03-08T10:47:18.000Z"
+ },
+ {
+ "v":29814784,
+ "t":"2017-03-08T10:47:18.000Z"
+ },
+ {
+ "v":31911936,
+ "t":"2017-03-08T10:47:18.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970020000,
+ "end":1488970050000,
+ "firstQuartile":28241920,
+ "median":30339072,
+ "thirdQuartile":31911936,
+ "max":70709248,
+ "min":27193344,
+ "stddev":14602116.65169301
+ }
+ },
+ {
+ "start":"2017-03-08T10:47:30.000Z",
+ "end":"2017-03-08T10:48:00.000Z",
+ "values":[
+ {
+ "v":31387648,
+ "t":"2017-03-08T10:47:33.000Z"
+ },
+ {
+ "v":40300544,
+ "t":"2017-03-08T10:47:33.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:47:33.000Z"
+ },
+ {
+ "v":32436224,
+ "t":"2017-03-08T10:47:33.000Z"
+ },
+ {
+ "v":34009088,
+ "t":"2017-03-08T10:47:48.000Z"
+ },
+ {
+ "v":49737728,
+ "t":"2017-03-08T10:47:48.000Z"
+ },
+ {
+ "v":31911936,
+ "t":"2017-03-08T10:47:48.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:47:48.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970050000,
+ "end":1488970080000,
+ "firstQuartile":29028352,
+ "median":32174080,
+ "thirdQuartile":37154816,
+ "max":49737728,
+ "min":26669056,
+ "stddev":7637605.559385668
+ }
+ },
+ {
+ "start":"2017-03-08T10:48:00.000Z",
+ "end":"2017-03-08T10:48:30.000Z",
+ "values":[
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:48:03.000Z"
+ },
+ {
+ "v":34009088,
+ "t":"2017-03-08T10:48:03.000Z"
+ },
+ {
+ "v":34533376,
+ "t":"2017-03-08T10:48:03.000Z"
+ },
+ {
+ "v":32436224,
+ "t":"2017-03-08T10:48:03.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:48:18.000Z"
+ },
+ {
+ "v":23523328,
+ "t":"2017-03-08T10:48:18.000Z"
+ },
+ {
+ "v":40300544,
+ "t":"2017-03-08T10:48:18.000Z"
+ },
+ {
+ "v":32960512,
+ "t":"2017-03-08T10:48:18.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970080000,
+ "end":1488970110000,
+ "firstQuartile":26669056,
+ "median":32698368,
+ "thirdQuartile":34271232,
+ "max":40300544,
+ "min":23523328,
+ "stddev":5426896.379647263
+ }
+ },
+ {
+ "start":"2017-03-08T10:48:30.000Z",
+ "end":"2017-03-08T10:49:00.000Z",
+ "values":[
+ {
+ "v":23523328,
+ "t":"2017-03-08T10:48:33.000Z"
+ },
+ {
+ "v":50786304,
+ "t":"2017-03-08T10:48:33.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:48:33.000Z"
+ },
+ {
+ "v":24047616,
+ "t":"2017-03-08T10:48:33.000Z"
+ },
+ {
+ "v":24047616,
+ "t":"2017-03-08T10:48:48.000Z"
+ },
+ {
+ "v":27193344,
+ "t":"2017-03-08T10:48:48.000Z"
+ },
+ {
+ "v":39251968,
+ "t":"2017-03-08T10:48:48.000Z"
+ },
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:48:48.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970110000,
+ "end":1488970140000,
+ "firstQuartile":24047616,
+ "median":25882624,
+ "thirdQuartile":33222656,
+ "max":50786304,
+ "min":23523328,
+ "stddev":9808530.339984681
+ }
+ },
+ {
+ "start":"2017-03-08T10:49:00.000Z",
+ "end":"2017-03-08T10:49:30.000Z",
+ "values":[
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:49:03.000Z"
+ },
+ {
+ "v":54456320,
+ "t":"2017-03-08T10:49:03.000Z"
+ },
+ {
+ "v":27193344,
+ "t":"2017-03-08T10:49:03.000Z"
+ },
+ {
+ "v":24571904,
+ "t":"2017-03-08T10:49:03.000Z"
+ },
+ {
+ "v":43446272,
+ "t":"2017-03-08T10:49:18.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:49:18.000Z"
+ },
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:49:18.000Z"
+ },
+ {
+ "v":27717632,
+ "t":"2017-03-08T10:49:18.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970140000,
+ "end":1488970170000,
+ "firstQuartile":25096192,
+ "median":26406912,
+ "thirdQuartile":35581952,
+ "max":54456320,
+ "min":24571904,
+ "stddev":11128887.24062214
+ }
+ },
+ {
+ "start":"2017-03-08T10:49:30.000Z",
+ "end":"2017-03-08T10:50:00.000Z",
+ "values":[
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:49:33.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:49:33.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:49:33.000Z"
+ },
+ {
+ "v":49737728,
+ "t":"2017-03-08T10:49:33.000Z"
+ },
+ {
+ "v":26144768,
+ "t":"2017-03-08T10:49:48.000Z"
+ },
+ {
+ "v":27193344,
+ "t":"2017-03-08T10:49:48.000Z"
+ },
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:49:48.000Z"
+ },
+ {
+ "v":45019136,
+ "t":"2017-03-08T10:49:48.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970170000,
+ "end":1488970200000,
+ "firstQuartile":25358336,
+ "median":26406912,
+ "thirdQuartile":36106240,
+ "max":49737728,
+ "min":25096192,
+ "stddev":10016263.150522126
+ }
+ },
+ {
+ "start":"2017-03-08T10:50:00.000Z",
+ "end":"2017-03-08T10:50:30.000Z",
+ "values":[
+ {
+ "v":54456320,
+ "t":"2017-03-08T10:50:03.000Z"
+ },
+ {
+ "v":27717632,
+ "t":"2017-03-08T10:50:03.000Z"
+ },
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:50:03.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:50:03.000Z"
+ },
+ {
+ "v":29290496,
+ "t":"2017-03-08T10:50:18.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:50:18.000Z"
+ },
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:50:18.000Z"
+ },
+ {
+ "v":27193344,
+ "t":"2017-03-08T10:50:18.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970200000,
+ "end":1488970230000,
+ "firstQuartile":25882624,
+ "median":27455488,
+ "thirdQuartile":41873408,
+ "max":66514944,
+ "min":25096192,
+ "stddev":15961442.382523417
+ }
+ },
+ {
+ "start":"2017-03-08T10:50:30.000Z",
+ "end":"2017-03-08T10:51:00.000Z",
+ "values":[
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:50:33.000Z"
+ },
+ {
+ "v":28241920,
+ "t":"2017-03-08T10:50:33.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:50:33.000Z"
+ },
+ {
+ "v":29814784,
+ "t":"2017-03-08T10:50:33.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:50:48.000Z"
+ },
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:50:48.000Z"
+ },
+ {
+ "v":30339072,
+ "t":"2017-03-08T10:50:48.000Z"
+ },
+ {
+ "v":28766208,
+ "t":"2017-03-08T10:50:48.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970230000,
+ "end":1488970260000,
+ "firstQuartile":26669056,
+ "median":29290496,
+ "thirdQuartile":48427008,
+ "max":66514944,
+ "min":25096192,
+ "stddev":17983154.826659754
+ }
+ },
+ {
+ "start":"2017-03-08T10:51:00.000Z",
+ "end":"2017-03-08T10:51:30.000Z",
+ "values":[
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:51:03.000Z"
+ },
+ {
+ "v":30863360,
+ "t":"2017-03-08T10:51:03.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:51:03.000Z"
+ },
+ {
+ "v":29814784,
+ "t":"2017-03-08T10:51:03.000Z"
+ },
+ {
+ "v":30339072,
+ "t":"2017-03-08T10:51:18.000Z"
+ },
+ {
+ "v":24047616,
+ "t":"2017-03-08T10:51:18.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:51:18.000Z"
+ },
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:51:18.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970260000,
+ "end":1488970290000,
+ "firstQuartile":25096192,
+ "median":30076928,
+ "thirdQuartile":48689152,
+ "max":66514944,
+ "min":24047616,
+ "stddev":18230387.369211502
+ }
+ },
+ {
+ "start":"2017-03-08T10:51:30.000Z",
+ "end":"2017-03-08T10:52:00.000Z",
+ "values":[
+ {
+ "v":30863360,
+ "t":"2017-03-08T10:51:33.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:51:33.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:51:33.000Z"
+ },
+ {
+ "v":24047616,
+ "t":"2017-03-08T10:51:33.000Z"
+ },
+ {
+ "v":23523328,
+ "t":"2017-03-08T10:51:48.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:51:48.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:51:48.000Z"
+ },
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:51:48.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970290000,
+ "end":1488970320000,
+ "firstQuartile":24571904,
+ "median":25620480,
+ "thirdQuartile":48689152,
+ "max":66514944,
+ "min":23523328,
+ "stddev":18979660.087844357
+ }
+ },
+ {
+ "start":"2017-03-08T10:52:00.000Z",
+ "end":"2017-03-08T10:52:30.000Z",
+ "values":[
+ {
+ "v":24047616,
+ "t":"2017-03-08T10:52:03.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:52:03.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:52:03.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:52:03.000Z"
+ },
+ {
+ "v":24571904,
+ "t":"2017-03-08T10:52:18.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:52:18.000Z"
+ },
+ {
+ "v":26144768,
+ "t":"2017-03-08T10:52:18.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:52:18.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970320000,
+ "end":1488970350000,
+ "firstQuartile":25096192,
+ "median":25620480,
+ "thirdQuartile":46329856,
+ "max":66514944,
+ "min":24047616,
+ "stddev":19103908.60208431
+ }
+ },
+ {
+ "start":"2017-03-08T10:52:30.000Z",
+ "end":"2017-03-08T10:53:00.000Z",
+ "values":[
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:52:33.000Z"
+ },
+ {
+ "v":25096192,
+ "t":"2017-03-08T10:52:33.000Z"
+ },
+ {
+ "v":26669056,
+ "t":"2017-03-08T10:52:33.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:52:33.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:52:48.000Z"
+ },
+ {
+ "v":27193344,
+ "t":"2017-03-08T10:52:48.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:52:48.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:52:48.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970350000,
+ "end":1488970380000,
+ "firstQuartile":25620480,
+ "median":26144768,
+ "thirdQuartile":46854144,
+ "max":66514944,
+ "min":25096192,
+ "stddev":18780511.784335714
+ }
+ },
+ {
+ "start":"2017-03-08T10:53:00.000Z",
+ "end":"2017-03-08T10:53:30.000Z",
+ "values":[
+ {
+ "v":28241920,
+ "t":"2017-03-08T10:53:03.000Z"
+ },
+ {
+ "v":66514944,
+ "t":"2017-03-08T10:53:03.000Z"
+ },
+ {
+ "v":26144768,
+ "t":"2017-03-08T10:53:03.000Z"
+ },
+ {
+ "v":25620480,
+ "t":"2017-03-08T10:53:03.000Z"
+ }
+ ],
+ "stats":{
+ "start":1488970380000,
+ "end":1488970410000,
+ "firstQuartile":25882624,
+ "median":27193344,
+ "thirdQuartile":47378432,
+ "max":66514944,
+ "min":25620480,
+ "stddev":19955111.154610857
+ }
+ }
+ ]
+}
+/* eslint-enable */
diff --git a/ui/src/components/mini-metric/meta.js b/ui/src/components/metric/mini/meta.js
similarity index 76%
rename from ui/src/components/mini-metric/meta.js
rename to ui/src/components/metric/mini/meta.js
index 04ab7b9b..6a4b8a7d 100644
--- a/ui/src/components/mini-metric/meta.js
+++ b/ui/src/components/metric/mini/meta.js
@@ -1,6 +1,6 @@
-import { remcalc } from '../../shared/functions';
-import { Baseline } from '../../shared/composers';
-import { colors } from '../../shared/constants';
+import { remcalc } from '../../../shared/functions';
+import { Baseline } from '../../../shared/composers';
+import { colors } from '../../../shared/constants';
import styled from 'styled-components';
import React from 'react';
diff --git a/ui/src/components/mini-metric/story.js b/ui/src/components/metric/mini/story.js
similarity index 58%
rename from ui/src/components/mini-metric/story.js
rename to ui/src/components/metric/mini/story.js
index a4608885..b53bcd60 100644
--- a/ui/src/components/mini-metric/story.js
+++ b/ui/src/components/metric/mini/story.js
@@ -1,46 +1,58 @@
import { storiesOf } from '@kadira/storybook';
-import MiniMetricData from '../list/mini-metric-data';
-import Row from '../row';
-import Column from '../column';
+import MetricData from '../metric-data';
+import Row from '../../row';
+import Column from '../../column';
import React from 'react';
import {
- MiniMetricGraph,
+ MetricGraph,
MiniMetricMeta,
MiniMetricTitle,
MiniMetricSubtitle,
- MiniMetricView
-} from './';
+ MetricView
+} from '../';
storiesOf('Metric (Mini)', module)
.add('Mini Metric', () => (
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
-
+
Memory: 54%
(1280/3000 MB)
-
-
+
+
));
diff --git a/ui/src/components/mini-metric/subtitle.js b/ui/src/components/metric/mini/subtitle.js
similarity index 64%
rename from ui/src/components/mini-metric/subtitle.js
rename to ui/src/components/metric/mini/subtitle.js
index e39a2f85..929b142a 100644
--- a/ui/src/components/mini-metric/subtitle.js
+++ b/ui/src/components/metric/mini/subtitle.js
@@ -1,6 +1,6 @@
-import { remcalc } from '../../shared/functions';
-import { Baseline, typography } from '../../shared/composers';
-import { colors } from '../../shared/constants';
+import { remcalc } from '../../../shared/functions';
+import { Baseline, typography } from '../../../shared/composers';
+import { colors } from '../../../shared/constants';
import styled from 'styled-components';
const Subtitle = styled.p`
diff --git a/ui/src/components/mini-metric/title.js b/ui/src/components/metric/mini/title.js
similarity index 64%
rename from ui/src/components/mini-metric/title.js
rename to ui/src/components/metric/mini/title.js
index 9af65c8a..28d67297 100644
--- a/ui/src/components/mini-metric/title.js
+++ b/ui/src/components/metric/mini/title.js
@@ -1,6 +1,6 @@
-import { remcalc } from '../../shared/functions';
-import { Baseline, typography } from '../../shared/composers';
-import { colors } from '../../shared/constants';
+import { remcalc } from '../../../shared/functions';
+import { Baseline, typography } from '../../../shared/composers';
+import { colors } from '../../../shared/constants';
import styled from 'styled-components';
const Title = styled.h3`
diff --git a/ui/src/components/mini-metric/view.js b/ui/src/components/metric/mini/view.js
similarity index 82%
rename from ui/src/components/mini-metric/view.js
rename to ui/src/components/metric/mini/view.js
index 4d060029..d325f105 100644
--- a/ui/src/components/mini-metric/view.js
+++ b/ui/src/components/metric/mini/view.js
@@ -1,6 +1,6 @@
-import { remcalc } from '../../shared/functions';
-import { Baseline } from '../../shared/composers';
-import { colors } from '../../shared/constants';
+import { remcalc } from '../../../shared/functions';
+import { Baseline } from '../../../shared/composers';
+import { colors } from '../../../shared/constants';
import styled from 'styled-components';
import React from 'react';
diff --git a/ui/src/components/metric/view.js b/ui/src/components/metric/view.js
index 42984109..0e675cb6 100644
--- a/ui/src/components/metric/view.js
+++ b/ui/src/components/metric/view.js
@@ -1,30 +1,25 @@
import React from 'react';
-import styled from 'styled-components';
import { Baseline } from '../../shared/composers';
-import { boxes, colors } from '../../shared/constants';
-import { remcalc } from '../../shared/functions';
-
-const Container = styled.div`
- position: relative;
- box-sizing: border-box;
- margin: ${remcalc(24)} 0;
- width: 100%;
- max-width: ${remcalc(940)};
- box-shadow: ${boxes.bottomShaddow};
- border: 1px solid ${colors.base.grey};
-`;
+import { default as FullView } from './full/view';
+import { default as MiniView } from './mini/view';
const View = ({
children,
+ mini,
...props
-}) => (
-
+}) => mini ? (
+
{children}
-
+
+) : (
+
+ {children}
+
);
View.propTypes = {
- children: React.PropTypes.node
+ children: React.PropTypes.node,
+ mini: React.PropTypes.bool
};
export default Baseline(
diff --git a/ui/src/components/mini-metric/graph.js b/ui/src/components/mini-metric/graph.js
deleted file mode 100644
index 8481c6f8..00000000
--- a/ui/src/components/mini-metric/graph.js
+++ /dev/null
@@ -1,110 +0,0 @@
-import whisker from 'chartjs-chart-box-plot';
-import styled from 'styled-components';
-import buildArray from 'build-array';
-import { remcalc } from '../../shared/functions';
-import { Baseline } from '../../shared/composers';
-import Chart from 'chart.js';
-import React from 'react';
-
-whisker(Chart);
-
-const Container = styled.div`
- position: relative;
- height: ${remcalc(72)};
- width: 100%;
-`;
-
-const Canvas = styled.canvas`
- position: absolute;
- bottom: 0;
-`;
-
-class Graph extends React.Component {
- componentDidMount() {
- const {
- data = [],
- labels = 0,
- max = 100,
- min = 0
- } = this.props;
-
- const _labels = !Array.isArray(labels)
- ? buildArray(labels || data.length).map((v, i) => '')
- : labels;
-
- this._chart = new Chart(this._refs.component, {
- type: 'whisker',
- responsive: true,
- maintainAspectRatio: true,
- options: {
- scales: {
- xAxes: [{
- display: false,
- barPercentage: 1.0,
- categoryPercentage: 1.0
- }],
- yAxes: [{
- display: false,
- ticks: {
- min: min,
- max: max
- }
- }]
- },
- legend: {
- display: false
- }
- },
- data: {
- labels: _labels,
- datasets: [{
- data
- }]
- }
- });
- }
- componentWillReceiveProps(nextProps) {
- const {
- data = [],
- labels = 0
- } = this.props;
-
- const _labels = !Array.isArray(labels)
- ? buildArray(labels || data.length).map((v, i) => '')
- : labels;
-
- this._chart.data.datasets = [{
- data
- }];
-
- this._chart.data.labels = _labels;
- this._chart.update(0);
- }
- ref(name) {
- this._refs = this._refs || {};
-
- return (el) => {
- this._refs[name] = el;
- };
- }
- render() {
- return (
-
-
-
- );
- }
-}
-
-Graph.propTypes = {
- data: React.PropTypes.array,
- labels: React.PropTypes.number,
- max: React.PropTypes.number,
- min: React.PropTypes.number
-};
-
-export default Baseline(
- Graph
-);
diff --git a/ui/src/components/mini-metric/index.js b/ui/src/components/mini-metric/index.js
deleted file mode 100644
index d9e8629f..00000000
--- a/ui/src/components/mini-metric/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import MiniMetricGraph from './graph';
-import MiniMetricMeta from './meta';
-import MiniMetricTitle from './title';
-import MiniMetricSubtitle from './subtitle';
-import MiniMetricView from './view';
-
-export {
- MiniMetricGraph,
- MiniMetricMeta,
- MiniMetricTitle,
- MiniMetricSubtitle,
- MiniMetricView
-};