[APM] Separate count/retainment telemetry requests (#63225)

Separate count/retainment telemetry requests to make them less prone to timing out.

Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
Dario Gieselaar 2020-04-13 14:06:20 +02:00 committed by GitHub
parent c7f61f956a
commit 36b4ad9888
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -61,10 +61,10 @@ export const tasks: TelemetryTask[] = [
return prevJob.then(async data => {
const { processorEvent, timeRange } = current;
const response = await search({
const totalHitsResponse = await search({
index: indicesByProcessorEvent[processorEvent],
body: {
size: 1,
size: 0,
query: {
bool: {
filter: [
@ -83,25 +83,43 @@ export const tasks: TelemetryTask[] = [
]
}
},
sort: {
'@timestamp': 'asc'
},
_source: ['@timestamp'],
track_total_hits: true
}
});
const event = response.hits.hits[0]?._source as {
'@timestamp': number;
};
const retainmentResponse =
timeRange === 'all'
? await search({
index: indicesByProcessorEvent[processorEvent],
body: {
query: {
bool: {
filter: [
{ term: { [PROCESSOR_EVENT]: processorEvent } }
]
}
},
sort: {
'@timestamp': 'asc'
},
_source: ['@timestamp']
}
})
: null;
const event = retainmentResponse?.hits.hits[0]?._source as
| {
'@timestamp': number;
}
| undefined;
return merge({}, data, {
counts: {
[processorEvent]: {
[timeRange]: response.hits.total.value
[timeRange]: totalHitsResponse.hits.total.value
}
},
...(timeRange === 'all' && event
...(event
? {
retainment: {
[processorEvent]: {