56 lines
2.3 KiB
Java
56 lines
2.3 KiB
Java
package com.zdjizhi.utils.functions.map;
|
|
|
|
import cn.hutool.log.Log;
|
|
import cn.hutool.log.LogFactory;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.alibaba.fastjson2.JSONWriter;
|
|
import com.zdjizhi.common.config.GlobalConfig;
|
|
import com.zdjizhi.common.pojo.AppProtocol;
|
|
import com.zdjizhi.utils.StringUtil;
|
|
import com.zdjizhi.utils.general.FormatConverterUtil;
|
|
import org.apache.flink.api.common.functions.FlatMapFunction;
|
|
import org.apache.flink.util.Collector;
|
|
|
|
/**
|
|
* @author qidaijie
|
|
* @Package com.zdjizhi.utils.functions
|
|
* @Description:
|
|
* @date 2021/7/2114:52
|
|
*/
|
|
public class ResultFlatMap implements FlatMapFunction<AppProtocol, String> {
|
|
private static final Log logger = LogFactory.get();
|
|
|
|
@Override
|
|
@SuppressWarnings("unchecked")
|
|
public void flatMap(AppProtocol appProtocol, Collector<String> out) throws Exception {
|
|
try {
|
|
JSONObject tags = FormatConverterUtil.getTags(appProtocol);
|
|
JSONObject conversion = FormatConverterUtil.structureConversion(appProtocol);
|
|
|
|
String protocolStackId = tags.getString("protocol_stack_id");
|
|
|
|
out.collect(FormatConverterUtil.updateTagsData(conversion, tags));
|
|
tags.remove("app_name");
|
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
String[] protocolIds = protocolStackId.split(GlobalConfig.PROTOCOL_SPLITTER);
|
|
int protocolIdsNum = protocolIds.length;
|
|
for (int i = 0; i < protocolIdsNum - 1; i++) {
|
|
if (StringUtil.isBlank(stringBuilder.toString())) {
|
|
stringBuilder.append(protocolIds[i]);
|
|
tags.put("protocol_stack_id", stringBuilder.toString());
|
|
out.collect(FormatConverterUtil.updateTagsData(conversion, tags));
|
|
} else {
|
|
stringBuilder.append(".").append(protocolIds[i]);
|
|
tags.put("protocol_stack_id", stringBuilder.toString());
|
|
conversion.put("tags", tags);
|
|
out.collect(FormatConverterUtil.updateTagsData(conversion, tags));
|
|
}
|
|
}
|
|
} catch (RuntimeException e) {
|
|
logger.error("An exception occurred during parsing the result data,error message is:" + e);
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|