* added ability to run ephemeral tasks * fixed typing * added typing on plugin * WIP * Fix type issues * Hook up the ephemeral task into the task runner for actions * Tasks can now run independently of one another * Use deferred language * Refactor taskParams slightly * Use Promise.all * Remove deferred logic * Add config options to limit the amount of tasks executing at once * Add ephemeral task monitoring * WIP * Add single test so far * Ensure we log after actions have executed * Remove confusing * 1 * Add logic to ensure we fallback to default enqueueing if the total actions is above the config * Add additional test * Fix tests a bit, ensure we log the alerting:actions-execute right away and the tests should listen for alerts:execute * Better tests * If the queue is at capacity, attempt to execute the ephemeral task as a regular action * Ensure we run ephemeral tasks before to avoid them getting stuck in the queue * Do not handle the promise anymore * Remove unnecessary code * Properly handle errors from ephemeral task lifecycle * moved acitons domain out of alerting and into actions plugin * Remove some tests * Fix TS and test issues * Fix type issues * Fix more type issues * Fix more type issues * Fix jest tests * Fix more jest tests * Off by default * Fix jest tests * Update config for this suite too * Start of telemetry code * Fix types and add missing files * Fix telemetry schema * Fix types * Fix more types * moved load event emission to pollingcycle and added health stats on Ephemeral tasks * Add more telemetry data based on new health metrics for the ephemeral queue * Fix tests and types * Add separate request capacity for ephemeral queue * Fix telemetry schema and add tests for usage collection * track polled tasks by persistence and use in capacity estimation instead of executions * fixed typing * Bump default capacity * added delay metric to ephemeral stats * Fix bad merge * Fix tests * Fix tests * Fix types * Skip failing tests * Exclude ephemeral stats from capacity estimation tests * PR feedback * More PR feedback * PR feedback * Fix merge conflict * Try fixing CI * Fix broken lock file from merge * Match master * Add this back * PR feedback * Change to queue and add test * Disable ephemeral queue in tests * Updated desc * Comment out ephemeral-specific tests tha require the entire test suite to support ephemeral tasks * Add clarifying comment Co-authored-by: Gidi Meir Morris <github@gidi.io> Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
53 lines
2 KiB
TypeScript
53 lines
2 KiB
TypeScript
/*
|
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
* or more contributor license agreements. Licensed under the Elastic License
|
|
* 2.0; you may not use this file except in compliance with the Elastic License
|
|
* 2.0.
|
|
*/
|
|
|
|
import path from 'path';
|
|
import fs from 'fs';
|
|
import { FtrConfigProviderContext } from '@kbn/test';
|
|
import { services } from './services';
|
|
|
|
export default async function ({ readConfigFile }: FtrConfigProviderContext) {
|
|
const integrationConfig = await readConfigFile(require.resolve('../api_integration/config'));
|
|
|
|
// Find all folders in ./plugins since we treat all them as plugin folder
|
|
const allFiles = fs.readdirSync(path.resolve(__dirname, 'plugins'));
|
|
const plugins = allFiles.filter((file) =>
|
|
fs.statSync(path.resolve(__dirname, 'plugins', file)).isDirectory()
|
|
);
|
|
|
|
return {
|
|
testFiles: [
|
|
require.resolve('./test_suites/platform'),
|
|
require.resolve('./test_suites/task_manager'),
|
|
require.resolve('./test_suites/event_log'),
|
|
require.resolve('./test_suites/licensed_feature_usage'),
|
|
],
|
|
services,
|
|
servers: integrationConfig.get('servers'),
|
|
esTestCluster: integrationConfig.get('esTestCluster'),
|
|
apps: integrationConfig.get('apps'),
|
|
screenshots: integrationConfig.get('screenshots'),
|
|
junit: {
|
|
reportName: 'Plugin Functional Tests',
|
|
},
|
|
kbnTestServer: {
|
|
...integrationConfig.get('kbnTestServer'),
|
|
serverArgs: [
|
|
...integrationConfig.get('kbnTestServer.serverArgs'),
|
|
'--xpack.eventLog.enabled=true',
|
|
'--xpack.eventLog.logEntries=true',
|
|
'--xpack.eventLog.indexEntries=true',
|
|
'--xpack.task_manager.monitored_aggregated_stats_refresh_rate=5000',
|
|
'--xpack.task_manager.ephemeral_tasks.enabled=false',
|
|
'--xpack.task_manager.ephemeral_tasks.request_capacity=100',
|
|
...plugins.map(
|
|
(pluginDir) => `--plugin-path=${path.resolve(__dirname, 'plugins', pluginDir)}`
|
|
),
|
|
],
|
|
},
|
|
};
|
|
}
|