Skip to content

Commit

Permalink
[Metrics UI] Fix asynchronicity and error handling in Snapshot API (e…
Browse files Browse the repository at this point in the history
…lastic#70503)

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
  • Loading branch information
Zacqary and elasticmachine committed Jul 1, 2020
1 parent 6949d01 commit 1947db2
Showing 1 changed file with 17 additions and 13 deletions.
30 changes: 17 additions & 13 deletions x-pack/plugins/infra/server/lib/snapshot/snapshot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,13 @@ export class InfraSnapshot {
// when they have both been completed.
const timeRangeWithIntervalApplied = await createTimeRangeWithInterval(client, options);
const optionsWithTimerange = { ...options, timerange: timeRangeWithIntervalApplied };

const groupedNodesPromise = requestGroupedNodes(client, optionsWithTimerange);
const nodeMetricsPromise = requestNodeMetrics(client, optionsWithTimerange);

const groupedNodeBuckets = await groupedNodesPromise;
const nodeMetricBuckets = await nodeMetricsPromise;

const [groupedNodeBuckets, nodeMetricBuckets] = await Promise.all([
groupedNodesPromise,
nodeMetricsPromise,
]);
return {
nodes: mergeNodeBuckets(groupedNodeBuckets, nodeMetricBuckets, options),
interval: timeRangeWithIntervalApplied.interval,
Expand Down Expand Up @@ -103,11 +104,12 @@ const requestGroupedNodes = async (
},
},
};

return await getAllCompositeData<
InfraSnapshotAggregationResponse,
InfraSnapshotNodeGroupByBucket
>(callClusterFactory(client), query, bucketSelector, handleAfterKey);
return getAllCompositeData<InfraSnapshotAggregationResponse, InfraSnapshotNodeGroupByBucket>(
callClusterFactory(client),
query,
bucketSelector,
handleAfterKey
);
};

const requestNodeMetrics = async (
Expand Down Expand Up @@ -154,10 +156,12 @@ const requestNodeMetrics = async (
},
},
};
return await getAllCompositeData<
InfraSnapshotAggregationResponse,
InfraSnapshotNodeMetricsBucket
>(callClusterFactory(client), query, bucketSelector, handleAfterKey);
return getAllCompositeData<InfraSnapshotAggregationResponse, InfraSnapshotNodeMetricsBucket>(
callClusterFactory(client),
query,
bucketSelector,
handleAfterKey
);
};

// buckets can be InfraSnapshotNodeGroupByBucket[] or InfraSnapshotNodeMetricsBucket[]
Expand Down

0 comments on commit 1947db2

Please sign in to comment.