Skip to content

Commit

Permalink
[Metrics UI] Ensure inventory view buckets never drop below 60 seconds (
Browse files Browse the repository at this point in the history
#58503)

* [Metrics UI] Ensure inventory view buckets never drop below 60 seconds

* Fixing tests

* Fixing tests... again

* Fixing tests... rounding issue?

* Trying to fix the tests... again

* updating test for custom metric

Co-authored-by: Elastic Machine <[email protected]>
  • Loading branch information
simianhacker and elasticmachine committed Feb 28, 2020
1 parent 8afa902 commit 3289c7e
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export const createTimeRangeWithInterval = async (
): Promise<InfraTimerangeInput> => {
const aggregations = getMetricsAggregations(options);
const modules = await aggregationsToModules(framework, requestContext, aggregations, options);
const interval =
const interval = Math.max(
(await calculateMetricInterval(
framework,
requestContext,
Expand All @@ -32,7 +32,9 @@ export const createTimeRangeWithInterval = async (
},
modules,
options.nodeType
)) || 60000;
)) || 60,
60
);
return {
interval: `${interval}s`,
from: options.timerange.to - interval * 5000, // We need at least 5 buckets worth of data
Expand Down
56 changes: 47 additions & 9 deletions x-pack/test/api_integration/apis/infra/waffle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -189,14 +189,52 @@ export default function({ getService }: FtrProviderContext) {
expect(firstNode).to.have.property('metric');
expect(firstNode.metric).to.eql({
name: 'cpu',
value: 0.009285714285714286,
max: 0.009285714285714286,
avg: 0.0015476190476190477,
value: 0.0032,
max: 0.0038333333333333336,
avg: 0.0027944444444444444,
});
}
});
});

it('should work with custom metrics', async () => {
const data = await fetchSnapshot({
sourceId: 'default',
timerange: {
to: max,
from: min,
interval: '1m',
},
metric: {
type: 'custom',
field: 'system.cpu.user.pct',
aggregation: 'avg',
id: '1',
} as SnapshotMetricInput,
nodeType: 'host' as InfraNodeType,
groupBy: [],
});

const snapshot = data;
expect(snapshot).to.have.property('nodes');
if (snapshot) {
const { nodes } = snapshot;
expect(nodes.length).to.equal(1);
const firstNode = first(nodes);
expect(firstNode).to.have.property('path');
expect(firstNode.path.length).to.equal(1);
expect(first(firstNode.path)).to.have.property('value', 'demo-stack-mysql-01');
expect(first(firstNode.path)).to.have.property('label', 'demo-stack-mysql-01');
expect(firstNode).to.have.property('metric');
expect(firstNode.metric).to.eql({
name: 'custom',
value: 0.0016,
max: 0.0018333333333333333,
avg: 0.0013666666666666669,
});
}
});

it('should basically work with 1 grouping', () => {
const resp = fetchSnapshot({
sourceId: 'default',
Expand Down Expand Up @@ -279,9 +317,9 @@ export default function({ getService }: FtrProviderContext) {
expect(firstNode).to.have.property('metric');
expect(firstNode.metric).to.eql({
name: 'cpu',
value: 0.009285714285714286,
max: 0.009285714285714286,
avg: 0.0015476190476190477,
value: 0.0032,
max: 0.0038333333333333336,
avg: 0.0027944444444444444,
});
const secondNode = nodes[1];
expect(secondNode).to.have.property('path');
Expand All @@ -291,9 +329,9 @@ export default function({ getService }: FtrProviderContext) {
expect(secondNode).to.have.property('metric');
expect(secondNode.metric).to.eql({
name: 'cpu',
value: 0.009285714285714286,
max: 0.009285714285714286,
avg: 0.0015476190476190477,
value: 0.0032,
max: 0.0038333333333333336,
avg: 0.0027944444444444444,
});
}
});
Expand Down

0 comments on commit 3289c7e

Please sign in to comment.