{"_id":"parade","_rev":"26-fc8e179cfbf4ae4abfc9562282c1fd36","name":"parade","time":{"modified":"2022-06-23T09:32:48.760Z","created":"2014-07-23T23:47:12.558Z","0.0.0":"2014-07-23T23:47:12.558Z","1.0.0":"2014-07-24T22:38:39.222Z","1.0.1":"2014-07-26T05:02:22.792Z","1.0.2":"2014-07-28T18:09:24.240Z","1.0.3":"2014-08-07T06:52:35.945Z","1.0.4":"2014-08-11T19:28:58.050Z","1.0.5":"2014-08-11T22:04:34.131Z","1.0.6":"2014-08-13T05:49:25.326Z","2.0.0":"2015-10-07T01:02:57.846Z","2.1.0":"2015-10-12T05:31:14.818Z"},"maintainers":[{"name":"jinwolf","email":"rosenwolf@gmail.com"},{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"}],"dist-tags":{"latest":"2.1.0"},"description":"Parade is a cluster manager and also a process monitor for node.js applications.","readme":"# parade\n\nparade is a cluster manager and also a process monitor for node.js applications.\nIt forks multiple instances (process) of your application based on the number of cores available in the CPU\nand provides restful endpoints that provide data to track status, memory and cpu for individual node processes and servers.\n\n[![NPM Version](https://badge.fury.io/js/parade.svg)](https://badge.fury.io/for/js/parade)\n[![Build Status](https://travis-ci.org/Ancestry/parade.svg?branch=master)](https://travis-ci.org/Ancestry/parade)\n\n# Why Parade\n\n* nodejs runs on single thread which would not fully utilize all cores available in the server. parade is a command line utility which forks multiple worker process of the application to fully utilize all the cores of the server. \n\n* It helps to keep the application running forever without any downtime by automatically forking new workers whenever a worker process dies.\n\n* It helps to manage multiple worker processes by giving availability and usage stats on a web api.\n\n* Its open source and will remain open source.\n\n\n## Installation\n```bash\n$ npm install -g parade\n```\n## Start the app\n\n```bash\n$ parade <app.js> [clusters]\n```\n### Arguments\n\n* app.js: the main js file of your application\n* clusters (optional): # of worker process to fork. By default, it is set to (# of cores - 1)\n\n### Examples\n\n#### To run your app\n```bash\n$ parade app.js\n$ parade app.js 3\n```\n#### To run the example in this module\n```bash\n$ parade example/app.js\n```\n```bash\n$ parade example/app.js 3\n\nArgument 3, worker file name: example/app.js\nNumber of process forks  : 3\nparade web api server running in 5667\nWorker is online, Worker ID :  1\nWorker is online, Worker ID :  2\nWorker is online, Worker ID :  3\n```\n\n## Tests\n```bash\n$ npm install\n$ npm test\n```\n## Rest Endpoints\nStart the app with parade and test the following rest end points\n```bash\n$ parade app.js\n```\n\n### Stats\nIt gets metrics of all worker processes\n\n[http://localhost:5667/api/stats](http://localhost:5667/api/stats)\n\n#### Sample result\n```js\n{\n  \"processStats\": [\n    {\n      \"pid\": 12335,\n      \"memory\": 39047168,\n      \"cpu\": 0\n    },\n    {\n      \"pid\": 12337,\n      \"memory\": 42954752,\n      \"cpu\": 0\n    }\n  ],\n  \"osStats\": {\n    \"totalMem\": 4009091072,\n    \"freeMem\": 1395204096,\n    \"cpus\": [\n      {\n        \"model\": \"Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz\",\n        \"speed\": 2599,\n        \"times\": {\n          \"user\": 125852300,\n          \"nice\": 334700,\n          \"sys\": 59101600,\n          \"idle\": 108351690500,\n          \"irq\": 54764100\n        }\n      },\n      {\n        \"model\": \"Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz\",\n        \"speed\": 2599,\n        \"times\": {\n          \"user\": 57877800,\n          \"nice\": 343100,\n          \"sys\": 31694400,\n          \"idle\": 108823011800,\n          \"irq\": 0\n        }\n      }\n    ],\n    \"loadAvg\": [\n      0,\n      0,\n      0\n    ],\n    \"uptime\": 10986836.192939406,\n    \"platform\": \"linux\"\n  }\n}\n```\n### Status\nIt gets the status of all worker processes\n\n[http://localhost:5667/api/status](http://localhost:5667/api/status)\n\n#### Sample result\n```js\n{\n  \"1\": {\n    \"workerId\": 1,\n    \"uniqueId\": 1,\n    \"processId\": 12335,\n    \"status\": \"ONLINE\"\n  },\n  \"2\": {\n    \"workerId\": 2,\n    \"uniqueId\": 2,\n    \"processId\": 12337,\n    \"status\": \"ONLINE\"\n  }\n}\n```\n\n\n## Credits\n* [Prasanna Ramanujam](http://github.com/Prasanna-sr)\n\n## License\n\n [The MIT License](http://opensource.org/licenses/MIT)\n","versions":{"1.0.1":{"name":"parade","version":"1.0.1","description":"parade is a cluster manager and also a process monitor for node.js applications.","main":"index.js","dependencies":{"express":"~4.1.1","usage":"~0.3.9","async":"~0.8.0"},"devDependencies":{"mocha":"1.3.0","chai":"^1.9.1","express":"~4.1.1","async":"~0.8.0","usage":"~0.3.9"},"scripts":{"test":"mocha"},"bin":{"parade":"./bin/parade"},"repository":{"type":"git","url":"https://github.com/Ancestry/parade.git"},"author":{"name":"Prasanna Ramanujam","email":"pramanujam@ancestry.com"},"license":"MIT","gitHead":"6d00590742dddf32f566a7794d0234504b5e2afa","bugs":{"url":"https://github.com/Ancestry/parade/issues"},"homepage":"https://github.com/Ancestry/parade","_id":"parade@1.0.1","_shasum":"dcb82cb1d5fc23d6f78a356a7abe38f1eacc0b5d","_from":"./","_npmVersion":"1.4.14","_npmUser":{"name":"jinwolf","email":"rosenwolf@gmail.com"},"maintainers":[{"name":"jinwolf","email":"rosenwolf@gmail.com"}],"dist":{"shasum":"dcb82cb1d5fc23d6f78a356a7abe38f1eacc0b5d","tarball":"https://registry.npmjs.org/parade/-/parade-1.0.1.tgz","integrity":"sha512-I3FCEFyylv+By+eg0vmyegtUDZp6lTXs/KtFD3IC7DhWKM2uEw/+tF6o2BcseISCKQGb0ijM0zfKwuZeWY26Gw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAuiCvbzwtloc/BLptGShMw6dS5zS4MZ2wqQgD4yrfCAAiAuhPL1yUebpdmYtgHcUiW6UGgYX8aawETi60izrv6GdA=="}]}},"1.0.2":{"name":"parade","version":"1.0.2","description":"parade is a cluster manager and also a process monitor for node.js applications.","main":"index.js","dependencies":{"express":"~4.1.1","usage":"~0.3.9","async":"~0.8.0"},"devDependencies":{"mocha":"1.3.0","chai":"^1.9.1","express":"~4.1.1","async":"~0.8.0","usage":"~0.3.9"},"scripts":{"test":"mocha"},"bin":{"parade":"./bin/parade"},"repository":{"type":"git","url":"https://github.com/Ancestry/parade.git"},"author":{"name":"Prasanna Ramanujam","email":"pramanujam@ancestry.com"},"license":"MIT","bugs":{"url":"https://github.com/Ancestry/parade/issues"},"homepage":"https://github.com/Ancestry/parade","_id":"parade@1.0.2","dist":{"shasum":"7c180c7acce988a3a301701b4ac1d0940174ae1e","tarball":"https://registry.npmjs.org/parade/-/parade-1.0.2.tgz","integrity":"sha512-vTvYQ9PccGP8VDeuNGSrcv3qUsceLQP87kBYr36sOv5tjnfsKAa1xcRt64TvfeJQFvbLHEI3M14EGUju5SRMAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbgBoVHzWRV6eMIaXPLnJnO72dFvdwHzD7DlH9UbMHFQIhALDjd8Ou4ne66240t7Zfnn+BByyw2aW5wEk453HB09JV"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"},"maintainers":[{"name":"jinwolf","email":"rosenwolf@gmail.com"},{"name":"prasanna_sr","email":"prasannaraajkumar@gmail.com"},{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"}]},"1.0.3":{"name":"parade","version":"1.0.3","description":"parade is a cluster manager and also a process monitor for node.js applications.","main":"index.js","dependencies":{"express":"~4.1.1","usage":"~0.3.9","async":"~0.8.0"},"devDependencies":{"mocha":"1.3.0","chai":"^1.9.1","express":"~4.1.1","async":"~0.8.0","usage":"~0.3.9"},"scripts":{"test":"mocha"},"bin":{"parade":"./bin/parade"},"repository":{"type":"git","url":"https://github.com/Ancestry/parade.git"},"author":{"name":"Prasanna Ramanujam","email":"pramanujam@ancestry.com"},"license":"MIT","bugs":{"url":"https://github.com/Ancestry/parade/issues"},"homepage":"https://github.com/Ancestry/parade","_id":"parade@1.0.3","dist":{"shasum":"a47916f8e9f0773f97cbb1c69dcd0a6279595f98","tarball":"https://registry.npmjs.org/parade/-/parade-1.0.3.tgz","integrity":"sha512-cjZbtQN33fA5UcIsRWG5pnnZOPjJaT48phftX74tt2DNQEV1rUaQU5ag8MeDWZ4YMDYntDGkFol5+jv+mYicew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIZ28fV3GCRSR87oU7os51j5pQnaB44G6f6QeY/6c1ZQIhAOadfGpCdoXWQhmvafAqF9K02WsAm461xeOQrrk1QALv"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"},"maintainers":[{"name":"jinwolf","email":"rosenwolf@gmail.com"},{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"}]},"1.0.4":{"name":"parade","version":"1.0.4","description":"parade is a cluster manager and also a process monitor for node.js applications.","main":"index.js","dependencies":{"express":"~4.1.1","usage":"~0.3.9","async":"~0.8.0"},"devDependencies":{"mocha":"1.3.0","chai":"^1.9.1","express":"~4.1.1","async":"~0.8.0","usage":"~0.3.9"},"scripts":{"test":"mocha"},"bin":{"parade":"./bin/parade"},"repository":{"type":"git","url":"https://github.com/Ancestry/parade.git"},"author":{"name":"Prasanna Ramanujam","email":"pramanujam@ancestry.com"},"license":"MIT","bugs":{"url":"https://github.com/Ancestry/parade/issues"},"homepage":"https://github.com/Ancestry/parade","_id":"parade@1.0.4","dist":{"shasum":"32b2f9d220a5b0d0c480a2d79ab79f8fd1bacc9e","tarball":"https://registry.npmjs.org/parade/-/parade-1.0.4.tgz","integrity":"sha512-vt/LqRISZnUx8rh/SNeK+wKlkEqtJldQAmsn5m3rYcaVEOA7E3I3vVpxhtvwrONtdO/zIdisad1TpLrSFcyrDQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFJQUTGJ5IE9VClvvJuKe05VYNZ4wQAt4qZZmk7yadjgIgSq/WvfSc7+iw+uK4eWlW7wGzexRtFWXKO4XJsLMKMWw="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"},"maintainers":[{"name":"jinwolf","email":"rosenwolf@gmail.com"},{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"}]},"1.0.5":{"name":"parade","version":"1.0.5","description":"parade is a cluster manager and also a process monitor for node.js applications.","main":"index.js","dependencies":{"express":"~4.1.1","usage":"~0.3.9","async":"~0.8.0","ejs":"^1.0.0"},"devDependencies":{"mocha":"1.3.0","chai":"^1.9.1","express":"~4.1.1","async":"~0.8.0","usage":"~0.3.9"},"scripts":{"test":"mocha"},"bin":{"parade":"./bin/parade"},"repository":{"type":"git","url":"https://github.com/Ancestry/parade.git"},"author":{"name":"Prasanna Ramanujam","email":"pramanujam@ancestry.com"},"license":"MIT","bugs":{"url":"https://github.com/Ancestry/parade/issues"},"homepage":"https://github.com/Ancestry/parade","_id":"parade@1.0.5","dist":{"shasum":"469d2f9e3e2bc8ded96de54cde0c17bf15b430f2","tarball":"https://registry.npmjs.org/parade/-/parade-1.0.5.tgz","integrity":"sha512-cI0SPKd5yQ15Mvlk25gC5nZyOV0TONBhY35O98ziMTwLY+QHfGxbkvhByAvU3Po729EZmJvgX09aJgQKY13qGg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDRAr78D3bv+nwAFgBcb4pDXrN5RXPko8z6YufiJ2ohiAiEA7C//k8ZJmXGedKBp1vRcRLK4CzDSwQQwqV1yh18wdko="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"},"maintainers":[{"name":"jinwolf","email":"rosenwolf@gmail.com"},{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"}]},"1.0.6":{"name":"parade","version":"1.0.6","description":"parade is a cluster manager and also a process monitor for node.js applications.","main":"index.js","dependencies":{"express":"~4.1.1","usage":"~0.3.9","async":"~0.8.0","ejs":"^1.0.0"},"devDependencies":{"mocha":"1.3.0","chai":"^1.9.1","express":"~4.1.1","async":"~0.8.0","usage":"~0.3.9"},"scripts":{"test":"mocha"},"keywords":["process manager","cluster","production","process running","forever","devops","monitoring"],"bin":{"parade":"./bin/parade"},"repository":{"type":"git","url":"https://github.com/Ancestry/parade.git"},"author":{"name":"Prasanna Ramanujam","email":"pramanujam@ancestry.com"},"license":"MIT","bugs":{"url":"https://github.com/Ancestry/parade/issues"},"homepage":"https://github.com/Ancestry/parade","_id":"parade@1.0.6","dist":{"shasum":"e0accc68421a72aa5d43fa133c4ebaa540b748a8","tarball":"https://registry.npmjs.org/parade/-/parade-1.0.6.tgz","integrity":"sha512-GWzAzsFSBlYOOGCojZ5zVcmiXzk6UJ2cnsXOglsPO+GfN3v6yM/rRDXJHj7f2T6gntLyqbNUb6vQy/JPOIhmMg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEBIWq7nM3Jfqcmsf8UjWLGhuh4J5Vd7FIKfe/IQOXjCAiEA1io7PZ2djzzN6hh4ED/vISQmaRw8IBgwUs2uKsbbRps="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"},"maintainers":[{"name":"jinwolf","email":"rosenwolf@gmail.com"},{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"}]},"2.0.0":{"name":"parade","version":"2.0.0","description":"Parade is a cluster manager and also a process monitor for node.js applications.","main":"index.js","dependencies":{"express":"~4.1.1"},"devDependencies":{"mocha":"1.3.0","chai":"^1.9.1","express":"~4.1.1"},"scripts":{"test":"mocha"},"keywords":["process manager","cluster","production","process running","forever","devops","monitoring"],"bin":{"parade":"./bin/parade"},"repository":{"type":"git","url":"git+https://github.com/Ancestry/parade.git"},"author":{"name":"Prasanna Ramanujam","email":"pramanujam@ancestry.com"},"license":"MIT","gitHead":"9641815ee9066bb425bf72f5377a93aab715919d","bugs":{"url":"https://github.com/Ancestry/parade/issues"},"homepage":"https://github.com/Ancestry/parade#readme","_id":"parade@2.0.0","_shasum":"cc844fa1fce980807f8576144acbd1f9f320e43a","_from":".","_npmVersion":"2.13.3","_nodeVersion":"0.12.5","_npmUser":{"name":"jinwolf","email":"rosenwolf@gmail.com"},"dist":{"shasum":"cc844fa1fce980807f8576144acbd1f9f320e43a","tarball":"https://registry.npmjs.org/parade/-/parade-2.0.0.tgz","integrity":"sha512-M8UbCS/1O75581gJDb8QpTaUCVR8/Lr1Yfty9PNoPxK+tzngRj1xX1XDHDdkUF/wpP0o00Aat9aDHBOslXeM6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGZepgJqPGwbhKeq2L8xI+nrUUrEn7jkR+ahNAUfr53qAiAqeA7evg+mIDiGkSac00Q4igseHkcYPJvkiaAe8G65rw=="}]},"maintainers":[{"name":"jinwolf","email":"rosenwolf@gmail.com"},{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"}]},"2.1.0":{"name":"parade","version":"2.1.0","description":"Parade is a cluster manager and also a process monitor for node.js applications.","main":"index.js","dependencies":{"express":"~4.1.1"},"devDependencies":{"mocha":"1.3.0","chai":"^1.9.1","express":"~4.1.1"},"scripts":{"test":"mocha"},"keywords":["process manager","cluster","production","process running","forever","devops","monitoring"],"bin":{"parade":"./bin/parade"},"repository":{"type":"git","url":"https://github.com/Ancestry/parade.git"},"author":{"name":"Prasanna Ramanujam","email":"pramanujam@ancestry.com"},"license":"MIT","gitHead":"4a23bc2e908ff5362edaea2618caa496bb54e152","bugs":{"url":"https://github.com/Ancestry/parade/issues"},"homepage":"https://github.com/Ancestry/parade","_id":"parade@2.1.0","_shasum":"d443aad6b0a8a0d1f62e88eb8e94f8c1462350c4","_from":".","_npmVersion":"2.7.0","_nodeVersion":"0.12.4","_npmUser":{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"},"dist":{"shasum":"d443aad6b0a8a0d1f62e88eb8e94f8c1462350c4","tarball":"https://registry.npmjs.org/parade/-/parade-2.1.0.tgz","integrity":"sha512-f80MgFPSUU03nY7ViWvQUuDxbs0W0KWY3WUatAkfpXE7qJyp7zK12qFBxQ4KpG6w9F+kxvhUXctcXdEMoyTjoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfkGAEju1NDmVcWIaia/FDSr2dTlnm1XruNW6J2oLsxwIgdpHrzaPAYxyQHs0ij7ve1IibYTcyrCfOGhjnx/TBH1o="}]},"maintainers":[{"name":"jinwolf","email":"rosenwolf@gmail.com"},{"name":"prasannasr6","email":"prasannaraajkumar@gmail.com"}]}},"homepage":"https://github.com/Ancestry/parade","repository":{"type":"git","url":"https://github.com/Ancestry/parade.git"},"author":{"name":"Prasanna Ramanujam","email":"pramanujam@ancestry.com"},"bugs":{"url":"https://github.com/Ancestry/parade/issues"},"license":"MIT","readmeFilename":"README.md","keywords":["process manager","cluster","production","process running","forever","devops","monitoring"]}