mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Do not initialize event stream until we log events (#155357)
## Summary This PR pauses event stream initalization until we set up events that we want to log. ### Checklist Delete any items that are not applicable to this PR. - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios ### For maintainers - [x] This was checked for breaking API changes and was [labeled appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
This commit is contained in:
parent
4b6dbdcd2c
commit
fd26017162
2 changed files with 40 additions and 26 deletions
|
@ -28,7 +28,7 @@ export interface CoreApi {
|
|||
|
||||
export interface CoreInitializerContext {
|
||||
logger: Logger;
|
||||
eventStream: EventStreamService;
|
||||
eventStream?: EventStreamService;
|
||||
}
|
||||
|
||||
export interface CoreSetup {
|
||||
|
@ -63,14 +63,20 @@ export class Core {
|
|||
}
|
||||
|
||||
private setupEventStream() {
|
||||
const eventStream = this.ctx.eventStream;
|
||||
|
||||
// TODO: This should be cleaned up and support added for all CRUD events.
|
||||
this.eventBus.on('deleteItemSuccess', (event) => {
|
||||
this.ctx.eventStream.addEvent({
|
||||
// TODO: add "subject" field to event
|
||||
predicate: ['delete'],
|
||||
// TODO: the `.contentId` should be easily available on most events.
|
||||
object: [event.contentTypeId, (event as any).contentId],
|
||||
// The work is tracked here: https://github.com/elastic/kibana/issues/153258
|
||||
// and here: https://github.com/elastic/kibana/issues/153260
|
||||
if (eventStream) {
|
||||
this.eventBus.on('deleteItemSuccess', (event) => {
|
||||
eventStream.addEvent({
|
||||
// TODO: add "subject" field to event
|
||||
predicate: ['delete'],
|
||||
// TODO: the `.contentId` should be easily available on most events.
|
||||
object: [event.contentTypeId, (event as any).contentId],
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ import {
|
|||
ContentManagementServerStart,
|
||||
SetupDependencies,
|
||||
} from './types';
|
||||
import { EventStreamService, EsEventStreamClientFactory } from './event_stream';
|
||||
import { EventStreamService } from './event_stream';
|
||||
import { procedureNames } from '../common/rpc';
|
||||
|
||||
export class ContentManagementPlugin
|
||||
|
@ -29,20 +29,22 @@ export class ContentManagementPlugin
|
|||
{
|
||||
private readonly logger: Logger;
|
||||
private readonly core: Core;
|
||||
readonly #eventStream: EventStreamService;
|
||||
readonly #eventStream?: EventStreamService;
|
||||
|
||||
constructor(initializerContext: PluginInitializerContext) {
|
||||
const kibanaVersion = initializerContext.env.packageInfo.version;
|
||||
|
||||
this.logger = initializerContext.logger.get();
|
||||
this.#eventStream = new EventStreamService({
|
||||
logger: this.logger,
|
||||
clientFactory: new EsEventStreamClientFactory({
|
||||
baseName: '.kibana',
|
||||
kibanaVersion,
|
||||
logger: this.logger,
|
||||
}),
|
||||
});
|
||||
|
||||
// TODO: Enable Event Stream once we ready to log events.
|
||||
// const kibanaVersion = initializerContext.env.packageInfo.version;
|
||||
// this.#eventStream = new EventStreamService({
|
||||
// logger: this.logger,
|
||||
// clientFactory: new EsEventStreamClientFactory({
|
||||
// baseName: '.kibana',
|
||||
// kibanaVersion,
|
||||
// logger: this.logger,
|
||||
// }),
|
||||
// });
|
||||
|
||||
this.core = new Core({
|
||||
logger: this.logger,
|
||||
eventStream: this.#eventStream,
|
||||
|
@ -50,7 +52,9 @@ export class ContentManagementPlugin
|
|||
}
|
||||
|
||||
public setup(core: CoreSetup) {
|
||||
this.#eventStream.setup({ core });
|
||||
if (this.#eventStream) {
|
||||
this.#eventStream.setup({ core });
|
||||
}
|
||||
|
||||
const { api: coreApi, contentRegistry } = this.core.setup();
|
||||
|
||||
|
@ -69,16 +73,20 @@ export class ContentManagementPlugin
|
|||
}
|
||||
|
||||
public start(core: CoreStart) {
|
||||
this.#eventStream.start();
|
||||
if (this.#eventStream) {
|
||||
this.#eventStream.start();
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
public async stop(): Promise<void> {
|
||||
try {
|
||||
await this.#eventStream.stop();
|
||||
} catch (e) {
|
||||
this.logger.error(`Error during event stream stop: ${e}`);
|
||||
if (this.#eventStream) {
|
||||
try {
|
||||
await this.#eventStream.stop();
|
||||
} catch (e) {
|
||||
this.logger.error(`Error during event stream stop: ${e}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue