feat(monitor): 修改监控配置,显示机器名进程名

This commit is contained in:
liangtongchuan
2023-04-12 14:16:26 +08:00
parent b665786f99
commit 31db7061b7
6 changed files with 1206 additions and 95 deletions

View File

@@ -60,6 +60,11 @@ const ALL_ENVS = 'stable|development|alpha|dev|isbn|isbnhk|monitor|monitor2|dist
* 捕获全局错误
*/
preload();
if (process.env.NODE_PROCESS_TITLE) {
process.title = process.env.NODE_PROCESS_TITLE;
}
console.log('process.env.NODE_ENV:', process.env.NODE_PROCESS_TITLE);
/**
* Init app for client.

File diff suppressed because it is too large Load Diff

View File

@@ -58,7 +58,7 @@
"thinkingdata-node": "^1.2.2",
"ts-node": "^8.2.0",
"typegoose": "^5.9.1",
"xprofiler": "^1.2.5"
"xprofiler": "^2.5.1"
},
"devDependencies": {
"@types/node-schedule": "^1.3.1",

View File

@@ -4,6 +4,8 @@
* 根据pomelo 的 servers.json 生成 pm2 启动文件
*/
var fs = require('fs');
//服务器端 工程代码的目录
var cwd='./';
@@ -22,6 +24,7 @@ var processConfigType = {
"name" : "",
"script" : "./dist/app.js",
"args" : [] ,
"env" : {},
"watch": false,
"out_file": "./logs/app.log",
"error_file": "./logs/err.log",
@@ -50,6 +53,7 @@ var clone = function(origin) {
//
var masterConfig = masterJsonFile[envType];
var serversConfig = serversJosnFile[envType];
let titles = [];
//生成master 的配置
var pm2Master = clone( processConfigType );
@@ -62,6 +66,9 @@ pm2Master.args.push('port='+masterConfig.port);
pm2Master.args.push('env='+envType);
pm2Master.args.push('mode=stand-alone');
pm2Master.cwd= cwd;
pm2Master.env={NODE_PROCESS_TITLE: envType+'_'+masterConfig.id};
titles.push(envType+'_'+masterConfig.id);
let onairEnvs = ['sq1', 'sq3', 'sq4', 'sq7', 'sq9', 'zy1'];
if(onairEnvs.indexOf(envType) > -1) {
pm2Master.out_file = '/zyz_logs/pm2/'+masterConfig.id+"_app.log";
@@ -105,7 +112,8 @@ for(serverType in serversConfig)
appPm2Config.out_file = './logs/'+singleServer.id+'_app.log';
appPm2Config.error_file = './logs/'+singleServer.id+'_error.log';
}
appPm2Config.env={NODE_PROCESS_TITLE: envType+'_'+singleServer.id};
titles.push(envType+'_'+singleServer.id);
resultJson.apps.push(appPm2Config);
}
}
@@ -116,9 +124,6 @@ for(serverType in serversConfig)
var resultFileStr = JSON.stringify(resultJson);
//console.log(resultFileStr);
var fs = require('fs');
fs.writeFile(outputFilePath, resultFileStr, function (err) {
if (err) {
console.log(err);
@@ -127,7 +132,25 @@ fs.writeFile(outputFilePath, resultFileStr, function (err) {
}
});
const xtransitConfigFile = './xtransitConfig/'+envType+'.js';
if (fs.existsSync(xtransitConfigFile)) {
fs.readFile(xtransitConfigFile, 'utf8', function (err, data) {
if (err) {
console.log(err);
return;
}
const newData = data.replace(/titles:\s*\[[^\]]*\]/, "titles: "+JSON.stringify(titles));
// 3. 将更改后的内容写回文件
fs.writeFile(xtransitConfigFile, newData, 'utf8', (err) => {
if (err) {
console.error('Error writing file:', err);
return;
}
console.log('File updated successfully.');
});
});
}

View File

@@ -2,4 +2,9 @@
npm install #安装依赖库
npm run build
node pm2Config.js #使用pm2来做进程管理生成进程配置文件
pm2 start pomeloPm2Start.json #pm2 启动游戏服务器
pm2 start pomeloPm2Start.json #pm2 启动游戏服务器
json=$(cat config.json)
env=$(echo "$json" | grep -o '"env": *"[^"]*"' | sed 's/"env": *"\(.*\)"$/\1/')
echo $env
xtransit stop all
xtransit start xtransitConfig/$env.js

View File

@@ -1,5 +1,5 @@
// config
const fs = require('fs');
module.exports = {
// I. 必须的配置
server: 'ws://172.16.4.147:9092', // 填写前一节中部署的 xtransit-server 地址
@@ -20,5 +20,8 @@ module.exports = {
logger: console, // 可以传入应用日志句柄方便日志统一管理,需要实现 error, info, warn 和 debug 四个方法
logLevel: 2, // 默认内置 logger 的日志级别0 error1 info2 warning3 debug,
titles: [], // 数组,如果应用使用了 process.title 自定义了名称,可以通过配置这里上报进程数据
customAgent: () => {
const hostname = fs.readFileSync('/etc/aliashost', 'utf8').trim();
return hostname;
}
};