Commit c4deeaed authored by kushalpandya's avatar kushalpandya

Add memory delta support

parent 1ae57c83
...@@ -9,8 +9,8 @@ export default { ...@@ -9,8 +9,8 @@ export default {
}, },
data() { data() {
return { return {
// memoryFrom: 0, memoryFrom: 0,
// memoryTo: 0, memoryTo: 0,
memoryMetrics: [], memoryMetrics: [],
deploymentTime: 0, deploymentTime: 0,
hasMetrics: false, hasMetrics: false,
...@@ -35,18 +35,32 @@ export default { ...@@ -35,18 +35,32 @@ export default {
shouldShowMetricsUnavailable() { shouldShowMetricsUnavailable() {
return !this.loadingMetrics && !this.hasMetrics && !this.loadFailed; return !this.loadingMetrics && !this.hasMetrics && !this.loadFailed;
}, },
memoryChangeType() {
if (this.memoryTo > this.memoryFrom) {
return 'increased';
} else if (this.memoryTo < this.memoryFrom) {
return 'decreased';
}
return 'unchanged';
},
}, },
methods: { methods: {
getMegabytes(bytesString) {
const valueInBytes = Number(bytesString).toFixed(2);
return (valueInBytes / (1024 * 1024)).toFixed(2);
},
computeGraphData(metrics, deploymentTime) { computeGraphData(metrics, deploymentTime) {
this.loadingMetrics = false; this.loadingMetrics = false;
const { memory_values } = metrics; const { memory_before, memory_after, memory_values } = metrics;
// if (memory_previous.length > 0) {
// this.memoryFrom = Number(memory_previous[0].value[1]).toFixed(2); if (memory_before.length > 0) {
// } this.memoryFrom = this.getMegabytes(memory_before[0].value[1]);
// }
// if (memory_current.length > 0) {
// this.memoryTo = Number(memory_current[0].value[1]).toFixed(2); if (memory_after.length > 0) {
// } this.memoryTo = this.getMegabytes(memory_after[0].value[1]);
}
if (memory_values.length > 0) { if (memory_values.length > 0) {
this.hasMetrics = true; this.hasMetrics = true;
...@@ -102,7 +116,7 @@ export default { ...@@ -102,7 +116,7 @@ export default {
<p <p
v-if="shouldShowMemoryGraph" v-if="shouldShowMemoryGraph"
class="usage-info js-usage-info"> class="usage-info js-usage-info">
Deployment memory usage: Memory usage <b>{{memoryChangeType}}</b> from {{memoryFrom}}MB to {{memoryTo}}MB
</p> </p>
<p <p
v-if="shouldShowLoadFailure" v-if="shouldShowLoadFailure"
......
...@@ -7,6 +7,18 @@ const url = '/root/acets-review-apps/environments/15/deployments/1/metrics'; ...@@ -7,6 +7,18 @@ const url = '/root/acets-review-apps/environments/15/deployments/1/metrics';
const metricsMockData = { const metricsMockData = {
success: true, success: true,
metrics: { metrics: {
memory_before: [
{
metric: {},
value: [1495785220.607, '9572875.906976745'],
},
],
memory_after: [
{
metric: {},
value: [1495787020.607, '4485853.130206379'],
},
],
memory_values: [ memory_values: [
{ {
metric: {}, metric: {},
...@@ -39,7 +51,7 @@ const createComponent = () => { ...@@ -39,7 +51,7 @@ const createComponent = () => {
const messages = { const messages = {
loadingMetrics: 'Loading deployment statistics.', loadingMetrics: 'Loading deployment statistics.',
hasMetrics: 'Deployment memory usage:', hasMetrics: 'Memory usage unchanged from 0MB to 0MB',
loadFailed: 'Failed to load deployment statistics.', loadFailed: 'Failed to load deployment statistics.',
metricsUnavailable: 'Deployment statistics are not available currently.', metricsUnavailable: 'Deployment statistics are not available currently.',
}; };
...@@ -89,17 +101,52 @@ describe('MemoryUsage', () => { ...@@ -89,17 +101,52 @@ describe('MemoryUsage', () => {
}); });
}); });
describe('computed', () => {
describe('memoryChangeType', () => {
it('should return "increased" if memoryFrom value is less than memoryTo value', () => {
vm.memoryFrom = 4.28;
vm.memoryTo = 9.13;
expect(vm.memoryChangeType).toEqual('increased');
});
it('should return "decreased" if memoryFrom value is less than memoryTo value', () => {
vm.memoryFrom = 9.13;
vm.memoryTo = 4.28;
expect(vm.memoryChangeType).toEqual('decreased');
});
it('should return "unchanged" if memoryFrom value equal to memoryTo value', () => {
vm.memoryFrom = 1;
vm.memoryTo = 1;
expect(vm.memoryChangeType).toEqual('unchanged');
});
});
});
describe('methods', () => { describe('methods', () => {
const { metrics, deployment_time } = metricsMockData; const { metrics, deployment_time } = metricsMockData;
describe('getMegabytes', () => {
it('should return Megabytes from provided Bytes value', () => {
const memoryInBytes = '9572875.906976745';
expect(vm.getMegabytes(memoryInBytes)).toEqual('9.13');
});
});
describe('computeGraphData', () => { describe('computeGraphData', () => {
it('should populate sparkline graph', () => { it('should populate sparkline graph', () => {
vm.computeGraphData(metrics, deployment_time); vm.computeGraphData(metrics, deployment_time);
const { hasMetrics, memoryMetrics, deploymentTime } = vm; const { hasMetrics, memoryMetrics, deploymentTime, memoryFrom, memoryTo } = vm;
expect(hasMetrics).toBeTruthy(); expect(hasMetrics).toBeTruthy();
expect(memoryMetrics.length > 0).toBeTruthy(); expect(memoryMetrics.length > 0).toBeTruthy();
expect(deploymentTime).toEqual(deployment_time); expect(deploymentTime).toEqual(deployment_time);
expect(memoryFrom).toEqual('9.13');
expect(memoryTo).toEqual('4.28');
}); });
}); });
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment