package cc.mrbird.febs.monitor.controller;
|
|
import cc.mrbird.febs.common.entity.FebsConstant;
|
import cc.mrbird.febs.common.utils.FebsUtil;
|
import cc.mrbird.febs.monitor.entity.JvmInfo;
|
import cc.mrbird.febs.monitor.entity.ServerInfo;
|
import cc.mrbird.febs.monitor.entity.TomcatInfo;
|
import cc.mrbird.febs.monitor.helper.FebsActuatorHelper;
|
import lombok.RequiredArgsConstructor;
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import java.util.List;
|
|
import static cc.mrbird.febs.monitor.endpoint.FebsMetricsEndpoint.FebsMetricResponse;
|
|
/**
|
* @author MrBird
|
*/
|
@Controller("monitorView")
|
@RequestMapping(FebsConstant.VIEW_PREFIX + "monitor")
|
@RequiredArgsConstructor
|
public class ViewController {
|
|
private final FebsActuatorHelper actuatorHelper;
|
|
@GetMapping("online")
|
@RequiresPermissions("online:view")
|
public String online() {
|
return FebsUtil.view("monitor/online");
|
}
|
|
@GetMapping("log")
|
@RequiresPermissions("log:view")
|
public String log() {
|
return FebsUtil.view("monitor/log");
|
}
|
|
@GetMapping("loginlog")
|
@RequiresPermissions("loginlog:view")
|
public String loginLog() {
|
return FebsUtil.view("monitor/loginLog");
|
}
|
|
@GetMapping("httptrace")
|
@RequiresPermissions("httptrace:view")
|
public String httptrace() {
|
return FebsUtil.view("monitor/httpTrace");
|
}
|
|
@GetMapping("jvm")
|
@RequiresPermissions("jvm:view")
|
public String jvmInfo(Model model) {
|
List<FebsMetricResponse> jvm = actuatorHelper.getMetricResponseByType("jvm");
|
JvmInfo jvmInfo = actuatorHelper.getJvmInfoFromMetricData(jvm);
|
model.addAttribute("jvm", jvmInfo);
|
return FebsUtil.view("monitor/jvmInfo");
|
}
|
|
@GetMapping("tomcat")
|
@RequiresPermissions("tomcat:view")
|
public String tomcatInfo(Model model) {
|
List<FebsMetricResponse> tomcat = actuatorHelper.getMetricResponseByType("tomcat");
|
TomcatInfo tomcatInfo = actuatorHelper.getTomcatInfoFromMetricData(tomcat);
|
model.addAttribute("tomcat", tomcatInfo);
|
return FebsUtil.view("monitor/tomcatInfo");
|
}
|
|
@GetMapping("server")
|
@RequiresPermissions("server:view")
|
public String serverInfo(Model model) {
|
List<FebsMetricResponse> jdbcInfo = actuatorHelper.getMetricResponseByType("jdbc");
|
List<FebsMetricResponse> systemInfo = actuatorHelper.getMetricResponseByType("system");
|
List<FebsMetricResponse> processInfo = actuatorHelper.getMetricResponseByType("process");
|
|
ServerInfo serverInfo = actuatorHelper.getServerInfoFromMetricData(jdbcInfo, systemInfo, processInfo);
|
model.addAttribute("server", serverInfo);
|
return FebsUtil.view("monitor/serverInfo");
|
}
|
|
@GetMapping("swagger")
|
public String swagger() {
|
return FebsUtil.view("monitor/swagger");
|
}
|
}
|