UNPKG

pandora

Version:

A powerful and lightweight application manager for Node.js applications powered by TypeScript.

175 lines (157 loc) 3.63 kB
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 } } } };