Adds maxRetries:0 to relevant transform API calls. (#144603) (#144679)

Adds { maxRetries: 0 } to some transform related API calls (esp. preview) to avoid performance problem in case of retries.

(cherry picked from commit acf3895932)

Co-authored-by: Walter Rafelsberger <walter.rafelsberger@elastic.co>
This commit is contained in:
Kibana Machine 2022-11-07 06:07:53 -05:00 committed by GitHub
parent e2b8580dec
commit d08f3d6b6b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -155,10 +155,13 @@ export function registerTransformsRoutes(routeDependencies: RouteDependencies) {
async (ctx, req, res) => {
try {
const esClient = (await ctx.core).elasticsearch.client;
const body = await esClient.asCurrentUser.transform.getTransformStats({
size: 1000,
transform_id: '_all',
});
const body = await esClient.asCurrentUser.transform.getTransformStats(
{
size: 1000,
transform_id: '_all',
},
{ maxRetries: 0 }
);
return res.ok({ body });
} catch (e) {
return res.customError(wrapError(wrapEsError(e)));
@ -185,9 +188,12 @@ export function registerTransformsRoutes(routeDependencies: RouteDependencies) {
const { transformId } = req.params;
try {
const esClient = (await ctx.core).elasticsearch.client;
const body = await esClient.asCurrentUser.transform.getTransformStats({
transform_id: transformId,
});
const body = await esClient.asCurrentUser.transform.getTransformStats(
{
transform_id: transformId,
},
{ maxRetries: 0 }
);
return res.ok({ body });
} catch (e) {
return res.customError(wrapError(wrapEsError(e)));
@ -452,7 +458,7 @@ export function registerTransformsRoutes(routeDependencies: RouteDependencies) {
license.guardApiRoute(async (ctx, req, res) => {
try {
const esClient = (await ctx.core).elasticsearch.client;
const body = await esClient.asCurrentUser.search(req.body);
const body = await esClient.asCurrentUser.search(req.body, { maxRetries: 0 });
return res.ok({ body });
} catch (e) {
return res.customError(wrapError(wrapEsError(e)));
@ -643,16 +649,22 @@ const previewTransformHandler: RequestHandler<
try {
const reqBody = req.body;
const esClient = (await ctx.core).elasticsearch.client;
const body = await esClient.asCurrentUser.transform.previewTransform({
body: reqBody,
});
const body = await esClient.asCurrentUser.transform.previewTransform(
{
body: reqBody,
},
{ maxRetries: 0 }
);
if (isLatestTransform(reqBody)) {
// for the latest transform mappings properties have to be retrieved from the source
const fieldCapsResponse = await esClient.asCurrentUser.fieldCaps({
index: reqBody.source.index,
fields: '*',
include_unmapped: false,
});
const fieldCapsResponse = await esClient.asCurrentUser.fieldCaps(
{
index: reqBody.source.index,
fields: '*',
include_unmapped: false,
},
{ maxRetries: 0 }
);
const fieldNamesSet = new Set(Object.keys(fieldCapsResponse.fields));