添加健康检查功能

This commit is contained in:
heavyrain2012
2021-08-13 12:36:33 +08:00
parent debd4f1aea
commit d241acf980
3 changed files with 81 additions and 1 deletions
@@ -8,6 +8,7 @@
package com.xiaoleilu.loServer.action.admin; package com.xiaoleilu.loServer.action.admin;
import cn.wildfirechat.common.APIPath;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.xiaoleilu.loServer.RestResult; import com.xiaoleilu.loServer.RestResult;
import com.xiaoleilu.loServer.action.Action; import com.xiaoleilu.loServer.action.Action;
@@ -47,6 +48,10 @@ abstract public class AdminAction extends Action {
return ErrorCode.ERROR_CODE_OVER_FREQUENCY; return ErrorCode.ERROR_CODE_OVER_FREQUENCY;
} }
if(APIPath.Health.equals(request.getUri())) {
return ErrorCode.ERROR_CODE_SUCCESS;
}
String nonce = request.getHeader("nonce"); String nonce = request.getHeader("nonce");
if (StringUtil.isNullOrEmpty(nonce)) { if (StringUtil.isNullOrEmpty(nonce)) {
nonce = request.getHeader("Nonce"); nonce = request.getHeader("Nonce");
@@ -0,0 +1,73 @@
/*
* This file is part of the Wildfire Chat package.
* (c) Heavyrain2012 <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
package com.xiaoleilu.loServer.action.admin;
import cn.wildfirechat.common.APIPath;
import cn.wildfirechat.pojos.OutputUserBlockStatusList;
import com.xiaoleilu.loServer.RestResult;
import com.xiaoleilu.loServer.annotation.Route;
import com.xiaoleilu.loServer.handler.Request;
import com.xiaoleilu.loServer.handler.Response;
import io.netty.handler.codec.http.FullHttpRequest;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import java.io.File;
import java.lang.management.OperatingSystemMXBean;
import static java.lang.management.ManagementFactory.getOperatingSystemMXBean;
@Route(APIPath.Health)
public class HealthAction extends AdminAction {
@Override
public boolean isTransactionAction() {
return true;
}
@Override
public boolean action(Request request, Response response) {
if (request.getNettyRequest() instanceof FullHttpRequest) {
JSONObject jsonObject = new JSONObject();
JSONObject cpuObject = new JSONObject();
jsonObject.put("cpu", cpuObject);
JSONObject memoryObject = new JSONObject();
jsonObject.put("memory", memoryObject);
if (getOperatingSystemMXBean() instanceof OperatingSystemMXBean) {
double load = getOperatingSystemMXBean().getSystemLoadAverage();
cpuObject.put("load", load);
}
cpuObject.put("cores", Runtime.getRuntime().availableProcessors());
memoryObject.put("free", Runtime.getRuntime().freeMemory());
memoryObject.put("max", Runtime.getRuntime().maxMemory());
memoryObject.put("avail", Runtime.getRuntime().totalMemory());
JSONArray jsonArray = new JSONArray();
jsonObject.put("file", jsonArray);
for (File root : File.listRoots()) {
JSONObject fObj = new JSONObject();
fObj.put("path", root.getPath());
fObj.put("space", root.getTotalSpace());
fObj.put("free", root.getFreeSpace());
fObj.put("usable", root.getUsableSpace());
}
JSONObject out = new JSONObject();
out.put("node1", jsonObject);
RestResult result = RestResult.ok(out);
setResponseContent(result, response);
}
return true;
}
}
@@ -71,6 +71,8 @@ public interface APIPath {
String Get_System_Setting = "/admin/system/get_setting"; String Get_System_Setting = "/admin/system/get_setting";
String Put_System_Setting = "/admin/system/put_setting"; String Put_System_Setting = "/admin/system/put_setting";
String Health = "/admin/health";
String Conference_List = "/admin/conference/list"; String Conference_List = "/admin/conference/list";
String Conference_List_Participant = "/admin/conference/list_participant"; String Conference_List_Participant = "/admin/conference/list_participant";
String Conference_Create = "/admin/conference/create"; String Conference_Create = "/admin/conference/create";