components: package: {module: './package.json'} logger: factory: '@utilitywarehouse/uw-lib-logger.js' with: - {name: '@package::name'} instrumentation: class: '@utilitywarehouse/uw-lib-prometheus.js' call: - method: newGauge with: ['infrastructure_accessible', 'reports when infra is up/down', ['probe']] - method: newGauge with: ['healthcheck_status', 'reports healthcheck result', ['healthcheck_name', 'healthcheck_result']] - method: newGauge with: ['nodejs_memory_heap_used_bytes', 'process.memoryUsage().heapUsed'] - method: newGauge with: ['nodejs_memory_heap_total_bytes', 'process.memoryUsage().heapTotal'] - method: newHistogram with: - 'http_request_seconds' - 'Measures request duration' - ['http_status', 'route', 'http_method'] - {buckets: [0.01, 0.03, 0.1, 0.2, 0.3, 0.5, 0.7, 1, 1.5, 2, 3, 5, 10]} operational.about: class: '@utilitywarehouse/uw-lib-operational.js::About' call: - {method: 'setMeta', with: ['@package::name', '@package::description']} - {method: 'addOwner', with: ['@package::author']} - {method: 'addLink', with: ['readme', '@package::homepage']} operational.health: class: '@utilitywarehouse/uw-lib-operational.js::Health' with: ['@package::name', '@package::description'] operational.ready: class: '@utilitywarehouse/uw-lib-operational.js::Ready' router: class: 'express::Router' pre.router: class: 'express::Router' post.router: class: 'express::Router' server: factory: 'express' transport: factory: 'http::createServer' with: ['@server'] server.middleware: factory: 'helmet' bus: class: 'director.js' call: - method: setRegistry with: ['@canister'] system.lifecycle: class: '__/lifecycle' system.monitor.driver: class: '@utilitywarehouse/uw-lib-connection-monitor.js' system.monitor: class: '__/monitor' with: - '@system.monitor.driver' - '@logger' - '@instrumentation' - 'infrastructure_accessible' - '@operational.health' - '@canister' - 'healthcheck_status' tags: system.start: priority: 99999999 method: start