constants.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /**
  2. * Copyright 2013-2022 the PM2 project authors. All rights reserved.
  3. * Use of this source code is governed by a license that
  4. * can be found in the LICENSE file.
  5. */
  6. var debug = require('debug')('pm2:conf');
  7. var p = require('path');
  8. var util = require('util');
  9. var chalk = require('chalk');
  10. /**
  11. * Get PM2 path structure
  12. */
  13. var path_structure = require('./paths.js')(process.env.OVER_HOME);
  14. /**
  15. * Constants variables used by PM2
  16. */
  17. var csts = {
  18. PREFIX_MSG : chalk.green('[PM2] '),
  19. PREFIX_MSG_INFO : chalk.cyan('[PM2][INFO] '),
  20. PREFIX_MSG_ERR : chalk.red('[PM2][ERROR] '),
  21. PREFIX_MSG_MOD : chalk.bold.green('[PM2][Module] '),
  22. PREFIX_MSG_MOD_ERR : chalk.red('[PM2][Module][ERROR] '),
  23. PREFIX_MSG_WARNING : chalk.yellow('[PM2][WARN] '),
  24. PREFIX_MSG_SUCCESS : chalk.cyan('[PM2] '),
  25. PM2_IO_MSG : chalk.cyan('[PM2 I/O]'),
  26. PM2_IO_MSG_ERR : chalk.red('[PM2 I/O]'),
  27. TEMPLATE_FOLDER : p.join(__dirname, 'lib/templates'),
  28. APP_CONF_DEFAULT_FILE : 'ecosystem.config.js',
  29. APP_CONF_TPL : 'ecosystem.tpl',
  30. APP_CONF_TPL_SIMPLE : 'ecosystem-simple.tpl',
  31. SAMPLE_CONF_FILE : 'sample-conf.js',
  32. LOGROTATE_SCRIPT : 'logrotate.d/pm2',
  33. DOCKERFILE_NODEJS : 'Dockerfiles/Dockerfile-nodejs.tpl',
  34. DOCKERFILE_JAVA : 'Dockerfiles/Dockerfile-java.tpl',
  35. DOCKERFILE_RUBY : 'Dockerfiles/Dockerfile-ruby.tpl',
  36. SUCCESS_EXIT : 0,
  37. ERROR_EXIT : 1,
  38. CODE_UNCAUGHTEXCEPTION : 1,
  39. IS_WINDOWS : (process.platform === 'win32' || process.platform === 'win64' || /^(msys|cygwin)$/.test(process.env.OSTYPE)),
  40. ONLINE_STATUS : 'online',
  41. STOPPED_STATUS : 'stopped',
  42. STOPPING_STATUS : 'stopping',
  43. WAITING_RESTART : 'waiting restart',
  44. LAUNCHING_STATUS : 'launching',
  45. ERRORED_STATUS : 'errored',
  46. ONE_LAUNCH_STATUS : 'one-launch-status',
  47. CLUSTER_MODE_ID : 'cluster_mode',
  48. FORK_MODE_ID : 'fork_mode',
  49. LOW_MEMORY_ENVIRONMENT : process.env.PM2_OPTIMIZE_MEMORY || false,
  50. MACHINE_NAME : process.env.INSTANCE_NAME || process.env.MACHINE_NAME || process.env.PM2_MACHINE_NAME,
  51. SECRET_KEY : process.env.KEYMETRICS_SECRET || process.env.PM2_SECRET_KEY || process.env.SECRET_KEY,
  52. PUBLIC_KEY : process.env.KEYMETRICS_PUBLIC || process.env.PM2_PUBLIC_KEY || process.env.PUBLIC_KEY,
  53. KEYMETRICS_ROOT_URL : process.env.KEYMETRICS_NODE || process.env.PM2_APM_ADDRESS || process.env.ROOT_URL || process.env.INFO_NODE || 'root.keymetrics.io',
  54. PM2_BANNER : '../lib/motd',
  55. PM2_UPDATE : '../lib/API/pm2-plus/pres/motd.update',
  56. DEFAULT_MODULE_JSON : 'package.json',
  57. MODULE_BASEFOLDER: 'module',
  58. MODULE_CONF_PREFIX: 'module-db-v2',
  59. MODULE_CONF_PREFIX_TAR: 'tar-modules',
  60. EXP_BACKOFF_RESET_TIMER : parseInt(process.env.EXP_BACKOFF_RESET_TIMER) || 30000,
  61. REMOTE_PORT_TCP : isNaN(parseInt(process.env.KEYMETRICS_PUSH_PORT)) ? 80 : parseInt(process.env.KEYMETRICS_PUSH_PORT),
  62. REMOTE_PORT : 41624,
  63. REMOTE_HOST : 's1.keymetrics.io',
  64. SEND_INTERVAL : 1000,
  65. RELOAD_LOCK_TIMEOUT : parseInt(process.env.PM2_RELOAD_LOCK_TIMEOUT) || 30000,
  66. GRACEFUL_TIMEOUT : parseInt(process.env.PM2_GRACEFUL_TIMEOUT) || 8000,
  67. GRACEFUL_LISTEN_TIMEOUT : parseInt(process.env.PM2_GRACEFUL_LISTEN_TIMEOUT) || 3000,
  68. LOGS_BUFFER_SIZE : 8,
  69. CONTEXT_ON_ERROR : 2,
  70. AGGREGATION_DURATION : process.env.PM2_DEBUG || process.env.NODE_ENV === 'local_test' || process.env.NODE_ENV === 'development' ? 3000 : 5 * 60000,
  71. TRACE_FLUSH_INTERVAL : process.env.PM2_DEBUG || process.env.NODE_ENV === 'local_test' ? 1000 : 60000,
  72. // Concurrent actions when doing start/restart/reload
  73. CONCURRENT_ACTIONS : (function() {
  74. var concurrent_actions = parseInt(process.env.PM2_CONCURRENT_ACTIONS) || 2;
  75. debug('Using %d parallelism (CONCURRENT_ACTIONS)', concurrent_actions);
  76. return concurrent_actions;
  77. })(),
  78. DEBUG : process.env.PM2_DEBUG || false,
  79. WEB_IPADDR : process.env.PM2_API_IPADDR || '0.0.0.0',
  80. WEB_PORT : parseInt(process.env.PM2_API_PORT) || 9615,
  81. WEB_STRIP_ENV_VARS : process.env.PM2_WEB_STRIP_ENV_VARS || false,
  82. MODIFY_REQUIRE : process.env.PM2_MODIFY_REQUIRE || false,
  83. WORKER_INTERVAL : process.env.PM2_WORKER_INTERVAL || 30000,
  84. KILL_TIMEOUT : process.env.PM2_KILL_TIMEOUT || 1600,
  85. KILL_SIGNAL : process.env.PM2_KILL_SIGNAL || 'SIGINT',
  86. KILL_USE_MESSAGE : process.env.PM2_KILL_USE_MESSAGE || false,
  87. PM2_PROGRAMMATIC : typeof(process.env.pm_id) !== 'undefined' || process.env.PM2_PROGRAMMATIC,
  88. PM2_LOG_DATE_FORMAT : process.env.PM2_LOG_DATE_FORMAT !== undefined ? process.env.PM2_LOG_DATE_FORMAT : 'YYYY-MM-DDTHH:mm:ss'
  89. };
  90. module.exports = Object.assign(csts, path_structure);