mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 01:38:56 -04:00
[task manager] Kibana should start without task manager (#48568)
* [task manager] Kibana should not fail to start without task manager * Check for task manager in maps * Lower log level * Update task registration
This commit is contained in:
parent
c7a1c895b4
commit
58dbb130dc
9 changed files with 54 additions and 10 deletions
|
@ -18,6 +18,7 @@ export const lens: LegacyPluginInitializer = kibana => {
|
|||
return new kibana.Plugin({
|
||||
id: PLUGIN_ID,
|
||||
configPrefix: `xpack.${PLUGIN_ID}`,
|
||||
// task_manager could be required, but is only used for telemetry
|
||||
require: ['kibana', 'elasticsearch', 'xpack_main', 'interpreter', 'data'],
|
||||
publicDir: resolve(__dirname, 'public'),
|
||||
|
||||
|
|
|
@ -89,7 +89,11 @@ async function isTaskManagerReady(server: Server) {
|
|||
}
|
||||
|
||||
async function getLatestTaskState(server: Server) {
|
||||
const taskManager = server.plugins.task_manager!;
|
||||
const taskManager = server.plugins.task_manager;
|
||||
|
||||
if (!taskManager) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await taskManager.fetch({
|
||||
|
|
|
@ -45,7 +45,13 @@ export function initializeLensTelemetry(core: CoreSetup, { server }: { server: S
|
|||
}
|
||||
|
||||
function registerLensTelemetryTask(core: CoreSetup, { server }: { server: Server }) {
|
||||
const taskManager = server.plugins.task_manager!;
|
||||
const taskManager = server.plugins.task_manager;
|
||||
|
||||
if (!taskManager) {
|
||||
server.log(['debug', 'telemetry'], `Task manager is not available`);
|
||||
return;
|
||||
}
|
||||
|
||||
taskManager.registerTaskDefinitions({
|
||||
[TELEMETRY_TASK_TYPE]: {
|
||||
title: 'Lens telemetry fetch task',
|
||||
|
@ -62,6 +68,11 @@ function scheduleTasks(server: Server) {
|
|||
status: { plugin: { kbnServer: KbnServer } };
|
||||
}).status.plugin;
|
||||
|
||||
if (!taskManager) {
|
||||
server.log(['debug', 'telemetry'], `Task manager is not available`);
|
||||
return;
|
||||
}
|
||||
|
||||
kbnServer.afterPluginsInit(() => {
|
||||
// The code block below can't await directly within "afterPluginsInit"
|
||||
// callback due to circular dependency The server isn't "ready" until
|
||||
|
@ -71,14 +82,14 @@ function scheduleTasks(server: Server) {
|
|||
// function block.
|
||||
(async () => {
|
||||
try {
|
||||
await taskManager!.schedule({
|
||||
await taskManager.schedule({
|
||||
id: TASK_ID,
|
||||
taskType: TELEMETRY_TASK_TYPE,
|
||||
state: { byDate: {}, suggestionsByDate: {}, saved: {}, runs: 0 },
|
||||
params: {},
|
||||
});
|
||||
} catch (e) {
|
||||
server.log(['warning', 'telemetry'], `Error scheduling task, received ${e.message}`);
|
||||
server.log(['debug', 'telemetry'], `Error scheduling task, received ${e.message}`);
|
||||
}
|
||||
})();
|
||||
});
|
||||
|
|
|
@ -23,7 +23,8 @@ import _ from 'lodash';
|
|||
export function maps(kibana) {
|
||||
|
||||
return new kibana.Plugin({
|
||||
require: ['kibana', 'elasticsearch', 'xpack_main', 'tile_map', 'task_manager'],
|
||||
// task_manager could be required, but is only used for telemetry
|
||||
require: ['kibana', 'elasticsearch', 'xpack_main', 'tile_map'],
|
||||
id: APP_ID,
|
||||
configPrefix: 'xpack.maps',
|
||||
publicDir: resolve(__dirname, 'public'),
|
||||
|
|
|
@ -9,7 +9,7 @@ import { TASK_ID, scheduleTask, registerMapsTelemetryTask } from './telemetry_ta
|
|||
|
||||
export function initTelemetryCollection(server) {
|
||||
registerMapsTelemetryTask(server);
|
||||
scheduleTask(server, server.plugins.task_manager);
|
||||
scheduleTask(server);
|
||||
registerMapsUsageCollector(server);
|
||||
}
|
||||
|
||||
|
@ -21,6 +21,11 @@ async function isTaskManagerReady(server) {
|
|||
async function fetch(server) {
|
||||
let docs;
|
||||
const taskManager = server.plugins.task_manager;
|
||||
|
||||
if (!taskManager) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
({ docs } = await taskManager.fetch({
|
||||
query: {
|
||||
|
|
|
@ -10,7 +10,14 @@ const TELEMETRY_TASK_TYPE = 'maps_telemetry';
|
|||
|
||||
export const TASK_ID = `Maps-${TELEMETRY_TASK_TYPE}`;
|
||||
|
||||
export function scheduleTask(server, taskManager) {
|
||||
export function scheduleTask(server) {
|
||||
const taskManager = server.plugins.task_manager;
|
||||
|
||||
if (!taskManager) {
|
||||
server.log(['debug', 'telemetry'], `Task manager is not available`);
|
||||
return;
|
||||
}
|
||||
|
||||
const { kbnServer } = server.plugins.xpack_main.status.plugin;
|
||||
|
||||
kbnServer.afterPluginsInit(() => {
|
||||
|
@ -36,6 +43,12 @@ export function scheduleTask(server, taskManager) {
|
|||
|
||||
export function registerMapsTelemetryTask(server) {
|
||||
const taskManager = server.plugins.task_manager;
|
||||
|
||||
if (!taskManager) {
|
||||
server.log(['debug', 'telemetry'], `Task manager is not available`);
|
||||
return;
|
||||
}
|
||||
|
||||
taskManager.registerTaskDefinitions({
|
||||
[TELEMETRY_TASK_TYPE]: {
|
||||
title: 'Maps telemetry fetch task',
|
||||
|
|
|
@ -11,7 +11,7 @@ import { PLUGIN_ID } from './constants';
|
|||
export const ossTelemetry = (kibana) => {
|
||||
return new kibana.Plugin({
|
||||
id: PLUGIN_ID,
|
||||
require: ['elasticsearch', 'xpack_main', 'task_manager'],
|
||||
require: ['elasticsearch', 'xpack_main'],
|
||||
configPrefix: 'xpack.oss_telemetry',
|
||||
|
||||
init(server) {
|
||||
|
|
|
@ -14,7 +14,11 @@ async function isTaskManagerReady(server: HapiServer) {
|
|||
}
|
||||
|
||||
async function fetch(server: HapiServer) {
|
||||
const taskManager = server.plugins.task_manager!;
|
||||
const taskManager = server.plugins.task_manager;
|
||||
|
||||
if (!taskManager) {
|
||||
return null;
|
||||
}
|
||||
|
||||
let docs;
|
||||
try {
|
||||
|
|
|
@ -11,6 +11,11 @@ import { visualizationsTaskRunner } from './visualizations/task_runner';
|
|||
export function registerTasks(server: HapiServer) {
|
||||
const taskManager = server.plugins.task_manager;
|
||||
|
||||
if (!taskManager) {
|
||||
server.log(['debug', 'telemetry'], `Task manager is not available`);
|
||||
return;
|
||||
}
|
||||
|
||||
taskManager.registerTaskDefinitions({
|
||||
[VIS_TELEMETRY_TASK]: {
|
||||
title: 'X-Pack telemetry calculator for Visualizations',
|
||||
|
@ -43,7 +48,7 @@ export function scheduleTasks(server: HapiServer) {
|
|||
state: { stats: {}, runs: 0 },
|
||||
});
|
||||
} catch (e) {
|
||||
server.log(['warning', 'telemetry'], `Error scheduling task, received ${e.message}`);
|
||||
server.log(['debug', 'telemetry'], `Error scheduling task, received ${e.message}`);
|
||||
}
|
||||
})();
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue