mirror of
https://github.com/Unleash/unleash.git
synced 2025-10-27 11:02:16 +01:00
feat: measure time in release plan read model (#10788)
This commit is contained in:
parent
aaf8e37d45
commit
c74ca0d8ed
@ -143,7 +143,7 @@ export const createFeatureToggleService = (
|
|||||||
|
|
||||||
const resourceLimitsService = new ResourceLimitsService(config);
|
const resourceLimitsService = new ResourceLimitsService(config);
|
||||||
|
|
||||||
const releasePlanReadModel = new ReleasePlanReadModel(db);
|
const releasePlanReadModel = new ReleasePlanReadModel(db, eventBus);
|
||||||
|
|
||||||
const featureToggleService = new FeatureToggleService(
|
const featureToggleService = new FeatureToggleService(
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { ulid } from 'ulidx';
|
import { ulid } from 'ulidx';
|
||||||
|
import { EventEmitter } from 'events';
|
||||||
import dbInit, {
|
import dbInit, {
|
||||||
type ITestDb,
|
type ITestDb,
|
||||||
} from '../../../test/e2e/helpers/database-init.js';
|
} from '../../../test/e2e/helpers/database-init.js';
|
||||||
@ -16,10 +17,12 @@ let featureToggleStore: IFeatureToggleStore;
|
|||||||
let releasePlanStore: ReleasePlanStore;
|
let releasePlanStore: ReleasePlanStore;
|
||||||
let releasePlanMilestoneStore: ReleasePlanMilestoneStore;
|
let releasePlanMilestoneStore: ReleasePlanMilestoneStore;
|
||||||
let featureEnvironmentStore: IFeatureEnvironmentStore;
|
let featureEnvironmentStore: IFeatureEnvironmentStore;
|
||||||
|
let eventBus: EventEmitter;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
db = await dbInit('release_plan_read_model', getLogger);
|
db = await dbInit('release_plan_read_model', getLogger);
|
||||||
releasePlanReadModel = new ReleasePlanReadModel(db.rawDatabase);
|
eventBus = new EventEmitter();
|
||||||
|
releasePlanReadModel = new ReleasePlanReadModel(db.rawDatabase, eventBus);
|
||||||
featureToggleStore = db.stores.featureToggleStore;
|
featureToggleStore = db.stores.featureToggleStore;
|
||||||
releasePlanStore = db.stores.releasePlanStore;
|
releasePlanStore = db.stores.releasePlanStore;
|
||||||
releasePlanMilestoneStore = db.stores.releasePlanMilestoneStore;
|
releasePlanMilestoneStore = db.stores.releasePlanMilestoneStore;
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
import type { Db } from '../../db/db.js';
|
import type { Db } from '../../db/db.js';
|
||||||
import type { IReleasePlanReadModel } from './release-plan-read-model-type.js';
|
import type { IReleasePlanReadModel } from './release-plan-read-model-type.js';
|
||||||
import type { ReleasePlan } from './release-plan.js';
|
import type { ReleasePlan } from './release-plan.js';
|
||||||
|
import metricsHelper from '../../util/metrics-helper.js';
|
||||||
|
import type EventEmitter from 'events';
|
||||||
|
|
||||||
const TABLE = 'release_plan_definitions';
|
const TABLE = 'release_plan_definitions';
|
||||||
|
|
||||||
@ -140,15 +142,24 @@ const processReleasePlanRows = (templateRows): ReleasePlan[] =>
|
|||||||
export class ReleasePlanReadModel implements IReleasePlanReadModel {
|
export class ReleasePlanReadModel implements IReleasePlanReadModel {
|
||||||
private db: Db;
|
private db: Db;
|
||||||
|
|
||||||
constructor(db: Db) {
|
private timer: Function;
|
||||||
|
|
||||||
|
constructor(db: Db, eventBus: EventEmitter) {
|
||||||
this.db = db;
|
this.db = db;
|
||||||
|
this.timer = (action: string) =>
|
||||||
|
metricsHelper.wrapTimer(eventBus, 'db_time', {
|
||||||
|
store: 'release-plan-read-model',
|
||||||
|
action,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async getReleasePlans(
|
async getReleasePlans(
|
||||||
featureName: string,
|
featureName: string,
|
||||||
environments: string[],
|
environments: string[],
|
||||||
): Promise<Record<string, ReleasePlan[]>> {
|
): Promise<Record<string, ReleasePlan[]>> {
|
||||||
|
const endTimer = this.timer('getReleasePlans');
|
||||||
if (environments.length === 0) {
|
if (environments.length === 0) {
|
||||||
|
endTimer();
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -193,6 +204,7 @@ export class ReleasePlanReadModel implements IReleasePlanReadModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
endTimer();
|
||||||
return plansByEnvironment;
|
return plansByEnvironment;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user