Skip to content

Commit

Permalink
[Reporting] Log TM health and drift stats prior to reporting tests (e…
Browse files Browse the repository at this point in the history
…lastic#117013)

* [Reporting] Log TM health and drift stats prior to reporting tests

Closes elastic#114946

* re-skip flaky test

* rename method
  • Loading branch information
tsullivan committed Nov 2, 2021
1 parent 847aff2 commit d73e5da
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {

before(async () => {
const reportingAPI = getService('reportingAPI');
await reportingAPI.logTaskManagerHealth();
await reportingAPI.createDataAnalystRole();
await reportingAPI.createTestReportingUserRole();
await reportingAPI.createDataAnalyst();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,12 @@
import { FtrProviderContext } from '../ftr_provider_context';

// eslint-disable-next-line import/no-default-export
export default function ({ loadTestFile }: FtrProviderContext) {
export default function ({ loadTestFile, getService }: FtrProviderContext) {
describe('Reporting API Integration Tests with Security disabled', function () {
before(async () => {
const reportingAPI = getService('reportingAPI');
await reportingAPI.logTaskManagerHealth();
});
this.tags('ciGroup13');
loadTestFile(require.resolve('./job_apis_csv'));
loadTestFile(require.resolve('./job_apis_csv_deprecated'));
Expand Down
15 changes: 15 additions & 0 deletions x-pack/test/reporting_api_integration/services/scenarios.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,20 @@ export function createScenarios({ getService }: Pick<FtrProviderContext, 'getSer
const REPORTING_USER_USERNAME = 'reporting_user';
const REPORTING_USER_PASSWORD = 'reporting_user-password';

const logTaskManagerHealth = async () => {
// Check task manager health for analyzing test failures. See https://github.com/elastic/kibana/issues/114946
const tmHealth = await supertest.get(`/api/task_manager/_health`);
const driftValues = tmHealth.body?.stats?.runtime?.value;

log.info(`Task Manager status: "${tmHealth.body?.status}"`);
log.info(`Task Manager overall drift rankings: "${JSON.stringify(driftValues?.drift)}"`);
log.info(
`Task Manager drift rankings for "report:execute": "${JSON.stringify(
driftValues?.drift_by_type?.['report:execute']
)}"`
);
};

const initEcommerce = async () => {
await esArchiver.load('x-pack/test/functional/es_archives/reporting/ecommerce');
await kibanaServer.importExport.load(ecommerceSOPath);
Expand Down Expand Up @@ -205,6 +219,7 @@ export function createScenarios({ getService }: Pick<FtrProviderContext, 'getSer
};

return {
logTaskManagerHealth,
initEcommerce,
teardownEcommerce,
DATA_ANALYST_USERNAME,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ export default function (context: FtrProviderContext) {
this.tags('ciGroup2');

before(async () => {
const reportingAPI = context.getService('reportingAPI');
await reportingAPI.logTaskManagerHealth();
await createDataAnalystRole();
await createDataAnalyst();
await createReportingUser();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export default function ({ getService, loadTestFile }: FtrProviderContext) {

before(async () => {
const reportingFunctional = getService('reportingFunctional');
await reportingFunctional.logTaskManagerHealth();
await reportingFunctional.createDataAnalystRole();
await reportingFunctional.createDataAnalyst();
await reportingFunctional.createTestReportingUserRole();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ import { FtrProviderContext } from '../ftr_provider_context';
export default function ({ loadTestFile, getService }: FtrProviderContext) {
describe('Reporting Functional Tests with Security disabled', function () {
this.tags('ciGroup2');

before(async () => {
const reportingAPI = getService('reportingAPI');
await reportingAPI.logTaskManagerHealth();
});

loadTestFile(require.resolve('./management'));
});
}

0 comments on commit d73e5da

Please sign in to comment.