package com.github.ltsopensource.admin.access.mysql; import com.github.ltsopensource.admin.access.RshHandler; import com.github.ltsopensource.admin.access.face.BackendJVMMemoryAccess; import com.github.ltsopensource.admin.request.JvmDataReq; import com.github.ltsopensource.admin.request.MDataPaginationReq; import com.github.ltsopensource.core.cluster.Config; import com.github.ltsopensource.monitor.access.domain.JVMMemoryDataPo; import com.github.ltsopensource.monitor.access.mysql.MysqlJVMMemoryAccess; import com.github.ltsopensource.store.jdbc.builder.DeleteSql; import com.github.ltsopensource.store.jdbc.builder.SelectSql; import com.github.ltsopensource.store.jdbc.builder.WhereSql; import java.util.List; /** * @author Robert HG (254963746@qq.com) on 3/9/16. */ public class MysqlBackendJVMMemoryAccess extends MysqlJVMMemoryAccess implements BackendJVMMemoryAccess { public MysqlBackendJVMMemoryAccess(Config config) { super(config); } @Override public void delete(JvmDataReq request) { new DeleteSql(getSqlTemplate()) .delete() .from() .table(getTableName()) .whereSql(buildWhereSql(request)) .doDelete(); } @Override public List<JVMMemoryDataPo> queryAvg(MDataPaginationReq request) { return new SelectSql(getSqlTemplate()) .select() .columns("timestamp", "AVG(heap_memory_committed) AS heap_memory_committed", "AVG(heap_memory_init) AS heap_memory_init", "AVG(heap_memory_max) AS heap_memory_max", "AVG(heap_memory_used) AS heap_memory_used", "AVG(non_heap_memory_committed) AS non_heap_memory_committed", "AVG(non_heap_memory_init) AS non_heap_memory_init", "AVG(non_heap_memory_max) AS non_heap_memory_max", "AVG(non_heap_memory_used) AS non_heap_memory_used", "AVG(perm_gen_committed) AS perm_gen_committed", "AVG(perm_gen_init) AS perm_gen_init", "AVG(perm_gen_max) AS perm_gen_max", "AVG(perm_gen_used) AS perm_gen_used", "AVG(old_gen_committed) AS old_gen_committed", "AVG(old_gen_init) AS old_gen_init", "AVG(old_gen_max) AS old_gen_max", "AVG(old_gen_used) AS old_gen_used", "AVG(eden_space_committed) AS eden_space_committed", "AVG(eden_space_init) AS eden_space_init", "AVG(eden_space_max) AS eden_space_max", "AVG(eden_space_used) AS eden_space_used", "AVG(survivor_committed) AS survivor_committed", "AVG(survivor_init) AS survivor_init", "AVG(survivor_max) AS survivor_max", "AVG(survivor_used) AS survivor_used") .from() .table(getTableName()) .whereSql(buildWhereSql(request)) .groupBy(" timestamp ASC ") .limit(request.getStart(), request.getLimit()) .list(RshHandler.JVM_MEMORY_SUM_M_DATA_RSH); } public WhereSql buildWhereSql(JvmDataReq req) { return new WhereSql() .andOnNotEmpty("identity = ?", req.getIdentity()) .andBetween("timestamp", req.getStartTime(), req.getEndTime()); } public WhereSql buildWhereSql(MDataPaginationReq request) { return new WhereSql() .andOnNotNull("id = ?", request.getId()) .andOnNotEmpty("identity = ?", request.getIdentity()) .andOnNotEmpty("node_group = ?", request.getNodeGroup()) .andBetween("timestamp", request.getStartTime(), request.getEndTime()); } }