Search in sources :

Example 1 with Node

use of com.navercorp.pinpoint.web.applicationmap.nodes.Node in project pinpoint by naver.

the class FilteredMapServiceImplTest method twoTier.

/**
 * USER -> ROOT_APP -> APP_A -> CACHE
 */
@Test
public void twoTier() {
    // Given
    Range originalRange = Range.newRange(1000, 2000);
    Range scanRange = Range.newRange(1000, 2000);
    final TimeWindow timeWindow = new TimeWindow(originalRange, TimeWindowDownSampler.SAMPLER);
    // root app span
    long rootSpanId = RANDOM.nextLong();
    long rootSpanStartTime = 1000L;
    long rootSpanCollectorAcceptTime = 1210L;
    int rootSpanElapsed = 200;
    SpanBo rootSpan = new TestTraceUtils.SpanBuilder("ROOT_APP", "root-agent").spanId(rootSpanId).startTime(rootSpanStartTime).collectorAcceptTime(rootSpanCollectorAcceptTime).elapsed(rootSpanElapsed).build();
    // app A span
    long appASpanId = RANDOM.nextLong();
    long appASpanStartTime = 1020L;
    long appASpanCollectorAcceptTime = 1090L;
    int appASpanElapsed = 160;
    SpanBo appASpan = new TestTraceUtils.SpanBuilder("APP_A", "app-a").spanId(appASpanId).parentSpan(rootSpan).startTime(appASpanStartTime).collectorAcceptTime(appASpanCollectorAcceptTime).elapsed(appASpanElapsed).build();
    // root app -> app A rpc span event
    SpanEventBo rootRpcSpanEvent = new TestTraceUtils.RpcSpanEventBuilder("www.foo.com/bar", 10, 190).nextSpanId(appASpanId).build();
    rootSpan.addSpanEvent(rootRpcSpanEvent);
    // app A -> cache span event
    int cacheStartElapsed = 20;
    int cacheEndElapsed = 130;
    SpanEventBo appACacheSpanEvent = new TestTraceUtils.CacheSpanEventBuilder("CacheName", "1.1.1.1", cacheStartElapsed, cacheEndElapsed).build();
    appASpan.addSpanEvent(appACacheSpanEvent);
    when(traceDao.selectAllSpans(anyList(), isNull())).thenReturn(Collections.singletonList(Arrays.asList(rootSpan, appASpan)));
    // When
    final FilteredMapServiceOption option = new FilteredMapServiceOption.Builder(Collections.emptyList(), originalRange, scanRange, 1, 1, Filter.acceptAllFilter(), 0).build();
    ApplicationMap applicationMap = filteredMapService.selectApplicationMapWithScatterData(option);
    // Then
    Collection<Node> nodes = applicationMap.getNodes();
    Assert.assertEquals(4, nodes.size());
    for (Node node : nodes) {
        Application application = node.getApplication();
        if (application.getName().equals("ROOT_APP") && application.getServiceType().getCode() == TestTraceUtils.USER_TYPE_CODE) {
            // USER node
            NodeHistogram nodeHistogram = node.getNodeHistogram();
            // histogram
            Histogram applicationHistogram = nodeHistogram.getApplicationHistogram();
            assertHistogram(applicationHistogram, 1, 0, 0, 0, 0);
            Map<String, Histogram> agentHistogramMap = nodeHistogram.getAgentHistogramMap();
            Assert.assertTrue(agentHistogramMap.isEmpty());
            // time histogram
            HistogramSchema histogramSchema = node.getServiceType().getHistogramSchema();
            List<ResponseTimeViewModel.TimeCount> expectedTimeCounts = Collections.singletonList(new ResponseTimeViewModel.TimeCount(timeWindow.refineTimestamp(rootSpanCollectorAcceptTime), 1));
            List<TimeViewModel> applicationTimeHistogram = nodeHistogram.getApplicationTimeHistogram(node.getTimeHistogramFormat());
            assertTimeHistogram(applicationTimeHistogram, histogramSchema.getFastSlot(), expectedTimeCounts);
            AgentResponseTimeViewModelList agentTimeHistogram = nodeHistogram.getAgentTimeHistogram(TimeHistogramFormat.V1);
            Assert.assertTrue(agentTimeHistogram.getAgentResponseTimeViewModelList().isEmpty());
        } else if (application.getName().equals("ROOT_APP") && application.getServiceType().getCode() == TestTraceUtils.TEST_STAND_ALONE_TYPE_CODE) {
            // ROOT_APP node
            NodeHistogram nodeHistogram = node.getNodeHistogram();
            // histogram
            Histogram applicationHistogram = nodeHistogram.getApplicationHistogram();
            assertHistogram(applicationHistogram, 1, 0, 0, 0, 0);
            Map<String, Histogram> agentHistogramMap = nodeHistogram.getAgentHistogramMap();
            assertAgentHistogram(agentHistogramMap, "root-agent", 1, 0, 0, 0, 0);
            // time histogram
            HistogramSchema histogramSchema = node.getServiceType().getHistogramSchema();
            List<ResponseTimeViewModel.TimeCount> expectedTimeCounts = Collections.singletonList(new ResponseTimeViewModel.TimeCount(timeWindow.refineTimestamp(rootSpanCollectorAcceptTime), 1));
            List<TimeViewModel> applicationTimeHistogram = nodeHistogram.getApplicationTimeHistogram(node.getTimeHistogramFormat());
            assertTimeHistogram(applicationTimeHistogram, histogramSchema.getFastSlot(), expectedTimeCounts);
            AgentResponseTimeViewModelList agentTimeHistogram = nodeHistogram.getAgentTimeHistogram(TimeHistogramFormat.V1);
            assertAgentTimeHistogram(agentTimeHistogram.getAgentResponseTimeViewModelList(), "root-agent", histogramSchema.getFastSlot(), expectedTimeCounts);
        } else if (application.getName().equals("APP_A") && application.getServiceType().getCode() == TestTraceUtils.TEST_STAND_ALONE_TYPE_CODE) {
            // APP_A node
            NodeHistogram nodeHistogram = node.getNodeHistogram();
            // histogram
            Histogram applicationHistogram = nodeHistogram.getApplicationHistogram();
            assertHistogram(applicationHistogram, 1, 0, 0, 0, 0);
            Map<String, Histogram> agentHistogramMap = nodeHistogram.getAgentHistogramMap();
            assertAgentHistogram(agentHistogramMap, "app-a", 1, 0, 0, 0, 0);
            // time histogram
            HistogramSchema histogramSchema = node.getServiceType().getHistogramSchema();
            List<ResponseTimeViewModel.TimeCount> expectedTimeCounts = Collections.singletonList(new ResponseTimeViewModel.TimeCount(timeWindow.refineTimestamp(appASpanCollectorAcceptTime), 1));
            List<TimeViewModel> applicationTimeHistogram = nodeHistogram.getApplicationTimeHistogram(node.getTimeHistogramFormat());
            assertTimeHistogram(applicationTimeHistogram, histogramSchema.getFastSlot(), expectedTimeCounts);
            AgentResponseTimeViewModelList agentTimeHistogram = nodeHistogram.getAgentTimeHistogram(TimeHistogramFormat.V1);
            assertAgentTimeHistogram(agentTimeHistogram.getAgentResponseTimeViewModelList(), "app-a", histogramSchema.getFastSlot(), expectedTimeCounts);
        } else if (application.getName().equals("CacheName") && application.getServiceType().getCode() == TestTraceUtils.CACHE_TYPE_CODE) {
            // CACHE node
            NodeHistogram nodeHistogram = node.getNodeHistogram();
            // histogram
            Histogram applicationHistogram = nodeHistogram.getApplicationHistogram();
            assertHistogram(applicationHistogram, 0, 1, 0, 0, 0);
            Map<String, Histogram> agentHistogramMap = nodeHistogram.getAgentHistogramMap();
            assertAgentHistogram(agentHistogramMap, "1.1.1.1", 0, 1, 0, 0, 0);
            // time histogram
            HistogramSchema histogramSchema = node.getServiceType().getHistogramSchema();
            List<ResponseTimeViewModel.TimeCount> expectedTimeCounts = Collections.singletonList(new ResponseTimeViewModel.TimeCount(timeWindow.refineTimestamp(appASpanStartTime + cacheStartElapsed), 1));
            List<TimeViewModel> applicationTimeHistogram = nodeHistogram.getApplicationTimeHistogram(node.getTimeHistogramFormat());
            assertTimeHistogram(applicationTimeHistogram, histogramSchema.getNormalSlot(), expectedTimeCounts);
            AgentResponseTimeViewModelList agentTimeHistogram = nodeHistogram.getAgentTimeHistogram(TimeHistogramFormat.V1);
            assertAgentTimeHistogram(agentTimeHistogram.getAgentResponseTimeViewModelList(), "1.1.1.1", histogramSchema.getNormalSlot(), expectedTimeCounts);
        } else {
            fail("Unexpected node : " + node);
        }
    }
    Collection<Link> links = applicationMap.getLinks();
    Assert.assertEquals(3, links.size());
    for (Link link : links) {
        Application fromApplication = link.getFrom().getApplication();
        Application toApplication = link.getTo().getApplication();
        if ((fromApplication.getName().equals("ROOT_APP") && fromApplication.getServiceType().getCode() == TestTraceUtils.USER_TYPE_CODE) && (toApplication.getName().equals("ROOT_APP") && toApplication.getServiceType().getCode() == TestTraceUtils.TEST_STAND_ALONE_TYPE_CODE)) {
            // histogram
            Histogram histogram = link.getHistogram();
            assertHistogram(histogram, 1, 0, 0, 0, 0);
            // time histogram
            List<TimeViewModel> linkApplicationTimeSeriesHistogram = link.getLinkApplicationTimeSeriesHistogram();
            HistogramSchema targetHistogramSchema = toApplication.getServiceType().getHistogramSchema();
            List<ResponseTimeViewModel.TimeCount> expectedTimeCounts = Collections.singletonList(new ResponseTimeViewModel.TimeCount(timeWindow.refineTimestamp(rootSpanCollectorAcceptTime), 1));
            assertTimeHistogram(linkApplicationTimeSeriesHistogram, targetHistogramSchema.getFastSlot(), expectedTimeCounts);
        } else if ((fromApplication.getName().equals("ROOT_APP") && fromApplication.getServiceType().getCode() == TestTraceUtils.TEST_STAND_ALONE_TYPE_CODE) && (toApplication.getName().equals("APP_A") && toApplication.getServiceType().getCode() == TestTraceUtils.TEST_STAND_ALONE_TYPE_CODE)) {
            // histogram
            Histogram histogram = link.getHistogram();
            assertHistogram(histogram, 1, 0, 0, 0, 0);
            // time histogram
            List<TimeViewModel> linkApplicationTimeSeriesHistogram = link.getLinkApplicationTimeSeriesHistogram();
            HistogramSchema targetHistogramSchema = toApplication.getServiceType().getHistogramSchema();
            List<ResponseTimeViewModel.TimeCount> expectedTimeCounts = Collections.singletonList(new ResponseTimeViewModel.TimeCount(timeWindow.refineTimestamp(appASpanCollectorAcceptTime), 1));
            assertTimeHistogram(linkApplicationTimeSeriesHistogram, targetHistogramSchema.getFastSlot(), expectedTimeCounts);
        } else if ((fromApplication.getName().equals("APP_A") && fromApplication.getServiceType().getCode() == TestTraceUtils.TEST_STAND_ALONE_TYPE_CODE) && (toApplication.getName().equals("CacheName") && toApplication.getServiceType().getCode() == TestTraceUtils.CACHE_TYPE_CODE)) {
            // histogram
            Histogram histogram = link.getHistogram();
            assertHistogram(histogram, 0, 1, 0, 0, 0);
            // time histogram
            List<TimeViewModel> linkApplicationTimeSeriesHistogram = link.getLinkApplicationTimeSeriesHistogram();
            HistogramSchema targetHistogramSchema = toApplication.getServiceType().getHistogramSchema();
            List<ResponseTimeViewModel.TimeCount> expectedTimeCounts = Collections.singletonList(new ResponseTimeViewModel.TimeCount(timeWindow.refineTimestamp(appASpanStartTime + cacheStartElapsed), 1));
            assertTimeHistogram(linkApplicationTimeSeriesHistogram, targetHistogramSchema.getNormalSlot(), expectedTimeCounts);
        } else {
            Assert.fail("Unexpected link : " + link);
        }
    }
}
Also used : ApplicationMap(com.navercorp.pinpoint.web.applicationmap.ApplicationMap) NodeHistogram(com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram) Histogram(com.navercorp.pinpoint.web.applicationmap.histogram.Histogram) Node(com.navercorp.pinpoint.web.applicationmap.nodes.Node) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) HistogramSchema(com.navercorp.pinpoint.common.trace.HistogramSchema) AgentResponseTimeViewModelList(com.navercorp.pinpoint.web.view.AgentResponseTimeViewModelList) ArgumentMatchers.anyList(org.mockito.ArgumentMatchers.anyList) List(java.util.List) SpanEventBo(com.navercorp.pinpoint.common.server.bo.SpanEventBo) AgentResponseTimeViewModelList(com.navercorp.pinpoint.web.view.AgentResponseTimeViewModelList) AgentResponseTimeViewModel(com.navercorp.pinpoint.web.view.AgentResponseTimeViewModel) ResponseTimeViewModel(com.navercorp.pinpoint.web.view.ResponseTimeViewModel) NodeHistogram(com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram) Range(com.navercorp.pinpoint.web.vo.Range) TimeWindow(com.navercorp.pinpoint.web.util.TimeWindow) SpanBo(com.navercorp.pinpoint.common.server.bo.SpanBo) TestTraceUtils(com.navercorp.pinpoint.web.TestTraceUtils) AgentResponseTimeViewModel(com.navercorp.pinpoint.web.view.AgentResponseTimeViewModel) TimeViewModel(com.navercorp.pinpoint.web.view.TimeViewModel) ResponseTimeViewModel(com.navercorp.pinpoint.web.view.ResponseTimeViewModel) Application(com.navercorp.pinpoint.web.vo.Application) Map(java.util.Map) ApplicationMap(com.navercorp.pinpoint.web.applicationmap.ApplicationMap) Link(com.navercorp.pinpoint.web.applicationmap.link.Link) Test(org.junit.Test)

Example 2 with Node

use of com.navercorp.pinpoint.web.applicationmap.nodes.Node in project pinpoint by naver.

the class ResponseTimeHistogramServiceImpl method selectNodeHistogramData.

@Override
public NodeHistogramSummary selectNodeHistogramData(ResponseTimeHistogramServiceOption option) {
    Node node = new Node(option.getApplication());
    ServiceType applicationServiceType = option.getApplication().getServiceType();
    List<Application> sourceApplications = option.getFromApplications();
    List<Application> destinationApplications = option.getToApplications();
    final NodeHistogramFactory nodeHistogramFactory = createNodeHistogramFactory();
    final ServerInstanceListFactory serverInstanceListFactory = createServerInstanceListFactory(option);
    if (applicationServiceType.isWas()) {
        NodeHistogram nodeHistogram = nodeHistogramFactory.createWasNodeHistogram(option.getApplication(), option.getRange());
        node.setNodeHistogram(nodeHistogram);
        ServerInstanceList serverInstanceList = serverInstanceListFactory.createWasNodeInstanceList(node, option.getRange().getTo());
        return new NodeHistogramSummary(serverInstanceList, nodeHistogram);
    } else if (applicationServiceType.isTerminal() || applicationServiceType.isUnknown() || applicationServiceType.isAlias()) {
        if (sourceApplications.isEmpty()) {
            return createEmptyNodeHistogramSummary(serverInstanceListFactory, option.getApplication(), option.getRange());
        }
        LinkDataMapProcessor destinationApplicationFilter = new DestinationApplicationFilter(option.getApplication());
        LinkSelector linkSelector = linkSelectorFactory.createLinkSelector(LinkSelectorType.UNIDIRECTIONAL, destinationApplicationFilter, LinkDataMapProcessor.NO_OP);
        LinkDataDuplexMap linkDataDuplexMap = linkSelector.select(sourceApplications, option.getRange(), 1, 0);
        ServerInstanceList serverInstanceList = serverInstanceListFactory.createEmptyNodeInstanceList();
        if (applicationServiceType.isTerminal() || applicationServiceType.isAlias()) {
            serverInstanceList = serverInstanceListFactory.createTerminalNodeInstanceList(node, linkDataDuplexMap);
        }
        NodeList nodeList = NodeListFactory.createNodeList(NodeType.DETAILED, linkDataDuplexMap);
        LinkList linkList = LinkListFactory.createLinkList(LinkType.DETAILED, nodeList, linkDataDuplexMap, option.getRange());
        NodeHistogram nodeHistogram = nodeHistogramFactory.createTerminalNodeHistogram(option.getApplication(), option.getRange(), linkList);
        return new NodeHistogramSummary(serverInstanceList, nodeHistogram);
    } else if (applicationServiceType.isQueue()) {
        LinkDataMapProcessor destinationApplicationFilter = new DestinationApplicationFilter(option.getApplication());
        if (sourceApplications.isEmpty()) {
            if (destinationApplications.isEmpty()) {
                return createEmptyNodeHistogramSummary(serverInstanceListFactory, option.getApplication(), option.getRange());
            }
            // Retrieve callers
            LinkDataMapProcessor applicationFilter = new ApplicationFilter(option.getApplication());
            LinkSelector linkSelector = linkSelectorFactory.createLinkSelector(LinkSelectorType.UNIDIRECTIONAL, LinkDataMapProcessor.NO_OP, applicationFilter);
            LinkDataDuplexMap linkDataDuplexMap = linkSelector.select(sourceApplications, option.getRange(), 0, 2);
            LinkDataMap linkDataMap = destinationApplicationFilter.processLinkDataMap(linkDataDuplexMap.getTargetLinkDataMap(), option.getRange());
            for (LinkData linkData : linkDataMap.getLinkDataList()) {
                sourceApplications.add(linkData.getFromApplication());
            }
        }
        // Check using from applications first for caller's link data
        LinkSelector linkSelector = linkSelectorFactory.createLinkSelector(LinkSelectorType.UNIDIRECTIONAL, destinationApplicationFilter, LinkDataMapProcessor.NO_OP);
        LinkDataDuplexMap linkDataDuplexMap = linkSelector.select(sourceApplications, option.getRange(), 1, 0);
        ServerInstanceList serverInstanceList = serverInstanceListFactory.createQueueNodeInstanceList(node, linkDataDuplexMap);
        NodeList nodeList = NodeListFactory.createNodeList(NodeType.DETAILED, linkDataDuplexMap);
        LinkList linkList = LinkListFactory.createLinkList(LinkType.DETAILED, nodeList, linkDataDuplexMap, option.getRange());
        NodeHistogram nodeHistogram = nodeHistogramFactory.createQueueNodeHistogram(option.getApplication(), option.getRange(), linkList);
        return new NodeHistogramSummary(serverInstanceList, nodeHistogram);
    } else if (applicationServiceType.isUser()) {
        if (destinationApplications.isEmpty()) {
            return createEmptyNodeHistogramSummary(serverInstanceListFactory, option.getApplication(), option.getRange());
        }
        LinkDataMapProcessor sourceApplicationFilter = new SourceApplicationFilter(option.getApplication());
        LinkSelector linkSelector = linkSelectorFactory.createLinkSelector(LinkSelectorType.UNIDIRECTIONAL, LinkDataMapProcessor.NO_OP, sourceApplicationFilter);
        LinkDataDuplexMap linkDataDuplexMap = linkSelector.select(destinationApplications, option.getRange(), 0, 1);
        ServerInstanceList serverInstanceList = serverInstanceListFactory.createUserNodeInstanceList();
        NodeList nodeList = NodeListFactory.createNodeList(NodeType.DETAILED, linkDataDuplexMap);
        LinkList linkList = LinkListFactory.createLinkList(LinkType.DETAILED, nodeList, linkDataDuplexMap, option.getRange());
        NodeHistogram nodeHistogram = nodeHistogramFactory.createUserNodeHistogram(option.getApplication(), option.getRange(), linkList);
        return new NodeHistogramSummary(serverInstanceList, nodeHistogram);
    } else {
        return createEmptyNodeHistogramSummary(serverInstanceListFactory, option.getApplication(), option.getRange());
    }
}
Also used : SourceApplicationFilter(com.navercorp.pinpoint.web.service.map.processor.SourceApplicationFilter) ServerInstanceListFactory(com.navercorp.pinpoint.web.applicationmap.appender.server.ServerInstanceListFactory) DefaultServerInstanceListFactory(com.navercorp.pinpoint.web.applicationmap.appender.server.DefaultServerInstanceListFactory) StatisticsServerInstanceListFactory(com.navercorp.pinpoint.web.applicationmap.appender.server.StatisticsServerInstanceListFactory) LinkData(com.navercorp.pinpoint.web.applicationmap.rawdata.LinkData) NodeHistogramSummary(com.navercorp.pinpoint.web.applicationmap.nodes.NodeHistogramSummary) Node(com.navercorp.pinpoint.web.applicationmap.nodes.Node) ServerInstanceList(com.navercorp.pinpoint.web.applicationmap.nodes.ServerInstanceList) NodeList(com.navercorp.pinpoint.web.applicationmap.nodes.NodeList) NodeHistogram(com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram) LinkSelector(com.navercorp.pinpoint.web.service.map.LinkSelector) LinkDataDuplexMap(com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataDuplexMap) DestinationApplicationFilter(com.navercorp.pinpoint.web.service.map.processor.DestinationApplicationFilter) DefaultNodeHistogramFactory(com.navercorp.pinpoint.web.applicationmap.appender.histogram.DefaultNodeHistogramFactory) NodeHistogramFactory(com.navercorp.pinpoint.web.applicationmap.appender.histogram.NodeHistogramFactory) ServiceType(com.navercorp.pinpoint.common.trace.ServiceType) LinkDataMapProcessor(com.navercorp.pinpoint.web.service.map.processor.LinkDataMapProcessor) DestinationApplicationFilter(com.navercorp.pinpoint.web.service.map.processor.DestinationApplicationFilter) SourceApplicationFilter(com.navercorp.pinpoint.web.service.map.processor.SourceApplicationFilter) ApplicationFilter(com.navercorp.pinpoint.web.service.map.processor.ApplicationFilter) LinkList(com.navercorp.pinpoint.web.applicationmap.link.LinkList) Application(com.navercorp.pinpoint.web.vo.Application) LinkDataMap(com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataMap)

Example 3 with Node

use of com.navercorp.pinpoint.web.applicationmap.nodes.Node in project pinpoint by naver.

the class TransactionInfoViewModel method getApplicationMapData.

@JsonProperty("applicationMapData")
public Map<String, List<Object>> getApplicationMapData() {
    Map<String, List<Object>> result = new HashMap<String, List<Object>>();
    if (timeHistogramFormat == TimeHistogramFormat.V2) {
        for (Node node : nodes) {
            node.setTimeHistogramFormat(timeHistogramFormat);
        }
        for (Link link : links) {
            link.setTimeHistogramFormat(timeHistogramFormat);
        }
    }
    List<Object> nodeDataArray = new ArrayList<>(nodes);
    result.put("nodeDataArray", nodeDataArray);
    List<Object> linkDataArray = new ArrayList<>(links);
    result.put("linkDataArray", linkDataArray);
    return result;
}
Also used : HashMap(java.util.HashMap) Node(com.navercorp.pinpoint.web.applicationmap.nodes.Node) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) Link(com.navercorp.pinpoint.web.applicationmap.link.Link) JsonProperty(com.fasterxml.jackson.annotation.JsonProperty)

Example 4 with Node

use of com.navercorp.pinpoint.web.applicationmap.nodes.Node in project pinpoint by naver.

the class ApplicationMapVerifier method verifyNodes.

private void verifyNodes(Collection<Node> otherNodes) {
    Collection<Node> thisNodes = applicationMap.getNodes();
    verifySize(thisNodes, otherNodes);
    for (Node otherNode : otherNodes) {
        String nodeNameToFind = otherNode.getNodeName();
        Node thisNode = findNode(thisNodes, nodeNameToFind);
        if (thisNode == null) {
            Assert.fail(otherNode + " not in " + thisNodes);
        }
        verifyNode(thisNode, otherNode);
    }
}
Also used : Node(com.navercorp.pinpoint.web.applicationmap.nodes.Node)

Example 5 with Node

use of com.navercorp.pinpoint.web.applicationmap.nodes.Node in project pinpoint by naver.

the class ServerInfoAppenderTest method userNode.

@Test
public void userNode() {
    // Given
    Range range = Range.newRange(0, 60 * 1000);
    NodeList nodeList = new NodeList();
    LinkDataDuplexMap linkDataDuplexMap = mock(LinkDataDuplexMap.class);
    Node userNode = new Node(new Application("User", ServiceType.USER));
    nodeList.addNode(userNode);
    // When
    serverInfoAppender.appendServerInfo(range, nodeList, linkDataDuplexMap, timeoutMillis);
    // Then
    Assert.assertEquals(0, userNode.getServerInstanceList().getInstanceCount());
    verifyZeroInteractions(linkDataDuplexMap);
}
Also used : NodeList(com.navercorp.pinpoint.web.applicationmap.nodes.NodeList) Node(com.navercorp.pinpoint.web.applicationmap.nodes.Node) LinkDataDuplexMap(com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataDuplexMap) Range(com.navercorp.pinpoint.web.vo.Range) Application(com.navercorp.pinpoint.web.vo.Application) Test(org.junit.Test)

Aggregations

Node (com.navercorp.pinpoint.web.applicationmap.nodes.Node)28 NodeList (com.navercorp.pinpoint.web.applicationmap.nodes.NodeList)13 Application (com.navercorp.pinpoint.web.vo.Application)13 Test (org.junit.Test)13 Range (com.navercorp.pinpoint.web.vo.Range)12 Link (com.navercorp.pinpoint.web.applicationmap.link.Link)10 LinkList (com.navercorp.pinpoint.web.applicationmap.link.LinkList)9 NodeHistogram (com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram)7 LinkDataDuplexMap (com.navercorp.pinpoint.web.applicationmap.rawdata.LinkDataDuplexMap)7 Histogram (com.navercorp.pinpoint.web.applicationmap.histogram.Histogram)5 LinkData (com.navercorp.pinpoint.web.applicationmap.rawdata.LinkData)5 HistogramSlot (com.navercorp.pinpoint.common.trace.HistogramSlot)4 ServerInstanceList (com.navercorp.pinpoint.web.applicationmap.nodes.ServerInstanceList)4 CompletableFuture (java.util.concurrent.CompletableFuture)4 ServiceType (com.navercorp.pinpoint.common.trace.ServiceType)3 ArrayList (java.util.ArrayList)3 NodeHistogramFactory (com.navercorp.pinpoint.web.applicationmap.appender.histogram.NodeHistogramFactory)2 List (java.util.List)2 TimeoutException (java.util.concurrent.TimeoutException)2 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)2