Authored by jack.xue

Merge branch 'master' of http://git.yoho.cn/ops/monitor-service

Showing 19 changed files with 376 additions and 185 deletions
package com.monitor.cmdb.ctrl;
import com.monitor.cmdb.service.IRedisMonitorService;
import com.monitor.model.response.BaseResponse;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Created by yoho on 2016/6/14.
* 查询机器信息
*/
@Controller
@RequestMapping("redisMonitor")
public class RedisMonitorCtrl {
Logger log = LoggerFactory.getLogger(RedisMonitorCtrl.class);
@Autowired
IRedisMonitorService redisMonitorService;
@RequestMapping("/getRedisInfo")
@ResponseBody
public BaseResponse<Object> getRedisMonitors() throws Exception {
log.info("into getRedisInfo");
// 查询列表
String response = redisMonitorService.getRedisMonitors();
if (StringUtils.isBlank(response)) {
return null;
}
log.info("getRedisInfo success and value {}", response);
return new BaseResponse<Object>(response);
}
}
... ...
package com.monitor.cmdb.service;
/**
* Created by yoho on 2016/7/5.
*/
public interface IRedisMonitorService {
String getRedisMonitors();
}
... ...
package com.monitor.cmdb.service.impl;
import com.model.RedisMonitor;
import com.monitor.cmdb.service.IRedisMonitorService;
import com.monitor.mysql.mapper.RedisMonitorMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* Created by yoho on 2016/7/5.
*/
@Service
public class RedisMonitorServiceImpl implements IRedisMonitorService {
@Autowired
RedisMonitorMapper redisMonitorMapper;
@Override
public String getRedisMonitors() {
List<RedisMonitor> list= redisMonitorMapper.selectAllRedisMonitors();
if(CollectionUtils.isEmpty(list)){
return null;
}
return backChart(list);
}
private String backChart(List<RedisMonitor> list){
StringBuffer buff = new StringBuffer();
int width1=12;
int width2=8;
int width21=30;
int width3=4;
buff.append("'<chart charttopmargin=\"0\" chartBottomMargin=\"0\" chartleftmargin=\"0\" chartrightmargin=\"0\" bordercolor=\"#FFFFFF\" border=\"0\" borderAlpha=\"0\" borderThickness=\"0\" canvasBorderThickness=\"0\" canvasBorderColor=\"#FFFFFF\" showFormBtn=\"0\">\\n\\\n");
buff.append("<dataset plotborderAlpha=\"0\" >\\n\\\n");
for(RedisMonitor info : list){
if(info.getLevel()==0){
buff.append("<set x=\""+width1+"\" y=\"80\" width=\"120\" height=\"40\" name=\""+info.getNodeFrom()+"\" color=\"62D0FE\" id=\""+info.getNodeTo()+"\" tooltext= \""+info.getParamMonitor()+"\" />\\n\\\n");
width1+=18;
}else if(info.getLevel()==1){
if(info.getNodeFrom().equals("Qcloud")){
buff.append("<set x=\""+width21+"\" y=\"70\" width=\"120\" height=\"40\" name=\""+info.getNodeFrom()+"\" color=\"62D0FE\" id=\""+info.getNodeTo()+"\" />\\n\\\n");
width21+=8;
}else{
buff.append("<set x=\""+width2+"\" y=\"70\" width=\"120\" height=\"40\" name=\""+info.getNodeFrom()+"\" color=\"62D0FE\" id=\""+info.getNodeTo()+"\" />\\n\\\n");
width2+=8;
}
}else if(info.getLevel()==2){
buff.append("<set x=\""+width3+"\" y=\"55\" width=\"55\" height=\"40\" name=\""+info.getNodeFrom()+"\" color=\"62D0FE\" id=\""+info.getNodeTo()+"\" />\\n\\\n");
width3+=4;
}
}
buff.append("</dataset>\\n\\\n");
buff.append("<connectors color=\"83C6E1\" stdThickness=\"8\">\\n\\\n");
for(RedisMonitor info : list){
buff.append("<connector strength=\"0.45\" from=\""+info.getNodeFrom()+"\" to=\""+info.getNodeTo()+"\" arrowAtStart=\"0\" arrowAtEnd=\"0\"/>\\n\\\n");
}
buff.append("</connectors>\\n\\\n</chart>'");
System.out.println(buff.toString());
return buff.toString();
}
}
... ...
... ... @@ -107,6 +107,12 @@
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
</dependency>
</dependencies>
</project>
\ No newline at end of file
... ...
package com.monitor.common.util;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.net.telnet.TelnetClient;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class TelnetUtils {
public final static void main(String[] args) throws Exception {
String string=getResult("192.168.102.222",22222);
JSONObject response=JSONObject.parseObject(string);
System.out.println(string);
System.out.println(response);
}
public static String getResult(String ip, int port) {
TelnetClient telnet = null;
InputStream in = null;
ByteArrayOutputStream baos = null;
try {
telnet = new TelnetClient();
telnet.connect(ip, port);
in = telnet.getInputStream();
baos = new ByteArrayOutputStream();
int i = -1;
while ((i = in.read()) != -1) {
baos.write(i);
}
return baos.toString();
} catch (Exception e) {
return null;
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (baos != null) {
try {
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (telnet != null) {
try {
telnet.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
... ...
... ... @@ -146,6 +146,7 @@ public class JavaApiClient {
* 任务执行函数
*/
public void run() {
log.info("task run...");
long startTime = System.currentTimeMillis();
int tastNum = 0;
for (JavaApiInfo javaApiInfo : javaApimap.values()) {
... ... @@ -176,6 +177,7 @@ public class JavaApiClient {
//close 线程池
executorService.shutdownNow();
long endTime = System.currentTimeMillis();
log.info("task stop cost {} ms ...", endTime - startTime);
}
... ...
... ... @@ -22,7 +22,7 @@ public class JavaApiStatics{
private long endTime;
private JSONObject response;
private String response;
private boolean hasException;
... ...
... ... @@ -41,7 +41,7 @@ public class JavaApiTask implements Callable<JavaApiStatics> {
// log.info("url: {}", url);
if (url == null)
return null;
JSONObject jsonRep = null;
String jsonRep = null;
JavaApiStatics apiStatics = new JavaApiStatics();
apiStatics.setStartTime(System.currentTimeMillis());
apiStatics.setHasException(false);
... ... @@ -54,9 +54,9 @@ public class JavaApiTask implements Callable<JavaApiStatics> {
if (javaApiInfo.getApiData() != null && !(javaApiInfo.getApiData().equals("")))
req = JSON.parseObject(javaApiInfo.getApiData());
if (javaApiInfo.getApiReqMethod() == 0) {
jsonRep = restTemplate.getForObject(url, JSONObject.class);
jsonRep = restTemplate.getForObject(url, String.class);
} else {
jsonRep = restTemplate.postForObject(url, req, JSONObject.class);
jsonRep = restTemplate.postForObject(url, req, String.class);
}
} catch (Exception e) {
... ...
package com.monitor.javaserver.handle.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.monitor.javaserver.common.JavaApiStatics;
import com.monitor.javaserver.handle.IJavaApiHadnler;
import org.springframework.stereotype.Component;
... ... @@ -18,14 +20,19 @@ public class PreProcessJavaApiHandler implements IJavaApiHadnler {
if (javaApiStatics.isHasException() == true || javaApiStatics.getResponse() == null)
return;
if (!javaApiStatics.getResponse().containsKey("code")) {
JSONObject jsonRep = null;
try {
jsonRep = JSON.parseObject(javaApiStatics.getResponse());
} catch (Exception e) {
return;
}
if (!jsonRep.containsKey("code")) {
return;
}
int code;
try {
code = javaApiStatics.getResponse().getInteger("code");
code = jsonRep.getInteger("code");
if (code == 200) {
return;
}
... ... @@ -38,8 +45,8 @@ public class PreProcessJavaApiHandler implements IJavaApiHadnler {
String msg = "code:" + code;
if (javaApiStatics.getResponse().containsKey("message")) {
msg += " msg:" + javaApiStatics.getResponse().getString("message");
if (jsonRep.containsKey("message")) {
msg += " msg:" + jsonRep.getString("message");
}
javaApiStatics.setException(new Exception(msg));
... ...
package com.monitor.middleware.redis.service;
public interface IRedisMonitorService {
public interface IRedisMonitorHandleService {
void redisMonitor();
... ...
... ... @@ -2,15 +2,18 @@ package com.monitor.middleware.redis.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.model.MObjectInfo;
import com.model.RedisInfo;
import com.model.RedisMonitor;
import com.monitor.common.util.HttpRestClient;
import com.monitor.common.util.RedisInfoUtil;
import com.monitor.middleware.redis.service.IRedisMonitorService;
import com.monitor.common.util.TelnetUtils;
import com.monitor.middleware.redis.service.IRedisMonitorHandleService;
import com.monitor.mysql.mapper.MObjectInfoMapper;
import com.monitor.mysql.mapper.RedisMonitorMapper;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
... ... @@ -19,27 +22,38 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
@EnableScheduling
@Service
public class RedisMonitorServiceImpl implements IRedisMonitorService {
public class RedisMonitorHandleServiceImpl implements IRedisMonitorHandleService {
Logger log = LoggerFactory.getLogger(RedisMonitorHandleServiceImpl.class);
Logger log = LoggerFactory.getLogger(RedisMonitorServiceImpl.class);
@Autowired
HttpRestClient httpRestClient;
@Autowired
MObjectInfoMapper mObjectInfoMapper;
@Autowired
RedisMonitorMapper redisMonitorMapper;
@Override
public void redisMonitor() {
/**********************************************************************
*1、处理twemproxy
***********************************************************************/
List<RedisInfo> redisInfoList=new ArrayList<RedisInfo>();
redisInfoList.add(new RedisInfo("AWS","AWS",0,null));
redisInfoList.add(new RedisInfo("Qcloud","Qcloud",0,null));
RedisInfo redisInfo=null;
List<MObjectInfo> mlist= mObjectInfoMapper.getMoInfosByAlias("com_twemproxy");
List<RedisMonitor> redisInfoList=new ArrayList<RedisMonitor>();
redisInfoList.add(new RedisMonitor("AWS","AWS",0,null));
redisInfoList.add(new RedisMonitor("Qcloud","Qcloud",0,null));
RedisMonitor redisMonitor=null;
//List<MObjectInfo> mlist= mObjectInfoMapper.getMoInfosByAlias("com_twemproxy");
MObjectInfo a=new MObjectInfo();
a.setMoHostIp("192.168.102.222");
a.setMoName("com_twemproxy_aws_1");
List<MObjectInfo> mlist=new ArrayList<MObjectInfo>();
mlist.add(a);
if(CollectionUtils.isEmpty(mlist)){
return;
}
... ... @@ -49,8 +63,11 @@ public class RedisMonitorServiceImpl implements IRedisMonitorService {
List<String> ipList=null;
for(MObjectInfo obj:mlist){
paramMonitor=new StringBuffer();
//JSONObject response=httpRestClient.defaultPost(obj.getHostIp()+obj.getParamMonitor(), null, JSONObject.class);
JSONObject response=httpRestClient.defaultPost("http://192.168.102.222:22222", null, JSONObject.class);
String result= TelnetUtils.getResult(obj.getMoHostIp(),22222);
if(StringUtils.isBlank(result)){
continue;
}
JSONObject response=JSONObject.parseObject(result);
if(null != response){
int total_connections=(Integer)response.get("total_connections");
int curr_connections=(Integer)response.get("curr_connections");
... ... @@ -71,16 +88,16 @@ public class RedisMonitorServiceImpl implements IRedisMonitorService {
}
tMap.put(obj.getMoHostIp(),ipList);
}
redisInfo = new RedisInfo();
redisMonitor = new RedisMonitor();
if(StringUtils.isNotBlank(obj.getMoName()) && obj.getMoName().contains("aws")){
redisInfo.setNodeFrom("AWS");
redisMonitor.setNodeFrom("AWS");
}else if(obj.getMoName().contains("qq")){
redisInfo.setNodeFrom("Qcloud");
redisMonitor.setNodeFrom("Qcloud");
}
redisInfo.setNodeTo(obj.getMoHostIp());
redisInfo.setLevel(1);
redisInfo.setParamMonitor(paramMonitor.toString());
redisInfoList.add(redisInfo);
redisMonitor.setNodeTo(obj.getMoHostIp());
redisMonitor.setLevel(1);
redisMonitor.setParamMonitor(paramMonitor.toString());
redisInfoList.add(redisMonitor);
//obj.setParamMonitor(paramMonitor.toString());
//redisMonitorMapper.updateByPrimaryKey(obj);
}
... ... @@ -111,10 +128,18 @@ public class RedisMonitorServiceImpl implements IRedisMonitorService {
paramMonitor.append("内存碎片比率:" + result.get("mem_fragmentation_ratio") + ";");
// paramMonitor.append(":"+isSlave+";");
}
redisInfoList.add(new RedisInfo(key,ipStr,3,paramMonitor.toString()));
redisInfoList.add(new RedisMonitor(key,ipStr,2,paramMonitor.toString()));
}
}
}
}
/**********************************************************************
*3、存储监控RedisInfo信息数据
***********************************************************************/
if(!CollectionUtils.isEmpty(redisInfoList)){
redisMonitorMapper.deleteAllRedisMonitor();
redisMonitorMapper.bachInsertRedisMonitor(redisInfoList);
}
}
}
... ...
package com.monitor.middleware.redis.service.impl;
import com.model.RedisMonitor;
import java.util.ArrayList;
import java.util.List;
import com.model.RedisInfo;
public class Test {
public static void main(String[] args) {
StringBuffer buff = new StringBuffer();
List<RedisInfo> list = new ArrayList<RedisInfo>();
List<RedisMonitor> list = new ArrayList<RedisMonitor>();
int width1=12;
int width2=8;
int width21=30;
int width3=4;
RedisInfo redis1 = new RedisInfo();
RedisMonitor redis1 = new RedisMonitor();
redis1.setNodeFrom("AWS");
redis1.setNodeTo("172.31.19.49:6379");
redis1.setLevel(1);
list.add(redis1);
RedisInfo redis2 = new RedisInfo();
RedisMonitor redis2 = new RedisMonitor();
redis2.setNodeFrom("AWS");
redis2.setNodeTo("172.31.24.61:6379");
redis2.setLevel(1);
list.add(redis2);
RedisInfo redis3 = new RedisInfo();
RedisMonitor redis3 = new RedisMonitor();
redis3.setNodeFrom("172.31.19.49:6379");
redis3.setNodeTo("172.31.19.49:16379");
redis3.setLevel(2);
list.add(redis3);
RedisInfo redis4 = new RedisInfo();
RedisMonitor redis4 = new RedisMonitor();
redis4.setNodeFrom("172.31.19.49:6379");
redis4.setNodeTo("172.31.19.49:26379");
redis4.setLevel(2);
list.add(redis4);
RedisInfo redis5 = new RedisInfo();
RedisMonitor redis5 = new RedisMonitor();
redis5.setNodeFrom("172.31.24.61:6379");
redis5.setNodeTo("172.31.24.61:16379");
redis5.setLevel(2);
list.add(redis5);
RedisInfo redis6 = new RedisInfo();
RedisMonitor redis6 = new RedisMonitor();
redis6.setNodeFrom("172.31.24.61:6379");
redis6.setNodeTo("172.31.24.61:26379");
redis6.setLevel(2);
list.add(redis6);
RedisInfo redis7 = new RedisInfo();
RedisMonitor redis7 = new RedisMonitor();
redis7.setNodeFrom("AWS");
redis7.setNodeTo("AWS");
redis7.setLevel(0);
redis7.setParamMonitor("AWS");
list.add(redis7);
RedisInfo redis10 = new RedisInfo();
RedisMonitor redis10 = new RedisMonitor();
redis10.setNodeFrom("Qcloud");
redis10.setNodeTo("10.66.4.2:6379");
redis10.setLevel(1);
list.add(redis10);
RedisInfo redis20 = new RedisInfo();
RedisMonitor redis20 = new RedisMonitor();
redis20.setNodeFrom("10.66.4.2:6379");
redis20.setNodeTo("10.66.4.2:16379");
redis20.setLevel(2);
list.add(redis20);
RedisInfo redis30 = new RedisInfo();
RedisMonitor redis30 = new RedisMonitor();
redis30.setNodeFrom("10.66.4.2:6379");
redis30.setNodeTo("10.66.4.2:26379");
redis30.setLevel(2);
list.add(redis30);
RedisInfo redis40 = new RedisInfo();
RedisMonitor redis40 = new RedisMonitor();
redis40.setNodeFrom("10.66.4.2:6379");
redis40.setNodeTo("10.66.4.10:16379");
redis40.setLevel(2);
list.add(redis40);
RedisInfo redis50 = new RedisInfo();
RedisMonitor redis50 = new RedisMonitor();
redis50.setNodeFrom("10.66.4.2:6379");
redis50.setNodeTo("10.66.4.10:26379");
redis50.setLevel(2);
list.add(redis50);
RedisInfo redis60 = new RedisInfo();
RedisMonitor redis60 = new RedisMonitor();
redis60.setNodeFrom("10.66.4.2:6379");
redis60.setNodeTo("10.66.4.11:16379");
redis60.setLevel(2);
list.add(redis60);
RedisInfo redis70 = new RedisInfo();
RedisMonitor redis70 = new RedisMonitor();
redis70.setNodeFrom("Qcloud");
redis70.setNodeTo("Qcloud");
redis70.setLevel(0);
... ... @@ -90,12 +90,12 @@ public class Test {
buff.append("'<chart charttopmargin=\"0\" chartBottomMargin=\"0\" chartleftmargin=\"0\" chartrightmargin=\"0\" bordercolor=\"#FFFFFF\" border=\"0\" borderAlpha=\"0\" borderThickness=\"0\" canvasBorderThickness=\"0\" canvasBorderColor=\"#FFFFFF\" showFormBtn=\"0\">\\n\\\n");
buff.append("<dataset plotborderAlpha=\"0\" >\\n\\\n");
for(RedisInfo info : list){
for(RedisMonitor info : list){
if(info.getLevel()==0){
buff.append("<set x=\""+width1+"\" y=\"80\" width=\"120\" height=\"40\" name=\""+info.getNodeFrom()+"\" color=\"62D0FE\" id=\""+info.getNodeTo()+"\" tooltext= \""+info.getParamMonitor()+"\" />\\n\\\n");
width1+=18;
}else if(info.getLevel()==1){
if(info.getId().equals("Qcloud")){
if(info.getNodeFrom().equals("Qcloud")){
buff.append("<set x=\""+width21+"\" y=\"70\" width=\"120\" height=\"40\" name=\""+info.getNodeFrom()+"\" color=\"62D0FE\" id=\""+info.getNodeTo()+"\" />\\n\\\n");
width21+=8;
}else{
... ... @@ -109,7 +109,7 @@ public class Test {
}
buff.append("</dataset>\\n\\\n");
buff.append("<connectors color=\"83C6E1\" stdThickness=\"8\">\\n\\\n");
for(RedisInfo info : list){
for(RedisMonitor info : list){
buff.append("<connector strength=\"0.45\" from=\""+info.getNodeFrom()+"\" to=\""+info.getNodeTo()+"\" arrowAtStart=\"0\" arrowAtEnd=\"0\"/>\\n\\\n");
}
buff.append("</connectors>\\n\\\n</chart>'");
... ...
package com.monitor.middleware.redis.task;
import com.monitor.middleware.redis.service.IRedisMonitorService;
import com.monitor.middleware.redis.service.IRedisMonitorHandleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class RedisMonitorTask {
@Autowired
private IRedisMonitorService redisMonitorService;
private IRedisMonitorHandleService redisMonitorService;
//@Scheduled(fixedRate=20000)
// @Scheduled(cron="0 */5 * * * ?")
//@Scheduled(cron="0 0/15 * * * ? ")
public void redisMonitor(){
redisMonitorService.redisMonitor();
}
... ...
... ... @@ -3,7 +3,7 @@ package com.monitor.middleware.zookeeper.service;
/**
* Created by yoho on 2016/6/21.
*/
public interface IZkMonitorService {
public interface IZkMonitorHandleService {
public void zookeeperMonitor();
... ...
... ... @@ -3,7 +3,7 @@ package com.monitor.middleware.zookeeper.service.iml;
import com.model.MObjectInfo;
import com.monitor.influxdb.mapper.IZkMapper;
import com.monitor.influxdb.model.ZkInfo;
import com.monitor.middleware.zookeeper.service.IZkMonitorService;
import com.monitor.middleware.zookeeper.service.IZkMonitorHandleService;
import com.monitor.mysql.mapper.MObjectInfoMapper;
import org.apache.commons.lang.StringUtils;
import org.apache.curator.RetryPolicy;
... ... @@ -25,9 +25,9 @@ import java.util.List;
*/
@EnableScheduling
@Service
public class ZkMonitorServiceImpl implements IZkMonitorService {
public class ZkMonitorHandleServiceImpl implements IZkMonitorHandleService {
Logger log = LoggerFactory.getLogger(ZkMonitorServiceImpl.class);
Logger log = LoggerFactory.getLogger(ZkMonitorHandleServiceImpl.class);
@Autowired
IZkMapper zookeeperMapper;
... ... @@ -35,6 +35,12 @@ public class ZkMonitorServiceImpl implements IZkMonitorService {
@Autowired
MObjectInfoMapper mObjectInfoMapper;
/*@Autowired
public AlarmMsgService alarmMsgService;
@Autowired
private SnsMobileConfig snsMobileConfig;*/
public void zookeeperMonitor(){
/**********************************************************************
... ... @@ -65,9 +71,16 @@ public class ZkMonitorServiceImpl implements IZkMonitorService {
}
/**********************************************************************
*1、处理zookeeper告警
*2、处理zookeeper告警
***********************************************************************/
if(CollectionUtils.isEmpty(alarmList)){
return;
}
StringBuffer alarmMsg=new StringBuffer();
for(MObjectInfo alarmObj:alarmList){
alarmMsg.append(alarmObj.getMoHostIp()).append(",");
}
//alarmMsgService.sendSms("zookeeper",alarmMsg.toString(), snsMobileConfig.getOpsManagerDeveloper());
log.info("task end...");
}
... ...
package com.monitor.middleware.zookeeper.task;
import com.monitor.middleware.zookeeper.service.IZkMonitorService;
import com.monitor.middleware.zookeeper.service.IZkMonitorHandleService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -16,7 +16,7 @@ public class ZookeeperMonitorTask {
Logger log = LoggerFactory.getLogger(ZookeeperMonitorTask.class);
@Autowired
IZkMonitorService zkMonitorService;
IZkMonitorHandleService zkMonitorService;
//@Scheduled(fixedRate=20000)
@Scheduled(cron="0 0/15 * * * ? ")
... ...
... ... @@ -3,31 +3,27 @@ package com.model;
import lombok.Data;
@Data
public class RedisInfo {
private String id;
private String alias;
private String hostIp;
private int port;
private int level;
private String nodeFrom;
private String nodeTo;
private String paramMonitor;
private int state;
private int cloudType;
private String createTime;
private String updateTime;
public RedisInfo() {
super();
}
public RedisInfo(String nodeFrom,String nodeTo,int level,String paramMonitor) {
super();
this.nodeFrom = nodeFrom;
this.nodeTo = nodeTo;
this.level = level;
this.paramMonitor=paramMonitor;
}
}
public class RedisMonitor {
private String nodeFrom;
private String nodeTo;
private int level;
private String paramMonitor;
public RedisMonitor() {
super();
}
public RedisMonitor(String nodeFrom,String nodeTo,int level,String paramMonitor) {
super();
this.nodeFrom = nodeFrom;
this.nodeTo = nodeTo;
this.level = level;
this.paramMonitor=paramMonitor;
}
}
\ No newline at end of file
... ...
package com.monitor.mysql.mapper;
import com.model.RedisInfo;
import com.model.RedisMonitor;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface RedisMonitorMapper {
int deleteByPrimaryKey(Long id);
int insert(RedisMonitor record);
int insertSelective(RedisMonitor record);
RedisMonitor selectByPrimaryKey(Long id);
int updateByPrimaryKeySelective(RedisMonitor record);
List<RedisInfo> selectAllRedisMonitor();
int updateByPrimaryKey(RedisMonitor record);
List<RedisInfo> selectRedisMonitorByLevel(int level);
int bachInsertRedisMonitor(@Param("list") List<RedisMonitor> list);
int updateByPrimaryKey(RedisInfo redis);
void deleteAllRedisMonitor();
List<RedisMonitor> selectAllRedisMonitors();
}
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.monitor.mysql.mapper.RedisMonitorMapper" >
<resultMap id="BaseResultMap" type="com.model.RedisInfo" >
<resultMap id="BaseResultMap" type="com.model.RedisMonitor" >
<id column="id" property="id" jdbcType="BIGINT" />
<result column="alias" property="alias" jdbcType="VARCHAR" />
<result column="host_ip" property="hostIp" jdbcType="VARCHAR" />
<result column="port" property="port" jdbcType="VARCHAR" />
<result column="level" property="level" jdbcType="TINYINT" />
<result column="node_from" property="nodeFrom" jdbcType="VARCHAR" />
<result column="node_to" property="nodeTo" jdbcType="VARCHAR" />
<result column="level" property="level" jdbcType="TINYINT" />
<result column="param_monitor" property="paramMonitor" jdbcType="VARCHAR" />
<result column="state" property="state" jdbcType="TINYINT" />
<result column="cloud_type" property="cloudType" jdbcType="TINYINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, alias, host_ip, port, level, node_from, node_to, param_monitor, state, cloud_type,
create_time, update_time
id, node_from, node_to, level, param_monitor, create_time, update_time
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
select
select
<include refid="Base_Column_List" />
from redis_monitor
where id = #{id,jdbcType=BIGINT}
... ... @@ -29,51 +23,32 @@
delete from redis_monitor
where id = #{id,jdbcType=BIGINT}
</delete>
<insert id="insert" parameterType="com.model.RedisInfo" >
insert into redis_monitor (id, alias, host_ip,
port, level, node_from,
node_to, param_monitor, state,
cloud_type, create_time, update_time
)
values (#{id,jdbcType=BIGINT}, #{alias,jdbcType=VARCHAR}, #{hostIp,jdbcType=VARCHAR},
#{port,jdbcType=VARCHAR}, #{level,jdbcType=TINYINT}, #{nodeFrom,jdbcType=VARCHAR},
#{nodeTo,jdbcType=VARCHAR}, #{paramMonitor,jdbcType=VARCHAR}, #{state,jdbcType=TINYINT},
#{cloudType,jdbcType=TINYINT}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
)
<insert id="insert" parameterType="com.model.RedisMonitor" >
insert into redis_monitor (id, node_from, node_to,
level, param_monitor, create_time,
update_time)
values (#{id,jdbcType=BIGINT}, #{nodeFrom,jdbcType=VARCHAR}, #{nodeTo,jdbcType=VARCHAR},
#{level,jdbcType=TINYINT}, #{paramMonitor,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.model.RedisInfo" >
<insert id="insertSelective" parameterType="com.model.RedisMonitor" >
insert into redis_monitor
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="alias != null" >
alias,
</if>
<if test="hostIp != null" >
host_ip,
</if>
<if test="port != null" >
port,
</if>
<if test="level != null" >
level,
</if>
<if test="nodeFrom != null" >
node_from,
</if>
<if test="nodeTo != null" >
node_to,
</if>
<if test="level != null" >
level,
</if>
<if test="paramMonitor != null" >
param_monitor,
</if>
<if test="state != null" >
state,
</if>
<if test="cloudType != null" >
cloud_type,
</if>
<if test="createTime != null" >
create_time,
</if>
... ... @@ -85,33 +60,18 @@
<if test="id != null" >
#{id,jdbcType=BIGINT},
</if>
<if test="alias != null" >
#{alias,jdbcType=VARCHAR},
</if>
<if test="hostIp != null" >
#{hostIp,jdbcType=VARCHAR},
</if>
<if test="port != null" >
#{port,jdbcType=VARCHAR},
</if>
<if test="level != null" >
#{level,jdbcType=TINYINT},
</if>
<if test="nodeFrom != null" >
#{nodeFrom,jdbcType=VARCHAR},
</if>
<if test="nodeTo != null" >
#{nodeTo,jdbcType=VARCHAR},
</if>
<if test="level != null" >
#{level,jdbcType=TINYINT},
</if>
<if test="paramMonitor != null" >
#{paramMonitor,jdbcType=VARCHAR},
</if>
<if test="state != null" >
#{state,jdbcType=TINYINT},
</if>
<if test="cloudType != null" >
#{cloudType,jdbcType=TINYINT},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=TIMESTAMP},
</if>
... ... @@ -120,36 +80,21 @@
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.model.RedisInfo" >
<update id="updateByPrimaryKeySelective" parameterType="com.model.RedisMonitor" >
update redis_monitor
<set >
<if test="alias != null" >
alias = #{alias,jdbcType=VARCHAR},
</if>
<if test="hostIp != null" >
host_ip = #{hostIp,jdbcType=VARCHAR},
</if>
<if test="port != null" >
port = #{port,jdbcType=VARCHAR},
</if>
<if test="level != null" >
level = #{level,jdbcType=TINYINT},
</if>
<if test="nodeFrom != null" >
node_from = #{nodeFrom,jdbcType=VARCHAR},
</if>
<if test="nodeTo != null" >
node_to = #{nodeTo,jdbcType=VARCHAR},
</if>
<if test="level != null" >
level = #{level,jdbcType=TINYINT},
</if>
<if test="paramMonitor != null" >
param_monitor = #{paramMonitor,jdbcType=VARCHAR},
</if>
<if test="state != null" >
state = #{state,jdbcType=TINYINT},
</if>
<if test="cloudType != null" >
cloud_type = #{cloudType,jdbcType=TINYINT},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
... ... @@ -159,25 +104,35 @@
</set>
where id = #{id,jdbcType=BIGINT}
</update>
<update id="updateByPrimaryKey" parameterType="com.model.RedisInfo" >
<update id="updateByPrimaryKey" parameterType="com.model.RedisMonitor" >
update redis_monitor
set
param_monitor = #{paramMonitor},
update_time = now()
where id = #{id}
set node_from = #{nodeFrom,jdbcType=VARCHAR},
node_to = #{nodeTo,jdbcType=VARCHAR},
level = #{level,jdbcType=TINYINT},
param_monitor = #{paramMonitor,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=BIGINT}
</update>
<select id="selectAllRedisMonitor" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from redis_monitor
where state = 1
</select>
<select id="selectRedisMonitorByLevel" resultMap="BaseResultMap">
<delete id="deleteAllRedisMonitor">
delete from redis_monitor
</delete>
<insert id="bachInsertRedisMonitor" parameterType="com.model.RedisMonitor">
insert into redis_monitor
(node_from, node_to,level, param_monitor)
values
<foreach collection="list" item="item" index="index"
separator=",">
(#{item.nodeFrom},#{item.nodeTo},#{item.level},#{item.paramMonitor})
</foreach>
</insert>
<select id="selectAllRedisMonitors" resultMap="BaseResultMap" >
select
<include refid="Base_Column_List" />
from redis_monitor
where level = #{level},
</select>
</mapper>
\ No newline at end of file
... ...