Skip to content

Commit

Permalink
Retrocompatibilty
Browse files Browse the repository at this point in the history
  • Loading branch information
crespocarlos committed May 28, 2024
1 parent d33d095 commit bb4e146
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@ export async function getExistingApmIndexTemplates({
}) {
const apmIndexTemplateNames = getApmIndexTemplateNames();
const values = await Promise.all(
apmIndexTemplateNames.map(async (indexTemplateName) => {
const res = await getIndexTemplate(esClient, { name: indexTemplateName });
return res.index_templates[0];
})
Object.values(apmIndexTemplateNames)
.flatMap((validIndexTemplateNames) => validIndexTemplateNames)
.map(async (indexTemplateName) => {
const res = await getIndexTemplate(esClient, { name: indexTemplateName });
return res.index_templates[0];
})
);

return values.filter((v) => v !== undefined);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,10 @@ export function validateIngestPipelineName(
}

const indexTemplateNames = getApmIndexTemplateNames();
return indexTemplateNames.some(
(indexTemplateName) =>
dataStream.startsWith(indexTemplateName) && ingestPipelineId.startsWith(indexTemplateName)
);
return Object.values(indexTemplateNames)
.flatMap((validIndexTemplateNames) => validIndexTemplateNames)
.some(
(indexTemplateName) =>
dataStream.startsWith(indexTemplateName) && ingestPipelineId.startsWith(indexTemplateName)
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ import { IndicesGetIndexTemplateIndexTemplateItem } from '@elastic/elasticsearch
const suffix = 'template';
export function getApmIndexTemplateNames() {
const indexTemplateNames = [
`logs-apm.app@${suffix}`,
`logs-apm.error@${suffix}`,
`metrics-apm.app@${suffix}`,
`metrics-apm.internal@${suffix}`,
`traces-apm.rum@${suffix}`,
`traces-apm.sampled@${suffix}`,
`traces-apm@${suffix}`,
'logs-apm.app',
'logs-apm.error',
'metrics-apm.app',
'metrics-apm.internal',
'traces-apm.rum',
'traces-apm.sampled',
'traces-apm',
];

const rollupIndexTemplateNames = ['1m', '10m', '60m'].flatMap((interval) => {
Expand All @@ -25,25 +25,33 @@ export function getApmIndexTemplateNames() {
'metrics-apm.service_summary',
'metrics-apm.service_transaction',
'metrics-apm.transaction',
].map((ds) => `${ds}.${interval}@${suffix}`);
].map((ds) => `${ds}.${interval}`);
});

return [...indexTemplateNames, ...rollupIndexTemplateNames];
// For retrocompatibility, it returns index template names both pre and post APM integration package v8.15.0
return [...indexTemplateNames, ...rollupIndexTemplateNames].reduce((acc, indexTemplateName) => {
acc[indexTemplateName] = [indexTemplateName, `${indexTemplateName}@${suffix}`];
return acc;
}, {} as Record<string, string[]>);
}

export function getApmIndexTemplates(
existingIndexTemplates: IndicesGetIndexTemplateIndexTemplateItem[]
) {
const apmIndexTemplateNames = getApmIndexTemplateNames();
const standardIndexTemplates = apmIndexTemplateNames.map((templateName) => {
const matchingTemplate = existingIndexTemplates.find(({ name }) => name === templateName);

return {
name: templateName,
exists: Boolean(matchingTemplate),
isNonStandard: false,
};
});
const standardIndexTemplates = Object.entries(apmIndexTemplateNames).map(
([baseTemplateName, validIndexTemplateNames]) => {
const matchingTemplate = validIndexTemplateNames.find((templateName) =>
existingIndexTemplates.find(({ name }) => name === templateName)
);

return {
name: matchingTemplate ?? baseTemplateName,
exists: Boolean(matchingTemplate),
isNonStandard: false,
};
}
);

const nonStandardIndexTemplates = existingIndexTemplates
.filter(
Expand Down

0 comments on commit bb4e146

Please sign in to comment.