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

trace dag ui with elasticsearch storage module provider test success.

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