use of com.navercorp.pinpoint.web.applicationmap.link.LinkType in project pinpoint by naver.
the class ApplicationMapBuilder method build.
public ApplicationMap build(LinkDataDuplexMap linkDataDuplexMap, long timeoutMillis) {
Objects.requireNonNull(linkDataDuplexMap, "linkDataDuplexMap");
logger.info("Building application map");
NodeType nodeType = this.nodeType;
if (nodeType == null) {
nodeType = NodeType.DETAILED;
}
LinkType linkType = this.linkType;
if (linkType == null) {
linkType = LinkType.DETAILED;
}
NodeList nodeList = NodeListFactory.createNodeList(nodeType, linkDataDuplexMap);
LinkList linkList = LinkListFactory.createLinkList(linkType, nodeList, linkDataDuplexMap, range);
NodeHistogramFactory nodeHistogramFactory = this.nodeHistogramFactory;
if (nodeHistogramFactory == null) {
nodeHistogramFactory = new EmptyNodeHistogramFactory();
}
NodeHistogramAppender nodeHistogramAppender = nodeHistogramAppenderFactory.create(nodeHistogramFactory);
final TimeoutWatcher timeoutWatcher = new TimeoutWatcher(timeoutMillis);
nodeHistogramAppender.appendNodeHistogram(range, nodeList, linkList, timeoutWatcher.remainingTimeMillis());
ServerInstanceListFactory serverInstanceListFactory = this.serverInstanceListFactory;
if (serverInstanceListFactory == null) {
serverInstanceListFactory = new EmptyServerInstanceListFactory();
}
ServerInfoAppender serverInfoAppender = serverInfoAppenderFactory.create(serverInstanceListFactory);
serverInfoAppender.appendServerInfo(range, nodeList, linkDataDuplexMap, timeoutWatcher.remainingTimeMillis());
MetricInfoAppender metricInfoAppender = metricInfoAppenderFactory.create();
metricInfoAppender.appendMetricInfo(range, nodeList, linkDataDuplexMap);
return new DefaultApplicationMap(range, nodeList, linkList);
}
Aggregations