提交 085da839 编写于 作者: P peng-yongsheng

trace dag ui with elasticsearch storage module provider test success.

上级 101d92bf
......@@ -30,7 +30,6 @@ public class NodeReference extends Data {
private static final Column[] STRING_COLUMNS = {
new Column(NodeReferenceTable.COLUMN_ID, new NonOperation()),
new Column(NodeReferenceTable.COLUMN_BEHIND_PEER, new NonOperation()),
};
private static final Column[] LONG_COLUMNS = {
......@@ -61,14 +60,6 @@ public class NodeReference extends Data {
setSummary(0);
}
public String getBehindPeer() {
return getDataString(1);
}
public void setBehindPeer(String behindPeer) {
setDataString(1, behindPeer);
}
public Long getTimeBucket() {
return getDataLong(0);
}
......
......@@ -27,7 +27,6 @@ public class NodeReferenceTable extends CommonTable {
public static final String TABLE = "node_reference";
public static final String COLUMN_FRONT_APPLICATION_ID = "front_application_id";
public static final String COLUMN_BEHIND_APPLICATION_ID = "behind_application_id";
public static final String COLUMN_BEHIND_PEER = "behind_peer";
public static final String COLUMN_S1_LTE = "s1_lte";
public static final String COLUMN_S3_LTE = "s3_lte";
public static final String COLUMN_S5_LTE = "s5_lte";
......
......@@ -30,7 +30,6 @@ import org.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
import org.skywalking.apm.collector.storage.dao.INodeComponentUIDAO;
import org.skywalking.apm.collector.storage.es.base.dao.EsDAO;
import org.skywalking.apm.collector.storage.table.node.NodeComponentTable;
import org.skywalking.apm.network.trace.component.ComponentsDefine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -68,29 +67,21 @@ public class NodeComponentEsUIDAO extends EsDAO implements INodeComponentUIDAO {
JsonArray nodeComponentArray = new JsonArray();
for (Terms.Bucket componentIdBucket : componentIdTerms.getBuckets()) {
int componentId = componentIdBucket.getKeyAsNumber().intValue();
String componentName = ComponentsDefine.getInstance().getComponentName(componentId);
if (componentId != 0) {
buildComponentArray(componentIdBucket, componentName, nodeComponentArray);
}
buildComponentArray(componentIdBucket, componentId, nodeComponentArray);
}
return nodeComponentArray;
}
private void buildComponentArray(Terms.Bucket componentBucket, String componentName, JsonArray nodeComponentArray) {
private void buildComponentArray(Terms.Bucket componentBucket, int componentId, JsonArray nodeComponentArray) {
Terms peerIdTerms = componentBucket.getAggregations().get(NodeComponentTable.COLUMN_PEER_ID);
for (Terms.Bucket peerIdBucket : peerIdTerms.getBuckets()) {
int peerId = peerIdBucket.getKeyAsNumber().intValue();
if (peerId != 0) {
//TODO ApplicationCache
// String peer = ApplicationCache.get(peerId);
JsonObject nodeComponentObj = new JsonObject();
nodeComponentObj.addProperty("componentName", componentName);
// nodeComponentObj.addProperty("peer", peer);
nodeComponentArray.add(nodeComponentObj);
}
JsonObject nodeComponentObj = new JsonObject();
nodeComponentObj.addProperty(NodeComponentTable.COLUMN_COMPONENT_ID, componentId);
nodeComponentObj.addProperty(NodeComponentTable.COLUMN_PEER_ID, peerId);
nodeComponentArray.add(nodeComponentObj);
}
}
}
......@@ -61,20 +61,13 @@ public class NodeMappingEsUIDAO extends EsDAO implements INodeMappingUIDAO {
JsonArray nodeMappingArray = new JsonArray();
for (Terms.Bucket applicationIdBucket : applicationIdTerms.getBuckets()) {
int applicationId = applicationIdBucket.getKeyAsNumber().intValue();
//TODO ApplicationCache
// String applicationCode = ApplicationCache.get(applicationId);
Terms addressIdTerms = applicationIdBucket.getAggregations().get(NodeMappingTable.COLUMN_ADDRESS_ID);
for (Terms.Bucket addressIdBucket : addressIdTerms.getBuckets()) {
int addressId = addressIdBucket.getKeyAsNumber().intValue();
//TODO ApplicationCache
// String address = ApplicationCache.get(addressId);
if (addressId != 0) {
JsonObject nodeMappingObj = new JsonObject();
// nodeMappingObj.addProperty("applicationCode", applicationCode);
// nodeMappingObj.addProperty("address", address);
nodeMappingArray.add(nodeMappingObj);
}
JsonObject nodeMappingObj = new JsonObject();
nodeMappingObj.addProperty(NodeMappingTable.COLUMN_APPLICATION_ID, applicationId);
nodeMappingObj.addProperty(NodeMappingTable.COLUMN_ADDRESS_ID, addressId);
nodeMappingArray.add(nodeMappingObj);
}
}
logger.debug("node mapping data: {}", nodeMappingArray.toString());
......
......@@ -45,7 +45,6 @@ public class NodeReferenceEsPersistenceDAO extends EsDAO implements INodeReferen
Map<String, Object> source = getResponse.getSource();
nodeReference.setFrontApplicationId(((Number)source.get(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID)).intValue());
nodeReference.setBehindApplicationId(((Number)source.get(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID)).intValue());
nodeReference.setBehindPeer((String)source.get(NodeReferenceTable.COLUMN_BEHIND_PEER));
nodeReference.setS1Lte(((Number)source.get(NodeReferenceTable.COLUMN_S1_LTE)).intValue());
nodeReference.setS3Lte(((Number)source.get(NodeReferenceTable.COLUMN_S3_LTE)).intValue());
nodeReference.setS5Lte(((Number)source.get(NodeReferenceTable.COLUMN_S5_LTE)).intValue());
......@@ -63,7 +62,6 @@ public class NodeReferenceEsPersistenceDAO extends EsDAO implements INodeReferen
Map<String, Object> source = new HashMap<>();
source.put(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
source.put(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
source.put(NodeReferenceTable.COLUMN_BEHIND_PEER, data.getBehindPeer());
source.put(NodeReferenceTable.COLUMN_S1_LTE, data.getS1Lte());
source.put(NodeReferenceTable.COLUMN_S3_LTE, data.getS3Lte());
source.put(NodeReferenceTable.COLUMN_S5_LTE, data.getS5Lte());
......@@ -79,7 +77,6 @@ public class NodeReferenceEsPersistenceDAO extends EsDAO implements INodeReferen
Map<String, Object> source = new HashMap<>();
source.put(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
source.put(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
source.put(NodeReferenceTable.COLUMN_BEHIND_PEER, data.getBehindPeer());
source.put(NodeReferenceTable.COLUMN_S1_LTE, data.getS1Lte());
source.put(NodeReferenceTable.COLUMN_S3_LTE, data.getS3Lte());
source.put(NodeReferenceTable.COLUMN_S5_LTE, data.getS5Lte());
......
......@@ -29,7 +29,7 @@ import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.aggregations.metrics.sum.Sum;
import org.skywalking.apm.collector.client.elasticsearch.ElasticSearchClient;
import org.skywalking.apm.collector.core.util.StringUtils;
import org.skywalking.apm.collector.core.util.ColumnNameUtils;
import org.skywalking.apm.collector.storage.dao.INodeReferenceUIDAO;
import org.skywalking.apm.collector.storage.es.base.dao.EsDAO;
import org.skywalking.apm.collector.storage.table.noderef.NodeReferenceTable;
......@@ -62,13 +62,6 @@ public class NodeReferenceEsUIDAO extends EsDAO implements INodeReferenceUIDAO {
.subAggregation(AggregationBuilders.sum(NodeReferenceTable.COLUMN_S5_GT).field(NodeReferenceTable.COLUMN_S5_GT))
.subAggregation(AggregationBuilders.sum(NodeReferenceTable.COLUMN_SUMMARY).field(NodeReferenceTable.COLUMN_SUMMARY))
.subAggregation(AggregationBuilders.sum(NodeReferenceTable.COLUMN_ERROR).field(NodeReferenceTable.COLUMN_ERROR)));
aggregationBuilder.subAggregation(AggregationBuilders.terms(NodeReferenceTable.COLUMN_BEHIND_PEER).field(NodeReferenceTable.COLUMN_BEHIND_PEER).size(100)
.subAggregation(AggregationBuilders.sum(NodeReferenceTable.COLUMN_S1_LTE).field(NodeReferenceTable.COLUMN_S1_LTE))
.subAggregation(AggregationBuilders.sum(NodeReferenceTable.COLUMN_S3_LTE).field(NodeReferenceTable.COLUMN_S3_LTE))
.subAggregation(AggregationBuilders.sum(NodeReferenceTable.COLUMN_S5_LTE).field(NodeReferenceTable.COLUMN_S5_LTE))
.subAggregation(AggregationBuilders.sum(NodeReferenceTable.COLUMN_S5_GT).field(NodeReferenceTable.COLUMN_S5_GT))
.subAggregation(AggregationBuilders.sum(NodeReferenceTable.COLUMN_SUMMARY).field(NodeReferenceTable.COLUMN_SUMMARY))
.subAggregation(AggregationBuilders.sum(NodeReferenceTable.COLUMN_ERROR).field(NodeReferenceTable.COLUMN_ERROR)));
searchRequestBuilder.addAggregation(aggregationBuilder);
SearchResponse searchResponse = searchRequestBuilder.execute().actionGet();
......@@ -76,61 +69,30 @@ public class NodeReferenceEsUIDAO extends EsDAO implements INodeReferenceUIDAO {
JsonArray nodeRefResSumArray = new JsonArray();
Terms frontApplicationIdTerms = searchResponse.getAggregations().get(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID);
for (Terms.Bucket frontApplicationIdBucket : frontApplicationIdTerms.getBuckets()) {
int applicationId = frontApplicationIdBucket.getKeyAsNumber().intValue();
//TODO ApplicationCache
// String applicationCode = ApplicationCache.get(applicationId);
int frontApplicationId = frontApplicationIdBucket.getKeyAsNumber().intValue();
Terms behindApplicationIdTerms = frontApplicationIdBucket.getAggregations().get(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID);
for (Terms.Bucket behindApplicationIdBucket : behindApplicationIdTerms.getBuckets()) {
int behindApplicationId = behindApplicationIdBucket.getKeyAsNumber().intValue();
if (behindApplicationId != 0) {
// String behindApplicationCode = ApplicationCache.get(behindApplicationId);
Sum s1LTE = behindApplicationIdBucket.getAggregations().get(NodeReferenceTable.COLUMN_S1_LTE);
Sum s3LTE = behindApplicationIdBucket.getAggregations().get(NodeReferenceTable.COLUMN_S3_LTE);
Sum s5LTE = behindApplicationIdBucket.getAggregations().get(NodeReferenceTable.COLUMN_S5_LTE);
Sum s5GT = behindApplicationIdBucket.getAggregations().get(NodeReferenceTable.COLUMN_S5_GT);
Sum summary = behindApplicationIdBucket.getAggregations().get(NodeReferenceTable.COLUMN_SUMMARY);
Sum error = behindApplicationIdBucket.getAggregations().get(NodeReferenceTable.COLUMN_ERROR);
logger.debug("applicationId: {}, behindApplicationId: {}, s1LTE: {}, s3LTE: {}, s5LTE: {}, s5GT: {}, error: {}, summary: {}", applicationId,
logger.debug("frontApplicationId: {}, behindApplicationId: {}, s1LTE: {}, s3LTE: {}, s5LTE: {}, s5GT: {}, error: {}, summary: {}", frontApplicationId,
behindApplicationId, s1LTE.getValue(), s3LTE.getValue(), s5LTE.getValue(), s5GT.getValue(), error.getValue(), summary.getValue());
JsonObject nodeRefResSumObj = new JsonObject();
// nodeRefResSumObj.addProperty("front", applicationCode);
// nodeRefResSumObj.addProperty("behind", behindApplicationCode);
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S1_LTE, s1LTE.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S3_LTE, s3LTE.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S5_LTE, s5LTE.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S5_GT, s5GT.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_ERROR, error.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_SUMMARY, summary.getValue());
nodeRefResSumArray.add(nodeRefResSumObj);
}
}
Terms behindPeerTerms = frontApplicationIdBucket.getAggregations().get(NodeReferenceTable.COLUMN_BEHIND_PEER);
for (Terms.Bucket behindPeerBucket : behindPeerTerms.getBuckets()) {
String behindPeer = behindPeerBucket.getKeyAsString();
if (StringUtils.isNotEmpty(behindPeer)) {
Sum s1LTE = behindPeerBucket.getAggregations().get(NodeReferenceTable.COLUMN_S1_LTE);
Sum s3LTE = behindPeerBucket.getAggregations().get(NodeReferenceTable.COLUMN_S3_LTE);
Sum s5LTE = behindPeerBucket.getAggregations().get(NodeReferenceTable.COLUMN_S5_LTE);
Sum s5GT = behindPeerBucket.getAggregations().get(NodeReferenceTable.COLUMN_S5_GT);
Sum summary = behindPeerBucket.getAggregations().get(NodeReferenceTable.COLUMN_SUMMARY);
Sum error = behindPeerBucket.getAggregations().get(NodeReferenceTable.COLUMN_ERROR);
logger.debug("applicationId: {}, behindPeer: {}, s1LTE: {}, s3LTE: {}, s5LTE: {}, s5GT: {}, error: {}, summary: {}", applicationId,
behindPeer, s1LTE.getValue(), s3LTE.getValue(), s5LTE.getValue(), s5GT.getValue(), error.getValue(), summary.getValue());
JsonObject nodeRefResSumObj = new JsonObject();
// nodeRefResSumObj.addProperty("front", applicationCode);
nodeRefResSumObj.addProperty("behind", behindPeer);
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S1_LTE, s1LTE.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S3_LTE, s3LTE.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S5_LTE, s5LTE.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S5_GT, s5GT.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_ERROR, error.getValue());
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_SUMMARY, summary.getValue());
nodeRefResSumObj.addProperty(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID), frontApplicationId);
nodeRefResSumObj.addProperty(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID), behindApplicationId);
nodeRefResSumObj.addProperty(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_S1_LTE), s1LTE.getValue());
nodeRefResSumObj.addProperty(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_S3_LTE), s3LTE.getValue());
nodeRefResSumObj.addProperty(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_S5_LTE), s5LTE.getValue());
nodeRefResSumObj.addProperty(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_S5_GT), s5GT.getValue());
nodeRefResSumObj.addProperty(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_ERROR), error.getValue());
nodeRefResSumObj.addProperty(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_SUMMARY), summary.getValue());
nodeRefResSumArray.add(nodeRefResSumObj);
}
}
......
......@@ -38,7 +38,6 @@ public class NodeReferenceEsTableDefine extends ElasticSearchTableDefine {
@Override public void initialize() {
addColumn(new ElasticSearchColumnDefine(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
addColumn(new ElasticSearchColumnDefine(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID, ElasticSearchColumnDefine.Type.Integer.name()));
addColumn(new ElasticSearchColumnDefine(NodeReferenceTable.COLUMN_BEHIND_PEER, ElasticSearchColumnDefine.Type.Keyword.name()));
addColumn(new ElasticSearchColumnDefine(NodeReferenceTable.COLUMN_S1_LTE, ElasticSearchColumnDefine.Type.Integer.name()));
addColumn(new ElasticSearchColumnDefine(NodeReferenceTable.COLUMN_S3_LTE, ElasticSearchColumnDefine.Type.Integer.name()));
addColumn(new ElasticSearchColumnDefine(NodeReferenceTable.COLUMN_S5_LTE, ElasticSearchColumnDefine.Type.Integer.name()));
......
......@@ -56,7 +56,6 @@ public class NodeReferenceH2PersistenceDAO extends H2DAO implements INodeReferen
NodeReference nodeReference = new NodeReference(id);
nodeReference.setFrontApplicationId(rs.getInt(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID));
nodeReference.setBehindApplicationId(rs.getInt(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID));
nodeReference.setBehindPeer(rs.getString(NodeReferenceTable.COLUMN_BEHIND_PEER));
nodeReference.setS1Lte(rs.getInt(NodeReferenceTable.COLUMN_S1_LTE));
nodeReference.setS3Lte(rs.getInt(NodeReferenceTable.COLUMN_S3_LTE));
nodeReference.setS5Lte(rs.getInt(NodeReferenceTable.COLUMN_S5_LTE));
......@@ -78,7 +77,6 @@ public class NodeReferenceH2PersistenceDAO extends H2DAO implements INodeReferen
source.put(NodeReferenceTable.COLUMN_ID, data.getId());
source.put(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
source.put(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
source.put(NodeReferenceTable.COLUMN_BEHIND_PEER, data.getBehindPeer());
source.put(NodeReferenceTable.COLUMN_S1_LTE, data.getS1Lte());
source.put(NodeReferenceTable.COLUMN_S3_LTE, data.getS3Lte());
source.put(NodeReferenceTable.COLUMN_S5_LTE, data.getS5Lte());
......@@ -98,7 +96,6 @@ public class NodeReferenceH2PersistenceDAO extends H2DAO implements INodeReferen
H2SqlEntity entity = new H2SqlEntity();
source.put(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID, data.getFrontApplicationId());
source.put(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID, data.getBehindApplicationId());
source.put(NodeReferenceTable.COLUMN_BEHIND_PEER, data.getBehindPeer());
source.put(NodeReferenceTable.COLUMN_S1_LTE, data.getS1Lte());
source.put(NodeReferenceTable.COLUMN_S3_LTE, data.getS3Lte());
source.put(NodeReferenceTable.COLUMN_S5_LTE, data.getS5Lte());
......
......@@ -24,7 +24,6 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import org.skywalking.apm.collector.client.h2.H2Client;
import org.skywalking.apm.collector.client.h2.H2ClientException;
import org.skywalking.apm.collector.core.util.StringUtils;
import org.skywalking.apm.collector.storage.base.sql.SqlBuilder;
import org.skywalking.apm.collector.storage.dao.INodeReferenceUIDAO;
import org.skywalking.apm.collector.storage.h2.base.dao.H2DAO;
......@@ -52,7 +51,7 @@ public class NodeReferenceH2UIDAO extends H2DAO implements INodeReferenceUIDAO {
NodeReferenceTable.COLUMN_S3_LTE, NodeReferenceTable.COLUMN_S5_LTE,
NodeReferenceTable.COLUMN_S5_GT, NodeReferenceTable.COLUMN_SUMMARY,
NodeReferenceTable.COLUMN_ERROR, NodeReferenceTable.TABLE, NodeReferenceTable.COLUMN_TIME_BUCKET,
NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID, NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID, NodeReferenceTable.COLUMN_BEHIND_PEER);
NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID, NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID);
Object[] params = new Object[] {startTime, endTime};
try (ResultSet rs = client.executeQuery(sql, params)) {
......@@ -75,19 +74,6 @@ public class NodeReferenceH2UIDAO extends H2DAO implements INodeReferenceUIDAO {
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_SUMMARY, rs.getDouble(NodeReferenceTable.COLUMN_SUMMARY));
nodeRefResSumArray.add(nodeRefResSumObj);
}
String behindPeer = rs.getString(NodeReferenceTable.COLUMN_BEHIND_PEER);
if (StringUtils.isNotEmpty(behindPeer)) {
JsonObject nodeRefResSumObj = new JsonObject();
// nodeRefResSumObj.addProperty("front", applicationCode);
nodeRefResSumObj.addProperty("behind", behindPeer);
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S1_LTE, rs.getDouble(NodeReferenceTable.COLUMN_S1_LTE));
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S3_LTE, rs.getDouble(NodeReferenceTable.COLUMN_S3_LTE));
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S5_LTE, rs.getDouble(NodeReferenceTable.COLUMN_S5_LTE));
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_S5_GT, rs.getDouble(NodeReferenceTable.COLUMN_S5_GT));
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_ERROR, rs.getDouble(NodeReferenceTable.COLUMN_ERROR));
nodeRefResSumObj.addProperty(NodeReferenceTable.COLUMN_SUMMARY, rs.getDouble(NodeReferenceTable.COLUMN_SUMMARY));
nodeRefResSumArray.add(nodeRefResSumObj);
}
}
} catch (SQLException | H2ClientException e) {
logger.error(e.getMessage(), e);
......
......@@ -35,7 +35,6 @@ public class NodeReferenceH2TableDefine extends H2TableDefine {
addColumn(new H2ColumnDefine(NodeReferenceTable.COLUMN_ID, H2ColumnDefine.Type.Varchar.name()));
addColumn(new H2ColumnDefine(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
addColumn(new H2ColumnDefine(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID, H2ColumnDefine.Type.Int.name()));
addColumn(new H2ColumnDefine(NodeReferenceTable.COLUMN_BEHIND_PEER, H2ColumnDefine.Type.Varchar.name()));
addColumn(new H2ColumnDefine(NodeReferenceTable.COLUMN_S1_LTE, H2ColumnDefine.Type.Int.name()));
addColumn(new H2ColumnDefine(NodeReferenceTable.COLUMN_S3_LTE, H2ColumnDefine.Type.Int.name()));
addColumn(new H2ColumnDefine(NodeReferenceTable.COLUMN_S5_LTE, H2ColumnDefine.Type.Int.name()));
......
......@@ -23,8 +23,15 @@ import com.google.gson.JsonObject;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import org.skywalking.apm.collector.cache.CacheModule;
import org.skywalking.apm.collector.cache.service.ApplicationCacheService;
import org.skywalking.apm.collector.core.module.ModuleManager;
import org.skywalking.apm.collector.core.util.ColumnNameUtils;
import org.skywalking.apm.collector.core.util.Const;
import org.skywalking.apm.collector.storage.table.node.NodeComponentTable;
import org.skywalking.apm.collector.storage.table.node.NodeMappingTable;
import org.skywalking.apm.collector.storage.table.noderef.NodeReferenceTable;
import org.skywalking.apm.network.trace.component.ComponentsDefine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -40,12 +47,17 @@ public class TraceDagDataBuilder {
private Map<String, Integer> nodeIdMap = new HashMap<>();
private JsonArray pointArray = new JsonArray();
private JsonArray lineArray = new JsonArray();
private final ApplicationCacheService applicationCacheService;
public TraceDagDataBuilder(ModuleManager moduleManager) {
this.applicationCacheService = moduleManager.find(CacheModule.NAME).getService(ApplicationCacheService.class);
}
public JsonObject build(JsonArray nodeCompArray, JsonArray nodesMappingArray, JsonArray resSumArray) {
changeNodeComp2Map(nodeCompArray);
changeMapping2Map(nodesMappingArray);
Map<String, JsonObject> mergedResSumMap = merge(resSumArray);
Map<String, JsonObject> mergedResSumMap = getApplicationCode(resSumArray);
mergedResSumMap.values().forEach(nodeRefJsonObj -> {
String front = nodeRefJsonObj.get("front").getAsString();
......@@ -94,8 +106,10 @@ public class TraceDagDataBuilder {
private void changeMapping2Map(JsonArray nodesMappingArray) {
for (int i = 0; i < nodesMappingArray.size(); i++) {
JsonObject nodesMappingJsonObj = nodesMappingArray.get(i).getAsJsonObject();
String applicationCode = nodesMappingJsonObj.get("applicationCode").getAsString();
String address = nodesMappingJsonObj.get("address").getAsString();
int applicationId = nodesMappingJsonObj.get(NodeMappingTable.COLUMN_APPLICATION_ID).getAsInt();
String applicationCode = applicationCacheService.get(applicationId);
int addressId = nodesMappingJsonObj.get(NodeMappingTable.COLUMN_ADDRESS_ID).getAsInt();
String address = applicationCacheService.get(addressId);
mappingMap.put(address, applicationCode);
}
}
......@@ -104,8 +118,10 @@ public class TraceDagDataBuilder {
for (int i = 0; i < nodeCompArray.size(); i++) {
JsonObject nodesJsonObj = nodeCompArray.get(i).getAsJsonObject();
logger.debug(nodesJsonObj.toString());
String componentName = nodesJsonObj.get("componentName").getAsString();
String peer = nodesJsonObj.get("peer").getAsString();
int componentId = nodesJsonObj.get(NodeComponentTable.COLUMN_COMPONENT_ID).getAsInt();
String componentName = ComponentsDefine.getInstance().getComponentName(componentId);
int peerId = nodesJsonObj.get(NodeComponentTable.COLUMN_PEER_ID).getAsInt();
String peer = applicationCacheService.get(peerId);
nodeCompMap.put(peer, componentName);
}
}
......@@ -114,25 +130,21 @@ public class TraceDagDataBuilder {
return mappingMap.containsKey(peers);
}
private Map<String, JsonObject> merge(JsonArray nodeReference) {
private Map<String, JsonObject> getApplicationCode(JsonArray nodeReference) {
Map<String, JsonObject> mergedRef = new LinkedHashMap<>();
for (int i = 0; i < nodeReference.size(); i++) {
JsonObject nodeRefJsonObj = nodeReference.get(i).getAsJsonObject();
String front = nodeRefJsonObj.get("front").getAsString();
String behind = nodeRefJsonObj.get("behind").getAsString();
int frontApplicationId = nodeRefJsonObj.get(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_FRONT_APPLICATION_ID)).getAsInt();
int behindApplicationId = nodeRefJsonObj.get(ColumnNameUtils.INSTANCE.rename(NodeReferenceTable.COLUMN_BEHIND_APPLICATION_ID)).getAsInt();
String front = applicationCacheService.get(frontApplicationId);
String behind = applicationCacheService.get(behindApplicationId);
String id = front + Const.ID_SPLIT + behind;
if (mergedRef.containsKey(id)) {
JsonObject oldValue = mergedRef.get(id);
oldValue.addProperty(NodeReferenceTable.COLUMN_S1_LTE, oldValue.get(NodeReferenceTable.COLUMN_S1_LTE).getAsLong() + nodeRefJsonObj.get(NodeReferenceTable.COLUMN_S1_LTE).getAsLong());
oldValue.addProperty(NodeReferenceTable.COLUMN_S3_LTE, oldValue.get(NodeReferenceTable.COLUMN_S3_LTE).getAsLong() + nodeRefJsonObj.get(NodeReferenceTable.COLUMN_S3_LTE).getAsLong());
oldValue.addProperty(NodeReferenceTable.COLUMN_S5_LTE, oldValue.get(NodeReferenceTable.COLUMN_S5_LTE).getAsLong() + nodeRefJsonObj.get(NodeReferenceTable.COLUMN_S5_LTE).getAsLong());
oldValue.addProperty(NodeReferenceTable.COLUMN_S5_GT, oldValue.get(NodeReferenceTable.COLUMN_S5_GT).getAsLong() + nodeRefJsonObj.get(NodeReferenceTable.COLUMN_S5_GT).getAsLong());
oldValue.addProperty(NodeReferenceTable.COLUMN_ERROR, oldValue.get(NodeReferenceTable.COLUMN_ERROR).getAsLong() + nodeRefJsonObj.get(NodeReferenceTable.COLUMN_ERROR).getAsLong());
oldValue.addProperty(NodeReferenceTable.COLUMN_SUMMARY, oldValue.get(NodeReferenceTable.COLUMN_SUMMARY).getAsLong() + nodeRefJsonObj.get(NodeReferenceTable.COLUMN_SUMMARY).getAsLong());
} else {
mergedRef.put(id, nodeReference.get(i).getAsJsonObject());
}
nodeRefJsonObj.addProperty("front", front);
nodeRefJsonObj.addProperty("behind", behind);
mergedRef.put(id, nodeRefJsonObj);
}
return mergedRef;
......
......@@ -38,8 +38,10 @@ public class TraceDagService {
private final INodeComponentUIDAO nodeComponentDAO;
private final INodeMappingUIDAO nodeMappingDAO;
private final INodeReferenceUIDAO nodeRefSumDAO;
private final ModuleManager moduleManager;
public TraceDagService(ModuleManager moduleManager) {
this.moduleManager = moduleManager;
this.nodeComponentDAO = moduleManager.find(StorageModule.NAME).getService(INodeComponentUIDAO.class);
this.nodeMappingDAO = moduleManager.find(StorageModule.NAME).getService(INodeMappingUIDAO.class);
this.nodeRefSumDAO = moduleManager.find(StorageModule.NAME).getService(INodeReferenceUIDAO.class);
......@@ -53,7 +55,7 @@ public class TraceDagService {
JsonArray nodeRefSumArray = nodeRefSumDAO.load(startTime, endTime);
TraceDagDataBuilder builder = new TraceDagDataBuilder();
TraceDagDataBuilder builder = new TraceDagDataBuilder(moduleManager);
JsonObject traceDag = builder.build(nodeComponentArray, nodeMappingArray, nodeRefSumArray);
return traceDag;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册