pandora
Version:
A powerful and lightweight application manager for Node.js applications powered by TypeScript.
175 lines (157 loc) • 3.63 kB
text/typescript
import {ProcfileReconcilerAccessor} from './application/ProcfileReconcilerAccessor';
import {join} from 'path';
import {homedir} from 'os';
const {DefaultEnvironment} = require('pandora-env');
const {
ErrorEndPoint,
HealthEndPoint,
InfoEndPoint,
ProcessEndPoint,
MetricsEndPoint,
TraceEndPoint,
DaemonEndPoint,
ErrorResource,
MetricsResource,
HealthResource,
TraceResource,
InfoResource,
ProcessResource,
DaemonResource,
FileMetricManagerReporter,
MetricsClient,
MetricsServerManager,
CompactMetricsCollector,
NormalMetricsCollector,
} = require('pandora-metrics');
const {LoggerService} = require('pandora-service-logger');
const hooks = require('pandora-hook');
export default {
environment: DefaultEnvironment,
procfile (pandora: ProcfileReconcilerAccessor) {
const globalConfig = require('./universal/GlobalConfigProcessor')
.GlobalConfigProcessor.getInstance().getAllProperties();
pandora.defaultServiceCategory('worker');
pandora.environment(globalConfig.environment);
pandora.process('agent')
.scale(1)
.env({agent: 'true'});
pandora.process('worker')
.scale(pandora.dev ? 1 : 'auto')
.env({worker: 'true'});
pandora.process('background')
.scale(1)
.env({background: 'true'});
pandora.service('logger', LoggerService)
.name('logger')
.process('weak-all');
},
logger: {
logsDir: join(homedir(), 'logs'),
appLogger: {
stdoutLevel: 'NONE',
level: 'INFO'
},
daemonLogger: {
stdoutLevel: 'ERROR',
level: 'INFO',
},
isolatedServiceLogger: false
},
metricsManager: MetricsServerManager,
metricsClient: MetricsClient,
actuator: {
http: {
enabled: true,
port: 7002,
},
endPoint: {
daemon: {
enabled: true,
target: DaemonEndPoint,
resource: DaemonResource,
},
error: {
enabled: true,
target: ErrorEndPoint,
resource: ErrorResource,
initConfig: {
cacheSize: 100
}
},
health: {
enabled: true,
target: HealthEndPoint,
resource: HealthResource,
initConfig: {
port: {
enabled: true,
checkUrl: `http://127.1:6001`
},
disk_space: {
enabled: true,
rate: 80,
}
}
},
info: {
enabled: true,
target: InfoEndPoint,
resource: InfoResource,
},
process: {
enabled: true,
target: ProcessEndPoint,
resource: ProcessResource,
},
metrics: {
enabled: true,
target: MetricsEndPoint,
resource: MetricsResource,
initConfig: {
collector: NormalMetricsCollector
}
},
trace: {
enabled: true,
target: TraceEndPoint,
resource: TraceResource,
initConfig: {
cacheSize: 1000,
rate: 10
}
}
},
},
hook: {
global: {
enabled: true,
target: hooks.GlobalPatcher
},
eggLogger: {
enabled: true,
target: hooks.EggLoggerPatcher,
},
urllib: {
enabled: true,
target: hooks.UrllibPatcher
},
bluebird: {
enabled: true,
target: hooks.BluebirdPatcher
},
http: {
enabled: true,
target: hooks.HttpPatcher
}
},
reporter: {
file: {
enabled: true,
target: FileMetricManagerReporter,
interval: 5,
initConfig: {
collector: CompactMetricsCollector
}
}
}
};