Пример #1
0
  public List queryServerPerformance(String day, String field) {
    List list = new ArrayList();
    StringBuffer sql = new StringBuffer(200);
    sql.append(
        "select topo_tbl.ip_long ip_long,topo_tbl.ip_address ip_address,topo_tbl.alias alias,cpu_tbl.id node_id,cpu_value,mem_value,disk_value from");
    sql.append(" (select * from topo_host_node where category=4) topo_tbl left join");
    /* cpu */
    sql.append(
        " (select a.node_id id,ROUND(avg(a.percentage),1) cpu_value from topo_node_multi_data a");
    sql.append(
        " where a.moid in ('001001','004001') or a.moid='001001' and substring(a.log_time,1,10)='");
    sql.append(day);
    sql.append("' group by a.node_id) cpu_tbl ");
    sql.append(" on (topo_tbl.id=cpu_tbl.id) left join");
    /* mem */
    sql.append(
        " (select b.node_id id,ROUND(avg(b.value),1) mem_value from topo_node_single_data b");
    sql.append(" where b.moid in('001002','004002') and substring(b.log_time,1,10)='");
    sql.append(day);
    sql.append("' group by b.node_id ) mem_tbl ");
    sql.append(" on (topo_tbl.id=mem_tbl.id) left join");
    /* disk */
    sql.append(
        " (select c.node_id id,ROUND(avg(c.percentage),1) disk_value from topo_node_multi_data c");
    sql.append(" where c.moid in ('001003','004003') and substring(c.log_time,1,10)='");
    sql.append(day);
    sql.append("' group by c.node_id ) disk_tbl ");
    sql.append(" on (topo_tbl.id=disk_tbl.id)");
    if (field.equals("ip_long")) {
      sql.append(" order by " + field);
    } else {
      sql.append(" order by " + field + " desc");
    }

    try {
      rs = conn.executeQuery(sql.toString());
      while (rs.next()) {
        ServerPerformance vo = new ServerPerformance();
        vo.setNodeId(rs.getInt("node_id"));
        vo.setIpAddress(rs.getString("ip_address"));
        vo.setAlias(rs.getString("alias"));
        vo.setCpuValue(rs.getFloat("cpu_value"));
        vo.setDiskValue(rs.getFloat("disk_value"));
        vo.setMemValue(rs.getFloat("mem_value"));
        list.add(vo);
      }
    } catch (Exception ex) {
      ex.printStackTrace();
    } finally {
      conn.close();
    }
    return list;
  }