37 lines
1.6 KiB
Java
37 lines
1.6 KiB
Java
package com.zdjizhi.etl;
|
|
|
|
import cn.hutool.log.Log;
|
|
import cn.hutool.log.LogFactory;
|
|
import com.zdjizhi.common.FlowWriteConfig;
|
|
import com.zdjizhi.common.DosMetricsLog;
|
|
import com.zdjizhi.common.DosSketchLog;
|
|
|
|
class TrafficServerIpMetrics {
|
|
|
|
// private static final Logger logger = LoggerFactory.getLogger(TrafficServerIpMetrics.class);
|
|
private static final Log logger = LogFactory.get();
|
|
|
|
static DosMetricsLog getOutputMetric(DosSketchLog midResuleLog) {
|
|
DosMetricsLog dosMetricsLog = new DosMetricsLog();
|
|
dosMetricsLog.setSketch_start_time(timeFloor(System.currentTimeMillis()/1000));
|
|
dosMetricsLog.setDestination_ip(midResuleLog.getDestination_ip());
|
|
dosMetricsLog.setAttack_type(midResuleLog.getAttack_type());
|
|
dosMetricsLog.setSession_rate(midResuleLog.getSketch_sessions());
|
|
dosMetricsLog.setPacket_rate(midResuleLog.getSketch_packets());
|
|
dosMetricsLog.setBit_rate(midResuleLog.getSketch_bytes());
|
|
dosMetricsLog.setVsys_id(midResuleLog.getVsys_id());
|
|
dosMetricsLog.setPartition_num(getPartitionNumByIp(midResuleLog.getDestination_ip()));
|
|
logger.debug("metric 结果已加载:{}",dosMetricsLog.toString());
|
|
return dosMetricsLog;
|
|
}
|
|
|
|
private static long timeFloor(long sketchStartTime){
|
|
return sketchStartTime / FlowWriteConfig.FLINK_WINDOW_MAX_TIME * FlowWriteConfig.FLINK_WINDOW_MAX_TIME;
|
|
}
|
|
|
|
private static int getPartitionNumByIp(String destinationIp){
|
|
return Math.abs(destinationIp.hashCode()) % FlowWriteConfig.DESTINATION_IP_PARTITION_NUM;
|
|
}
|
|
|
|
}
|