Skip to content

Commit

Permalink
[APM] Fix service maps not loading when there are no APM ML jobs (#69240
Browse files Browse the repository at this point in the history
)

* Closes #69238 by handling 404 thrown error from the query for APM ML jobs.

* Improved coded readability

* moved anomaly job fetch to new function getApmAnomalyDetectionJobs for
improved readability and only handle a 404 status code response else throw
  • Loading branch information
ogupte authored Jun 16, 2020
1 parent 8bc8837 commit 5c87a27
Showing 1 changed file with 25 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,33 @@ import { leftJoin } from '../../../common/utils/left_join';
import { Job as AnomalyDetectionJob } from '../../../../ml/server';
import { PromiseReturnType } from '../../../typings/common';
import { IEnvOptions } from './get_service_map';
import { Setup } from '../helpers/setup_request';
import {
APM_ML_JOB_GROUP_NAME,
encodeForMlApi,
} from '../../../common/ml_job_constants';

async function getApmAnomalyDetectionJobs(
setup: Setup
): Promise<AnomalyDetectionJob[]> {
const { ml } = setup;

if (!ml) {
return [];
}
try {
const { jobs } = await ml.anomalyDetectors.jobs(APM_ML_JOB_GROUP_NAME);
return jobs;
} catch (error) {
if (error.statusCode === 404) {
return [];
}
throw error;
}
}

type ApmMlJobCategory = NonNullable<ReturnType<typeof getApmMlJobCategory>>;

export const getApmMlJobCategory = (
mlJob: AnomalyDetectionJob,
serviceNames: string[]
Expand Down Expand Up @@ -62,7 +83,10 @@ export async function getServiceAnomalies(
return [];
}

const { jobs: apmMlJobs } = await ml.anomalyDetectors.jobs('apm');
const apmMlJobs = await getApmAnomalyDetectionJobs(options.setup);
if (apmMlJobs.length === 0) {
return [];
}
const apmMlJobCategories = apmMlJobs
.map((job) => getApmMlJobCategory(job, serviceNames))
.filter(
Expand Down

0 comments on commit 5c87a27

Please sign in to comment.