41 lines
1.6 KiB
Java
41 lines
1.6 KiB
Java
package com.zdjizhi.etl;
|
|
|
|
import com.zdjizhi.common.CommonConfig;
|
|
import com.zdjizhi.common.DosMetricsLog;
|
|
import com.zdjizhi.common.DosSketchLog;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
class TrafficServerIpMetrics {
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(TrafficServerIpMetrics.class);
|
|
|
|
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.setPartition_num(getPartitionNumByIp(midResuleLog.getDestination_ip()));
|
|
logger.debug("metric 结果已加载:{}",dosMetricsLog.toString());
|
|
return dosMetricsLog;
|
|
}
|
|
|
|
private static long timeFloor(long sketchStartTime){
|
|
return sketchStartTime / CommonConfig.FLINK_WINDOW_MAX_TIME * CommonConfig.FLINK_WINDOW_MAX_TIME;
|
|
}
|
|
|
|
private static int getPartitionNumByIp(String destinationIp){
|
|
return Math.abs(destinationIp.hashCode()) % CommonConfig.DESTINATION_IP_PARTITION_NUM;
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
System.out.println(getPartitionNumByIp("146.177.223.43"));
|
|
System.out.println("146.177.223.43".hashCode());
|
|
}
|
|
|
|
}
|