memento-mcp-server 1.15.0 → 1.16.0-a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/domains/relation/tools/visualize-relations-tool.d.ts +2 -2
- package/dist/infrastructure/database/database/migration/migrations/009-quality-assurance-schema.d.ts +60 -0
- package/dist/infrastructure/database/database/migration/migrations/009-quality-assurance-schema.d.ts.map +1 -0
- package/dist/infrastructure/database/database/migration/migrations/009-quality-assurance-schema.js +276 -0
- package/dist/infrastructure/database/database/migration/migrations/009-quality-assurance-schema.js.map +1 -0
- package/dist/infrastructure/database/database/migration/migrations/009-quality-assurance-schema.sql +128 -0
- package/dist/infrastructure/scheduler/batch-scheduler.d.ts +17 -0
- package/dist/infrastructure/scheduler/batch-scheduler.d.ts.map +1 -1
- package/dist/infrastructure/scheduler/batch-scheduler.js +124 -0
- package/dist/infrastructure/scheduler/batch-scheduler.js.map +1 -1
- package/dist/infrastructure/scheduler/jobs/quality-measurement-batch-job.d.ts +108 -0
- package/dist/infrastructure/scheduler/jobs/quality-measurement-batch-job.d.ts.map +1 -0
- package/dist/infrastructure/scheduler/jobs/quality-measurement-batch-job.js +184 -0
- package/dist/infrastructure/scheduler/jobs/quality-measurement-batch-job.js.map +1 -0
- package/dist/server/http-server.d.ts.map +1 -1
- package/dist/server/http-server.js +3 -0
- package/dist/server/http-server.js.map +1 -1
- package/dist/server/routes/quality.routes.d.ts +14 -0
- package/dist/server/routes/quality.routes.d.ts.map +1 -0
- package/dist/server/routes/quality.routes.js +460 -0
- package/dist/server/routes/quality.routes.js.map +1 -0
- package/dist/services/quality-assurance/quality-assurance-service.d.ts +207 -0
- package/dist/services/quality-assurance/quality-assurance-service.d.ts.map +1 -0
- package/dist/services/quality-assurance/quality-assurance-service.js +247 -0
- package/dist/services/quality-assurance/quality-assurance-service.js.map +1 -0
- package/dist/services/quality-assurance/quality-evaluator.d.ts +163 -0
- package/dist/services/quality-assurance/quality-evaluator.d.ts.map +1 -0
- package/dist/services/quality-assurance/quality-evaluator.js +256 -0
- package/dist/services/quality-assurance/quality-evaluator.js.map +1 -0
- package/dist/services/quality-assurance/quality-metrics-collector.d.ts +219 -0
- package/dist/services/quality-assurance/quality-metrics-collector.d.ts.map +1 -0
- package/dist/services/quality-assurance/quality-metrics-collector.js +725 -0
- package/dist/services/quality-assurance/quality-metrics-collector.js.map +1 -0
- package/dist/services/quality-assurance/quality-recorder.d.ts +108 -0
- package/dist/services/quality-assurance/quality-recorder.d.ts.map +1 -0
- package/dist/services/quality-assurance/quality-recorder.js +281 -0
- package/dist/services/quality-assurance/quality-recorder.js.map +1 -0
- package/dist/services/quality-assurance/quality-reporter.d.ts +189 -0
- package/dist/services/quality-assurance/quality-reporter.d.ts.map +1 -0
- package/dist/services/quality-assurance/quality-reporter.js +558 -0
- package/dist/services/quality-assurance/quality-reporter.js.map +1 -0
- package/dist/services/quality-assurance/quality-threshold-manager.d.ts +102 -0
- package/dist/services/quality-assurance/quality-threshold-manager.d.ts.map +1 -0
- package/dist/services/quality-assurance/quality-threshold-manager.js +252 -0
- package/dist/services/quality-assurance/quality-threshold-manager.js.map +1 -0
- package/dist/test/helpers/search-quality-metrics.d.ts +96 -0
- package/dist/test/helpers/search-quality-metrics.d.ts.map +1 -0
- package/dist/test/helpers/search-quality-metrics.js +185 -0
- package/dist/test/helpers/search-quality-metrics.js.map +1 -0
- package/dist/test/helpers/vector-search-quality-metrics.d.ts +1287 -0
- package/dist/test/helpers/vector-search-quality-metrics.d.ts.map +1 -0
- package/dist/test/helpers/vector-search-quality-metrics.js +2214 -0
- package/dist/test/helpers/vector-search-quality-metrics.js.map +1 -0
- package/package.json +4 -1
- package/scripts/quality-report.ts +166 -0
- package/scripts/quality-thresholds.ts +279 -0
|
@@ -17,6 +17,7 @@ import { FileLogger } from './file-logger.js';
|
|
|
17
17
|
import { RelationValidatorExecutor } from './relation-validator-executor.js';
|
|
18
18
|
import { tripleExtractionLogger } from '../logging/triple-extraction-logger.js';
|
|
19
19
|
import { TripleExtractionBatchJob } from './jobs/triple-extraction-batch-job.js';
|
|
20
|
+
import { QualityMeasurementBatchJob } from './jobs/quality-measurement-batch-job.js';
|
|
20
21
|
export class BatchScheduler {
|
|
21
22
|
config;
|
|
22
23
|
forgettingService;
|
|
@@ -37,6 +38,7 @@ export class BatchScheduler {
|
|
|
37
38
|
fileLogger;
|
|
38
39
|
relationValidatorExecutor;
|
|
39
40
|
tripleExtractionBatchJob = null;
|
|
41
|
+
qualityMeasurementBatchJob = null;
|
|
40
42
|
constructor(config, dependencies) {
|
|
41
43
|
this.config = {
|
|
42
44
|
cleanupInterval: 60 * 60 * 1000, // 1시간
|
|
@@ -53,6 +55,8 @@ export class BatchScheduler {
|
|
|
53
55
|
tripleExtractionHour: undefined, // 시간 지정 안 함 (간격 기반 실행)
|
|
54
56
|
tripleExtractionBatchSize: 10, // 배치 크기 10개
|
|
55
57
|
tripleExtractionTimeout: 30 * 1000, // 30초
|
|
58
|
+
qualityMeasurementInterval: 24 * 60 * 60 * 1000, // 24시간 (일일)
|
|
59
|
+
qualityMeasurementHour: undefined, // 시간 지정 안 함 (간격 기반 실행)
|
|
56
60
|
maxBatchSize: 1000,
|
|
57
61
|
enableLogging: true,
|
|
58
62
|
enableNotifications: false,
|
|
@@ -138,6 +142,8 @@ export class BatchScheduler {
|
|
|
138
142
|
this.scheduleJob('log_rotation', this.config.logRotationInterval, async () => { await this.runLogRotation(); }, 5);
|
|
139
143
|
// Triple 추출 배치 작업 스케줄링 (PRD 6.1)
|
|
140
144
|
this.scheduleTripleExtractionBatch();
|
|
145
|
+
// 품질 측정 배치 작업 스케줄링 (PRD FR-5.6)
|
|
146
|
+
this.scheduleQualityMeasurement();
|
|
141
147
|
// 작업 큐 처리 시작
|
|
142
148
|
this.startJobProcessor();
|
|
143
149
|
this.log('BatchScheduler started', {
|
|
@@ -1136,6 +1142,124 @@ export class BatchScheduler {
|
|
|
1136
1142
|
);
|
|
1137
1143
|
}
|
|
1138
1144
|
}
|
|
1145
|
+
/**
|
|
1146
|
+
* 품질 측정 배치 작업 스케줄링
|
|
1147
|
+
*
|
|
1148
|
+
* PRD FR-5.6: 일일 품질 측정 배치 작업
|
|
1149
|
+
* - 기본: 24시간마다 실행
|
|
1150
|
+
* - 특정 시간 지정 시: 해당 시간에만 실행
|
|
1151
|
+
*/
|
|
1152
|
+
scheduleQualityMeasurement() {
|
|
1153
|
+
if (this.config.qualityMeasurementHour !== undefined) {
|
|
1154
|
+
// 특정 시간에만 실행 (예: 매일 새벽 3시)
|
|
1155
|
+
const checkAndRun = () => {
|
|
1156
|
+
const now = new Date();
|
|
1157
|
+
const currentHour = now.getHours();
|
|
1158
|
+
// 지정된 시간에 실행
|
|
1159
|
+
if (currentHour === this.config.qualityMeasurementHour) {
|
|
1160
|
+
// 이미 오늘 실행했는지 확인 (lastExecution 체크)
|
|
1161
|
+
const lastExecution = this.lastExecution.get('quality_measurement_batch');
|
|
1162
|
+
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|
1163
|
+
if (!lastExecution || lastExecution < today) {
|
|
1164
|
+
// 큐를 통해 실행하여 maxConcurrentJobs, 타임아웃, 재시도, lastExecution 기록이 적용되도록 함 (중복 방지 포함)
|
|
1165
|
+
this.addJobToQueue('quality_measurement_batch', async () => { await this.runQualityMeasurementBatch(); }, 7, // 우선순위 7 (다른 배치 작업보다 낮은 우선순위)
|
|
1166
|
+
0);
|
|
1167
|
+
}
|
|
1168
|
+
}
|
|
1169
|
+
};
|
|
1170
|
+
// 매 시간마다 체크
|
|
1171
|
+
const checkInterval = 60 * 60 * 1000; // 1시간마다 체크
|
|
1172
|
+
const intervalId = setInterval(checkAndRun, checkInterval);
|
|
1173
|
+
// intervals Map에 저장하여 stop()에서 정리 가능하도록 함
|
|
1174
|
+
this.intervals.set('quality_measurement_batch', intervalId);
|
|
1175
|
+
// 즉시 한 번 체크 (현재 시간이 지정된 시간이면 실행)
|
|
1176
|
+
checkAndRun();
|
|
1177
|
+
}
|
|
1178
|
+
else {
|
|
1179
|
+
// interval마다 실행 (기본: 24시간마다)
|
|
1180
|
+
// scheduleJob()은 내부적으로 addJobToQueue()를 사용하여 maxConcurrentJobs 제한 및 중복 방지 적용
|
|
1181
|
+
// 우선순위 7 설정: 다른 배치 작업보다 낮은 우선순위
|
|
1182
|
+
this.scheduleJob('quality_measurement_batch', this.config.qualityMeasurementInterval, async () => { await this.runQualityMeasurementBatch(); }, 7 // 우선순위 7 (다른 배치 작업보다 낮은 우선순위)
|
|
1183
|
+
);
|
|
1184
|
+
}
|
|
1185
|
+
}
|
|
1186
|
+
/**
|
|
1187
|
+
* 품질 측정 배치 작업 실행
|
|
1188
|
+
*
|
|
1189
|
+
* PRD FR-5.6: 일일 품질 측정 배치 작업
|
|
1190
|
+
*/
|
|
1191
|
+
async runQualityMeasurementBatch() {
|
|
1192
|
+
const startTime = new Date();
|
|
1193
|
+
const result = {
|
|
1194
|
+
jobType: 'quality_measurement_batch',
|
|
1195
|
+
startTime,
|
|
1196
|
+
endTime: new Date(),
|
|
1197
|
+
duration: 0,
|
|
1198
|
+
success: false,
|
|
1199
|
+
processed: 0,
|
|
1200
|
+
errors: [],
|
|
1201
|
+
warnings: []
|
|
1202
|
+
};
|
|
1203
|
+
try {
|
|
1204
|
+
if (!this.db) {
|
|
1205
|
+
throw new Error('Database not initialized');
|
|
1206
|
+
}
|
|
1207
|
+
// QualityMeasurementBatchJob 초기화 (아직 초기화되지 않은 경우)
|
|
1208
|
+
if (!this.qualityMeasurementBatchJob) {
|
|
1209
|
+
this.qualityMeasurementBatchJob = new QualityMeasurementBatchJob({
|
|
1210
|
+
measurementType: 'batch',
|
|
1211
|
+
context: 'default',
|
|
1212
|
+
record: true,
|
|
1213
|
+
generateReport: true,
|
|
1214
|
+
reportFormat: 'markdown',
|
|
1215
|
+
timeout: this.config.jobTimeout
|
|
1216
|
+
});
|
|
1217
|
+
}
|
|
1218
|
+
// 배치 작업 실행
|
|
1219
|
+
const batchResult = await this.qualityMeasurementBatchJob.execute(this.db);
|
|
1220
|
+
// 결과 변환
|
|
1221
|
+
result.endTime = new Date();
|
|
1222
|
+
result.duration = result.endTime.getTime() - startTime.getTime();
|
|
1223
|
+
result.success = batchResult.success;
|
|
1224
|
+
result.processed = batchResult.processed;
|
|
1225
|
+
result.errors = batchResult.errors;
|
|
1226
|
+
result.warnings = batchResult.warnings;
|
|
1227
|
+
result.details = batchResult.details;
|
|
1228
|
+
// 실행 기록 업데이트
|
|
1229
|
+
this.lastExecution.set('quality_measurement_batch', new Date());
|
|
1230
|
+
this.totalExecutions.set('quality_measurement_batch', (this.totalExecutions.get('quality_measurement_batch') || 0) + 1);
|
|
1231
|
+
// 로깅
|
|
1232
|
+
if (batchResult.success) {
|
|
1233
|
+
this.log('Quality measurement batch job completed', {
|
|
1234
|
+
duration: result.duration,
|
|
1235
|
+
processed: result.processed,
|
|
1236
|
+
overallStatus: batchResult.details.overallStatus,
|
|
1237
|
+
totalMetrics: batchResult.details.totalMetrics,
|
|
1238
|
+
passedMetrics: batchResult.details.passedMetrics,
|
|
1239
|
+
failedMetrics: batchResult.details.failedMetrics,
|
|
1240
|
+
warningMetrics: batchResult.details.warningMetrics
|
|
1241
|
+
});
|
|
1242
|
+
}
|
|
1243
|
+
else {
|
|
1244
|
+
this.log('Quality measurement batch job failed', {
|
|
1245
|
+
duration: result.duration,
|
|
1246
|
+
errors: result.errors
|
|
1247
|
+
}, 'error');
|
|
1248
|
+
}
|
|
1249
|
+
return result;
|
|
1250
|
+
}
|
|
1251
|
+
catch (error) {
|
|
1252
|
+
result.endTime = new Date();
|
|
1253
|
+
result.duration = result.endTime.getTime() - startTime.getTime();
|
|
1254
|
+
result.success = false;
|
|
1255
|
+
result.errors.push(error instanceof Error ? error.message : String(error));
|
|
1256
|
+
this.log('Quality measurement batch job error', {
|
|
1257
|
+
duration: result.duration,
|
|
1258
|
+
error: error instanceof Error ? error.message : String(error)
|
|
1259
|
+
}, 'error');
|
|
1260
|
+
return result;
|
|
1261
|
+
}
|
|
1262
|
+
}
|
|
1139
1263
|
/**
|
|
1140
1264
|
* 로그 로테이션 실행
|
|
1141
1265
|
* 30일 이상 된 Triple 추출 로그 파일을 삭제합니다.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-scheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/batch-scheduler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"batch-scheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/batch-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 품질 측정 배치 작업
|
|
3
|
+
*
|
|
4
|
+
* 일일 품질 측정을 수행하는 배치 작업입니다.
|
|
5
|
+
*
|
|
6
|
+
* 주요 기능:
|
|
7
|
+
* - 모든 네임스페이스에 대한 품질 측정 실행
|
|
8
|
+
* - 측정 결과 기록 및 리포트 생성
|
|
9
|
+
* - 경고 및 실패 지표 감지
|
|
10
|
+
* - 로깅 및 통계 수집
|
|
11
|
+
*
|
|
12
|
+
* PRD FR-5.6: 일일 품질 측정 배치 작업 구현
|
|
13
|
+
*/
|
|
14
|
+
import Database from 'better-sqlite3';
|
|
15
|
+
import { QualityAssuranceService } from '../../../services/quality-assurance/quality-assurance-service.js';
|
|
16
|
+
import type { BatchJobResult } from '../batch-scheduler.js';
|
|
17
|
+
/**
|
|
18
|
+
* 품질 측정 배치 작업 설정
|
|
19
|
+
*/
|
|
20
|
+
export interface QualityMeasurementBatchJobConfig {
|
|
21
|
+
/**
|
|
22
|
+
* 측정 타입 (기본값: 'batch')
|
|
23
|
+
*/
|
|
24
|
+
measurementType?: 'batch' | 'test' | 'manual';
|
|
25
|
+
/**
|
|
26
|
+
* 측정 컨텍스트 (기본값: 'default')
|
|
27
|
+
*/
|
|
28
|
+
context?: string;
|
|
29
|
+
/**
|
|
30
|
+
* 측정할 네임스페이스 목록 (지정하지 않으면 모든 네임스페이스)
|
|
31
|
+
*/
|
|
32
|
+
namespaces?: string[] | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* 측정 결과를 기록할지 여부 (기본값: true)
|
|
35
|
+
*/
|
|
36
|
+
record?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* 리포트 생성 여부 (기본값: true)
|
|
39
|
+
*/
|
|
40
|
+
generateReport?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* 리포트 형식 (기본값: 'markdown')
|
|
43
|
+
*/
|
|
44
|
+
reportFormat?: 'markdown' | 'json' | 'html';
|
|
45
|
+
/**
|
|
46
|
+
* 작업 타임아웃 (밀리초, 기본값: 5분)
|
|
47
|
+
*/
|
|
48
|
+
timeout?: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 품질 측정 배치 작업 결과
|
|
52
|
+
*/
|
|
53
|
+
export interface QualityMeasurementBatchResult extends BatchJobResult {
|
|
54
|
+
jobType: 'quality_measurement_batch';
|
|
55
|
+
details: {
|
|
56
|
+
/**
|
|
57
|
+
* 측정된 네임스페이스 수
|
|
58
|
+
*/
|
|
59
|
+
namespacesMeasured: number;
|
|
60
|
+
/**
|
|
61
|
+
* 전체 지표 수
|
|
62
|
+
*/
|
|
63
|
+
totalMetrics: number;
|
|
64
|
+
/**
|
|
65
|
+
* 통과한 지표 수
|
|
66
|
+
*/
|
|
67
|
+
passedMetrics: number;
|
|
68
|
+
/**
|
|
69
|
+
* 실패한 지표 수
|
|
70
|
+
*/
|
|
71
|
+
failedMetrics: number;
|
|
72
|
+
/**
|
|
73
|
+
* 경고 지표 수
|
|
74
|
+
*/
|
|
75
|
+
warningMetrics: number;
|
|
76
|
+
/**
|
|
77
|
+
* 전체 상태
|
|
78
|
+
*/
|
|
79
|
+
overallStatus: 'pass' | 'warning' | 'fail';
|
|
80
|
+
/**
|
|
81
|
+
* 리포트 파일 경로 (생성된 경우)
|
|
82
|
+
*/
|
|
83
|
+
reportFilePath?: string;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 품질 측정 배치 작업 클래스
|
|
88
|
+
*/
|
|
89
|
+
export declare class QualityMeasurementBatchJob {
|
|
90
|
+
private config;
|
|
91
|
+
private qualityService;
|
|
92
|
+
constructor(config?: QualityMeasurementBatchJobConfig, dependencies?: {
|
|
93
|
+
qualityService?: QualityAssuranceService;
|
|
94
|
+
});
|
|
95
|
+
/**
|
|
96
|
+
* 배치 작업 실행
|
|
97
|
+
*
|
|
98
|
+
* PRD FR-5.6: 일일 품질 측정 배치 작업
|
|
99
|
+
* - 모든 네임스페이스에 대한 품질 측정 실행
|
|
100
|
+
* - 측정 결과 기록 및 리포트 생성
|
|
101
|
+
* - 경고 및 실패 지표 감지
|
|
102
|
+
*
|
|
103
|
+
* @param db 데이터베이스 연결
|
|
104
|
+
* @returns 배치 작업 결과
|
|
105
|
+
*/
|
|
106
|
+
execute(db: Database.Database): Promise<QualityMeasurementBatchResult>;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=quality-measurement-batch-job.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-measurement-batch-job.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/scheduler/jobs/quality-measurement-batch-job.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kEAAkE,CAAC;AAE3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAE9C;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAElC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,YAAY,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IAE5C;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,cAAc;IACnE,OAAO,EAAE,2BAA2B,CAAC;IACrC,OAAO,EAAE;QACP;;WAEG;QACH,kBAAkB,EAAE,MAAM,CAAC;QAE3B;;WAEG;QACH,YAAY,EAAE,MAAM,CAAC;QAErB;;WAEG;QACH,aAAa,EAAE,MAAM,CAAC;QAEtB;;WAEG;QACH,aAAa,EAAE,MAAM,CAAC;QAEtB;;WAEG;QACH,cAAc,EAAE,MAAM,CAAC;QAEvB;;WAEG;QACH,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;QAE3C;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,MAAM,CAEZ;IACF,OAAO,CAAC,cAAc,CAAwC;gBAG5D,MAAM,CAAC,EAAE,gCAAgC,EACzC,YAAY,CAAC,EAAE;QACb,cAAc,CAAC,EAAE,uBAAuB,CAAC;KAC1C;IAiBH;;;;;;;;;;OAUG;IACG,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,6BAA6B,CAAC;CAsJ7E"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 품질 측정 배치 작업
|
|
3
|
+
*
|
|
4
|
+
* 일일 품질 측정을 수행하는 배치 작업입니다.
|
|
5
|
+
*
|
|
6
|
+
* 주요 기능:
|
|
7
|
+
* - 모든 네임스페이스에 대한 품질 측정 실행
|
|
8
|
+
* - 측정 결과 기록 및 리포트 생성
|
|
9
|
+
* - 경고 및 실패 지표 감지
|
|
10
|
+
* - 로깅 및 통계 수집
|
|
11
|
+
*
|
|
12
|
+
* PRD FR-5.6: 일일 품질 측정 배치 작업 구현
|
|
13
|
+
*/
|
|
14
|
+
import Database from 'better-sqlite3';
|
|
15
|
+
import { QualityAssuranceService } from '../../../services/quality-assurance/quality-assurance-service.js';
|
|
16
|
+
import { logger } from '../../../shared/utils/logger.js';
|
|
17
|
+
/**
|
|
18
|
+
* 품질 측정 배치 작업 클래스
|
|
19
|
+
*/
|
|
20
|
+
export class QualityMeasurementBatchJob {
|
|
21
|
+
config;
|
|
22
|
+
qualityService = null;
|
|
23
|
+
constructor(config, dependencies) {
|
|
24
|
+
this.config = {
|
|
25
|
+
measurementType: config?.measurementType ?? 'batch',
|
|
26
|
+
context: config?.context ?? 'default',
|
|
27
|
+
namespaces: config?.namespaces,
|
|
28
|
+
record: config?.record ?? true,
|
|
29
|
+
generateReport: config?.generateReport ?? true,
|
|
30
|
+
reportFormat: config?.reportFormat ?? 'markdown',
|
|
31
|
+
timeout: config?.timeout ?? 300000, // 5분
|
|
32
|
+
...config
|
|
33
|
+
};
|
|
34
|
+
// QualityAssuranceService는 execute 시점에 db로부터 생성
|
|
35
|
+
this.qualityService = dependencies?.qualityService ?? null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* 배치 작업 실행
|
|
39
|
+
*
|
|
40
|
+
* PRD FR-5.6: 일일 품질 측정 배치 작업
|
|
41
|
+
* - 모든 네임스페이스에 대한 품질 측정 실행
|
|
42
|
+
* - 측정 결과 기록 및 리포트 생성
|
|
43
|
+
* - 경고 및 실패 지표 감지
|
|
44
|
+
*
|
|
45
|
+
* @param db 데이터베이스 연결
|
|
46
|
+
* @returns 배치 작업 결과
|
|
47
|
+
*/
|
|
48
|
+
async execute(db) {
|
|
49
|
+
const startTime = new Date();
|
|
50
|
+
const timeoutDeadline = startTime.getTime() + this.config.timeout;
|
|
51
|
+
const result = {
|
|
52
|
+
jobType: 'quality_measurement_batch',
|
|
53
|
+
startTime,
|
|
54
|
+
endTime: new Date(),
|
|
55
|
+
duration: 0,
|
|
56
|
+
success: false,
|
|
57
|
+
processed: 0,
|
|
58
|
+
errors: [],
|
|
59
|
+
warnings: [],
|
|
60
|
+
details: {
|
|
61
|
+
namespacesMeasured: 0,
|
|
62
|
+
totalMetrics: 0,
|
|
63
|
+
passedMetrics: 0,
|
|
64
|
+
failedMetrics: 0,
|
|
65
|
+
warningMetrics: 0,
|
|
66
|
+
overallStatus: 'pass'
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
try {
|
|
70
|
+
// QualityAssuranceService 초기화
|
|
71
|
+
if (!this.qualityService) {
|
|
72
|
+
this.qualityService = new QualityAssuranceService(db);
|
|
73
|
+
}
|
|
74
|
+
// 타임아웃 체크
|
|
75
|
+
if (Date.now() > timeoutDeadline) {
|
|
76
|
+
throw new Error('Quality measurement batch job timeout before execution');
|
|
77
|
+
}
|
|
78
|
+
// PRD FR-5.6: 배치 작업 로깅 - 시작 로깅
|
|
79
|
+
logger.info('품질 측정 배치 작업 시작', {
|
|
80
|
+
measurement_type: this.config.measurementType,
|
|
81
|
+
context: this.config.context,
|
|
82
|
+
namespaces: this.config.namespaces || 'all'
|
|
83
|
+
});
|
|
84
|
+
// 품질 측정 실행
|
|
85
|
+
const measurementResult = await this.qualityService.measureQuality({
|
|
86
|
+
measurement_type: this.config.measurementType,
|
|
87
|
+
context: this.config.context,
|
|
88
|
+
namespaces: this.config.namespaces || undefined,
|
|
89
|
+
record: this.config.record
|
|
90
|
+
});
|
|
91
|
+
// 타임아웃 체크
|
|
92
|
+
if (Date.now() > timeoutDeadline) {
|
|
93
|
+
throw new Error('Quality measurement batch job timeout during execution');
|
|
94
|
+
}
|
|
95
|
+
// 측정 결과 분석
|
|
96
|
+
const namespacesMeasured = measurementResult.namespaces.length || 4; // search, relation, consolidation, storage
|
|
97
|
+
// QualityAssuranceService의 measureQuality는 평가 결과를 반환하므로
|
|
98
|
+
// 평가 결과에서 지표 정보 추출
|
|
99
|
+
const evaluationResults = measurementResult.evaluation_results || [];
|
|
100
|
+
const totalMetrics = evaluationResults.reduce((sum, er) => sum + er.totalCount, 0);
|
|
101
|
+
const passedMetrics = evaluationResults.reduce((sum, er) => sum + er.passedCount, 0);
|
|
102
|
+
const failedMetrics = evaluationResults.reduce((sum, er) => sum + er.failedCount, 0);
|
|
103
|
+
const warningMetrics = evaluationResults.reduce((sum, er) => sum + er.warnings.length, 0);
|
|
104
|
+
// 전체 상태 결정
|
|
105
|
+
let overallStatus = 'pass';
|
|
106
|
+
if (failedMetrics > 0) {
|
|
107
|
+
overallStatus = 'fail';
|
|
108
|
+
}
|
|
109
|
+
else if (warningMetrics > 0) {
|
|
110
|
+
overallStatus = 'warning';
|
|
111
|
+
}
|
|
112
|
+
// 리포트 생성 (옵션)
|
|
113
|
+
let reportFilePath;
|
|
114
|
+
if (this.config.generateReport) {
|
|
115
|
+
try {
|
|
116
|
+
const report = await this.qualityService.generateReport({
|
|
117
|
+
format: this.config.reportFormat,
|
|
118
|
+
context: this.config.context,
|
|
119
|
+
namespace: this.config.namespaces?.[0] // 첫 번째 네임스페이스만 필터링 (또는 전체)
|
|
120
|
+
});
|
|
121
|
+
// 리포트 파일 경로는 QualityReporter의 saveReportToFile에서 자동 생성됨
|
|
122
|
+
// 로그에서 확인 가능하므로 여기서는 undefined로 설정
|
|
123
|
+
reportFilePath = undefined;
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
127
|
+
result.warnings.push(`리포트 생성 실패: ${errorMessage}`);
|
|
128
|
+
logger.warn('품질 리포트 생성 실패', {
|
|
129
|
+
error: errorMessage
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// 결과 업데이트
|
|
134
|
+
result.details = {
|
|
135
|
+
namespacesMeasured,
|
|
136
|
+
totalMetrics,
|
|
137
|
+
passedMetrics,
|
|
138
|
+
failedMetrics,
|
|
139
|
+
warningMetrics,
|
|
140
|
+
overallStatus,
|
|
141
|
+
reportFilePath
|
|
142
|
+
};
|
|
143
|
+
result.processed = totalMetrics;
|
|
144
|
+
result.success = overallStatus !== 'fail';
|
|
145
|
+
result.endTime = new Date();
|
|
146
|
+
result.duration = result.endTime.getTime() - startTime.getTime();
|
|
147
|
+
// 경고 메시지 추가
|
|
148
|
+
if (warningMetrics > 0) {
|
|
149
|
+
result.warnings.push(`${warningMetrics}개의 경고 지표가 있습니다`);
|
|
150
|
+
}
|
|
151
|
+
if (failedMetrics > 0) {
|
|
152
|
+
result.warnings.push(`${failedMetrics}개의 실패 지표가 있습니다`);
|
|
153
|
+
}
|
|
154
|
+
// PRD FR-5.6: 배치 작업 로깅 - 완료 로깅
|
|
155
|
+
logger.info('품질 측정 배치 작업 완료', {
|
|
156
|
+
measurement_type: this.config.measurementType,
|
|
157
|
+
context: this.config.context,
|
|
158
|
+
duration: result.duration,
|
|
159
|
+
totalMetrics,
|
|
160
|
+
passedMetrics,
|
|
161
|
+
failedMetrics,
|
|
162
|
+
warningMetrics,
|
|
163
|
+
overallStatus
|
|
164
|
+
});
|
|
165
|
+
return result;
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
result.endTime = new Date();
|
|
169
|
+
result.duration = result.endTime.getTime() - startTime.getTime();
|
|
170
|
+
result.success = false;
|
|
171
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
172
|
+
result.errors.push(errorMessage);
|
|
173
|
+
// PRD FR-5.6: 배치 작업 로깅 - 에러 로깅
|
|
174
|
+
logger.error('품질 측정 배치 작업 실패', {
|
|
175
|
+
measurement_type: this.config.measurementType,
|
|
176
|
+
context: this.config.context,
|
|
177
|
+
duration: result.duration,
|
|
178
|
+
error: errorMessage
|
|
179
|
+
});
|
|
180
|
+
return result;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=quality-measurement-batch-job.js.map
|