@contember/engine-server 2.1.0-rc.3 → 2.2.0-alpha.10
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/development/src/cluster.cjs.map +1 -1
- package/dist/development/src/cluster.js.map +1 -1
- package/dist/development/src/loadPlugins.cjs +2 -1
- package/dist/development/src/loadPlugins.cjs.map +1 -1
- package/dist/development/src/loadPlugins.js +2 -1
- package/dist/development/src/loadPlugins.js.map +1 -1
- package/dist/development/start.cjs +39 -4
- package/dist/development/start.cjs.map +1 -1
- package/dist/development/start.js +40 -5
- package/dist/development/start.js.map +1 -1
- package/dist/production/src/cluster.cjs.map +1 -1
- package/dist/production/src/cluster.js.map +1 -1
- package/dist/production/src/loadPlugins.cjs +2 -1
- package/dist/production/src/loadPlugins.cjs.map +1 -1
- package/dist/production/src/loadPlugins.js +2 -1
- package/dist/production/src/loadPlugins.js.map +1 -1
- package/dist/production/start.cjs +39 -4
- package/dist/production/start.cjs.map +1 -1
- package/dist/production/start.js +40 -5
- package/dist/production/start.js.map +1 -1
- package/dist/types/cluster.d.ts.map +1 -1
- package/dist/types/loadPlugins.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/package.json +7 -6
- package/src/cluster.ts +1 -1
- package/src/loadPlugins.ts +2 -1
- package/src/start.ts +45 -6
- package/src/tsconfig.json +1 -0
package/dist/production/start.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { createDefaultLogger, isDebugMode, getServerVersion, printStartInfo, resolveServerConfig, serverConfigSchema, createSentryLoggerHandler, createContainer, listenOnProcessTermination } from "@contember/engine-http";
|
|
2
|
+
import { createDefaultLogger, isDebugMode, getServerVersion, printStartInfo, resolveServerConfig, serverConfigSchema, createSentryLoggerHandler, createTelemetry, createContainer, listenOnProcessTermination } from "@contember/engine-http";
|
|
3
3
|
import loadPlugins from "./src/loadPlugins.js";
|
|
4
4
|
import cluster from "node:cluster";
|
|
5
5
|
import * as os from "node:os";
|
|
@@ -14,7 +14,7 @@ process.on("warning", (message) => {
|
|
|
14
14
|
const version = await getServerVersion();
|
|
15
15
|
printStartInfo({ version, isDebug }, logger);
|
|
16
16
|
const plugins = await loadPlugins();
|
|
17
|
-
const { serverConfig, projectConfigResolver, tenantConfigResolver } = await resolveServerConfig({ plugins, serverConfigSchema });
|
|
17
|
+
const { serverConfig, projectConfigResolver, tenantConfigResolver, env } = await resolveServerConfig({ plugins, serverConfigSchema });
|
|
18
18
|
if (process.argv[2] === "validate") {
|
|
19
19
|
process.exit(0);
|
|
20
20
|
}
|
|
@@ -22,6 +22,7 @@ process.on("warning", (message) => {
|
|
|
22
22
|
if (sentryhandler !== null) {
|
|
23
23
|
logger.addHandler(sentryhandler);
|
|
24
24
|
}
|
|
25
|
+
const telemetry = createTelemetry({ config: serverConfig.telemetry, logger, env });
|
|
25
26
|
const workerConfig = serverConfig.workerCount || 1;
|
|
26
27
|
const workerCount = workerConfig === "auto" ? os.cpus().length : Number(workerConfig);
|
|
27
28
|
const isClusterMode = serverConfig.workerCount !== void 0;
|
|
@@ -31,14 +32,48 @@ process.on("warning", (message) => {
|
|
|
31
32
|
serverConfig,
|
|
32
33
|
projectConfigResolver,
|
|
33
34
|
tenantConfigResolver,
|
|
35
|
+
env,
|
|
34
36
|
plugins,
|
|
35
37
|
processType,
|
|
36
38
|
version,
|
|
37
|
-
logger
|
|
39
|
+
logger,
|
|
40
|
+
tracer: telemetry.tracer
|
|
38
41
|
});
|
|
39
42
|
let initializedProjects = [];
|
|
40
43
|
const terminationJobs = [];
|
|
41
|
-
|
|
44
|
+
const finalTerminationJobs = [];
|
|
45
|
+
listenOnProcessTermination(terminationJobs, logger, {
|
|
46
|
+
sigtermDelayMs: processType === "clusterWorker" ? 0 : serverConfig.shutdownDelayMs,
|
|
47
|
+
finalJobs: finalTerminationJobs
|
|
48
|
+
});
|
|
49
|
+
const spanProcessor = telemetry.processor;
|
|
50
|
+
if (spanProcessor !== void 0) {
|
|
51
|
+
terminationJobs.push(async () => {
|
|
52
|
+
let timer;
|
|
53
|
+
let flushed = false;
|
|
54
|
+
try {
|
|
55
|
+
await Promise.race([
|
|
56
|
+
spanProcessor.forceFlush().then(() => {
|
|
57
|
+
flushed = true;
|
|
58
|
+
}),
|
|
59
|
+
new Promise((resolve) => {
|
|
60
|
+
timer = setTimeout(resolve, 5e3);
|
|
61
|
+
})
|
|
62
|
+
]);
|
|
63
|
+
} finally {
|
|
64
|
+
if (timer !== void 0) {
|
|
65
|
+
clearTimeout(timer);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (!flushed) {
|
|
69
|
+
logger.warn("Telemetry pre-shutdown flush timed out");
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
finalTerminationJobs.push(async () => {
|
|
73
|
+
await spanProcessor.shutdown();
|
|
74
|
+
logger.info("Telemetry shut down");
|
|
75
|
+
});
|
|
76
|
+
}
|
|
42
77
|
if (cluster.isMaster) {
|
|
43
78
|
const monitoringPort = serverConfig.monitoringPort;
|
|
44
79
|
const monitoringServer = container.monitoringKoa.listen(monitoringPort, () => {
|
|
@@ -81,7 +116,7 @@ process.on("warning", (message) => {
|
|
|
81
116
|
}
|
|
82
117
|
});
|
|
83
118
|
terminationJobs.push(async () => {
|
|
84
|
-
(await runningWorker).end();
|
|
119
|
+
await (await runningWorker).end();
|
|
85
120
|
});
|
|
86
121
|
await runningWorker;
|
|
87
122
|
logger.info(`Contember Worker ${workerName} started.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sources":["../../../packages/engine-server/src/start.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport {\n\tcreateContainer,\n\tcreateDefaultLogger,\n\tcreateSentryLoggerHandler,\n\tgetServerVersion,\n\tisDebugMode,\n\tlistenOnProcessTermination,\n\tprintStartInfo,\n\tresolveServerConfig,\n\tserverConfigSchema,\n\tTerminationJob,\n} from '@contember/engine-http'\nimport loadPlugins from './loadPlugins'\nimport cluster from 'node:cluster'\nimport * as os from 'node:os'\nimport { timeout } from './utils'\nimport { getClusterProcessType, notifyWorkerStarted, WorkerManager } from './cluster'\n\nconst logger = createDefaultLogger()\nprocess.on('warning', message => {\n\tlogger.warn(message)\n})\n;(async () => {\n\tconst isDebug = isDebugMode()\n\n\tconst version = await getServerVersion()\n\tprintStartInfo({ version, isDebug }, logger)\n\tconst plugins = await loadPlugins()\n\tconst { serverConfig, projectConfigResolver, tenantConfigResolver } = await resolveServerConfig({ plugins, serverConfigSchema })\n\n\tif (process.argv[2] === 'validate') {\n\t\tprocess.exit(0)\n\t}\n\n\tconst sentryhandler = createSentryLoggerHandler(serverConfig.logging?.sentry?.dsn)\n\tif (sentryhandler !== null) {\n\t\tlogger.addHandler(sentryhandler)\n\t}\n\n\tconst workerConfig = serverConfig.workerCount || 1\n\n\tconst workerCount = workerConfig === 'auto' ? os.cpus().length : Number(workerConfig)\n\tconst isClusterMode = serverConfig.workerCount !== undefined\n\n\tconst processType = getClusterProcessType(isClusterMode)\n\n\tconst container = createContainer({\n\t\tdebugMode: isDebug,\n\t\tserverConfig,\n\t\tprojectConfigResolver,\n\t\ttenantConfigResolver,\n\t\tplugins,\n\t\tprocessType,\n\t\tversion,\n\t\tlogger,\n\t})\n\n\tlet initializedProjects: string[] = []\n\tconst terminationJobs: TerminationJob[] = []\n\tlistenOnProcessTermination(terminationJobs, logger)\n\n\tif (cluster.isMaster) {\n\t\tconst monitoringPort = serverConfig.monitoringPort\n\t\tconst monitoringServer = container.monitoringKoa.listen(monitoringPort, () => {\n\t\t\tlogger.info(`Monitoring running on http://localhost:${monitoringPort}`)\n\t\t})\n\t\tterminationJobs.push(async () => {\n\t\t\tawait new Promise<any>(resolve => monitoringServer.close(resolve))\n\t\t\tlogger.info('Monitoring server terminated')\n\t\t})\n\t\tif (!serverConfig.projectGroup) {\n\t\t\tinitializedProjects = await container.initializer.initialize()\n\t\t}\n\t}\n\n\tconst port = serverConfig.port\n\tconst printStarted = () => {\n\t\tif (serverConfig.projectGroup) {\n\t\t\tlogger.info('Contember Cloud running')\n\t\t} else {\n\t\t\tlogger.info(`Contember API running on http://localhost:${port}`)\n\t\t}\n\t\tif (initializedProjects.length) {\n\t\t\tlogger.info(`Initialized projects: ${initializedProjects.join(', ')}`)\n\t\t}\n\t}\n\n\tconst startApplication = async () => {\n\t\tconst httpServerPromise = container.application.listen()\n\t\tterminationJobs.push(async () => {\n\t\t\tawait (await httpServerPromise).close()\n\t\t\tlogger.info('API server terminated')\n\t\t})\n\t\tawait httpServerPromise\n\t}\n\n\tconst startWorker = async (workerName: string) => {\n\t\tconst worker = container.applicationWorkers.getWorker(workerName)\n\t\tconst runningWorker = worker.run({\n\t\t\tlogger,\n\t\t\tonError: e => {\n\t\t\t\tlogger.crit(e)\n\t\t\t\tprocess.exit(1)\n\t\t\t},\n\t\t})\n\t\tterminationJobs.push(async () => {\n\t\t\
|
|
1
|
+
{"version":3,"file":"start.js","sources":["../../../packages/engine-server/src/start.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport {\n\tcreateContainer,\n\tcreateDefaultLogger,\n\tcreateSentryLoggerHandler,\n\tcreateTelemetry,\n\tgetServerVersion,\n\tisDebugMode,\n\tlistenOnProcessTermination,\n\tprintStartInfo,\n\tresolveServerConfig,\n\tserverConfigSchema,\n\tTerminationJob,\n} from '@contember/engine-http'\nimport loadPlugins from './loadPlugins.js'\nimport cluster from 'node:cluster'\nimport * as os from 'node:os'\nimport { timeout } from './utils.js'\nimport { getClusterProcessType, notifyWorkerStarted, WorkerManager } from './cluster.js'\n\nconst logger = createDefaultLogger()\nprocess.on('warning', message => {\n\tlogger.warn(message)\n})\n;(async () => {\n\tconst isDebug = isDebugMode()\n\n\tconst version = await getServerVersion()\n\tprintStartInfo({ version, isDebug }, logger)\n\tconst plugins = await loadPlugins()\n\tconst { serverConfig, projectConfigResolver, tenantConfigResolver, env } = await resolveServerConfig({ plugins, serverConfigSchema })\n\n\tif (process.argv[2] === 'validate') {\n\t\tprocess.exit(0)\n\t}\n\n\tconst sentryhandler = createSentryLoggerHandler(serverConfig.logging?.sentry?.dsn)\n\tif (sentryhandler !== null) {\n\t\tlogger.addHandler(sentryhandler)\n\t}\n\n\tconst telemetry = createTelemetry({ config: serverConfig.telemetry, logger, env })\n\n\tconst workerConfig = serverConfig.workerCount || 1\n\n\tconst workerCount = workerConfig === 'auto' ? os.cpus().length : Number(workerConfig)\n\tconst isClusterMode = serverConfig.workerCount !== undefined\n\n\tconst processType = getClusterProcessType(isClusterMode)\n\n\tconst container = createContainer({\n\t\tdebugMode: isDebug,\n\t\tserverConfig,\n\t\tprojectConfigResolver,\n\t\ttenantConfigResolver,\n\t\tenv,\n\t\tplugins,\n\t\tprocessType,\n\t\tversion,\n\t\tlogger,\n\t\ttracer: telemetry.tracer,\n\t})\n\n\tlet initializedProjects: string[] = []\n\tconst terminationJobs: TerminationJob[] = []\n\tconst finalTerminationJobs: TerminationJob[] = []\n\t// A cluster worker is signalled by the master, which has already served the delay.\n\tlistenOnProcessTermination(terminationJobs, logger, {\n\t\tsigtermDelayMs: processType === 'clusterWorker' ? 0 : serverConfig.shutdownDelayMs,\n\t\tfinalJobs: finalTerminationJobs,\n\t})\n\n\tconst spanProcessor = telemetry.processor\n\tif (spanProcessor !== undefined) {\n\t\tterminationJobs.push(async () => {\n\t\t\tlet timer: ReturnType<typeof setTimeout> | undefined\n\t\t\tlet flushed = false\n\t\t\ttry {\n\t\t\t\tawait Promise.race([\n\t\t\t\t\tspanProcessor.forceFlush().then(() => {\n\t\t\t\t\t\tflushed = true\n\t\t\t\t\t}),\n\t\t\t\t\tnew Promise<void>(resolve => {\n\t\t\t\t\t\ttimer = setTimeout(resolve, 5000)\n\t\t\t\t\t}),\n\t\t\t\t])\n\t\t\t} finally {\n\t\t\t\tif (timer !== undefined) {\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!flushed) {\n\t\t\t\tlogger.warn('Telemetry pre-shutdown flush timed out')\n\t\t\t}\n\t\t})\n\t\tfinalTerminationJobs.push(async () => {\n\t\t\tawait spanProcessor.shutdown()\n\t\t\tlogger.info('Telemetry shut down')\n\t\t})\n\t}\n\n\tif (cluster.isMaster) {\n\t\tconst monitoringPort = serverConfig.monitoringPort\n\t\tconst monitoringServer = container.monitoringKoa.listen(monitoringPort, () => {\n\t\t\tlogger.info(`Monitoring running on http://localhost:${monitoringPort}`)\n\t\t})\n\t\tterminationJobs.push(async () => {\n\t\t\tawait new Promise<any>(resolve => monitoringServer.close(resolve))\n\t\t\tlogger.info('Monitoring server terminated')\n\t\t})\n\t\tif (!serverConfig.projectGroup) {\n\t\t\tinitializedProjects = await container.initializer.initialize()\n\t\t}\n\t}\n\n\tconst port = serverConfig.port\n\tconst printStarted = () => {\n\t\tif (serverConfig.projectGroup) {\n\t\t\tlogger.info('Contember Cloud running')\n\t\t} else {\n\t\t\tlogger.info(`Contember API running on http://localhost:${port}`)\n\t\t}\n\t\tif (initializedProjects.length) {\n\t\t\tlogger.info(`Initialized projects: ${initializedProjects.join(', ')}`)\n\t\t}\n\t}\n\n\tconst startApplication = async () => {\n\t\tconst httpServerPromise = container.application.listen()\n\t\tterminationJobs.push(async () => {\n\t\t\tawait (await httpServerPromise).close()\n\t\t\tlogger.info('API server terminated')\n\t\t})\n\t\tawait httpServerPromise\n\t}\n\n\tconst startWorker = async (workerName: string) => {\n\t\tconst worker = container.applicationWorkers.getWorker(workerName)\n\t\tconst runningWorker = worker.run({\n\t\t\tlogger,\n\t\t\tonError: e => {\n\t\t\t\tlogger.crit(e)\n\t\t\t\tprocess.exit(1)\n\t\t\t},\n\t\t})\n\t\tterminationJobs.push(async () => {\n\t\t\tawait (await runningWorker).end()\n\t\t})\n\t\tawait runningWorker\n\t\tlogger.info(`Contember Worker ${workerName} started.`)\n\t}\n\n\tconst applicationWorker = serverConfig.applicationWorker\n\tif (applicationWorker && applicationWorker !== 'all') {\n\t\tawait startWorker(applicationWorker)\n\t\tif (isClusterMode) {\n\t\t\tnotifyWorkerStarted()\n\t\t}\n\t} else if (isClusterMode) {\n\t\tif (cluster.isMaster) {\n\t\t\tlogger.info(`Master ${process.pid} is running`)\n\t\t\tconst workerManager = new WorkerManager()\n\t\t\tterminationJobs.push(async ({ signal }) => {\n\t\t\t\tawait workerManager.terminate(signal)\n\t\t\t\tlogger.info('Workers terminated')\n\t\t\t})\n\n\t\t\tawait workerManager.start({ workerCount })\n\n\t\t\tif (applicationWorker === 'all') {\n\t\t\t\tfor (const workerName of container.applicationWorkers.getWorkerNames()) {\n\t\t\t\t\tawait workerManager.start({\n\t\t\t\t\t\tworkerCount,\n\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\tCONTEMBER_APPLICATION_WORKER: workerName,\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tprintStarted()\n\t\t} else {\n\t\t\tlogger.info(`Starting worker ${process.pid}`)\n\n\t\t\t// this line somehow ensures, that worker waits for termination of all jobs\n\t\t\tprocess.on('disconnect', () => timeout(0))\n\n\t\t\tawait startApplication()\n\t\t\tnotifyWorkerStarted()\n\t\t}\n\t} else {\n\t\tawait startApplication()\n\t\tif (applicationWorker === 'all') {\n\t\t\tfor (const workerName of container.applicationWorkers.getWorkerNames()) {\n\t\t\t\tawait startWorker(workerName)\n\t\t\t}\n\t\t}\n\t\tprintStarted()\n\t}\n})().catch(e => {\n\tlogger.crit(e)\n\tprocess.exit(1)\n})\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/cluster.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAG9C,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"cluster.d.ts","sourceRoot":"","sources":["../../src/cluster.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAG9C,eAAO,MAAM,qBAAqB,kBAAmB,OAAO,KAAG,WACsB,CAAA;AAErF,MAAM,MAAM,WAAW,GACpB,YAAY,GACZ,eAAe,GACf,eAAe,CAAA;AAIlB,eAAO,MAAM,aAAa,WAAY,MAAM,aAAa,MAAM,qBAoB9D,CAAA;AAED,eAAO,MAAM,mBAAmB,2BAG7B,CAAA;AAEH,qBAAa,aAAa;IACzB,OAAO,CAAC,aAAa,CAAQ;IAE7B,OAAO,CAAC,OAAO,CAAyB;IAE3B,KAAK,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAU1F;YAEa,WAAW;IAcZ,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoB5D;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadPlugins.d.ts","sourceRoot":"","sources":["../../src/loadPlugins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loadPlugins.d.ts","sourceRoot":"","sources":["../../src/loadPlugins.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIlD,MAAM,CAAC,OAAO,UAAU,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAEvD"}
|