Search in sources :

Example 21 with Node

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

the class ServerInfoAppenderTest method terminalNode_multipleInstances.

@Test
public void terminalNode_multipleInstances() {
    // Given
    Range range = Range.newRange(0, 60 * 1000);
    NodeList nodeList = new NodeList();
    LinkDataDuplexMap linkDataDuplexMap = new LinkDataDuplexMap();
    ServiceType terminalType = ServiceTypeFactory.of(2000, "TERMINAL", TERMINAL, INCLUDE_DESTINATION_ID);
    Application terminalApplication = new Application("Terminal", terminalType);
    Node terminalNode = new Node(terminalApplication);
    nodeList.addNode(terminalNode);
    Application fromApplication = new Application("FromWas", ServiceType.TEST_STAND_ALONE);
    LinkData linkData = new LinkData(fromApplication, terminalApplication);
    linkData.addLinkData("wasAgent", ServiceType.TEST_STAND_ALONE, "terminalNodeAddress1", terminalType, System.currentTimeMillis(), terminalType.getHistogramSchema().getNormalSlot().getSlotTime(), 1);
    linkData.addLinkData("wasAgent", ServiceType.TEST_STAND_ALONE, "terminalNodeAddress2", terminalType, System.currentTimeMillis(), terminalType.getHistogramSchema().getNormalSlot().getSlotTime(), 1);
    linkDataDuplexMap.addSourceLinkData(linkData);
    // When
    serverInfoAppender.appendServerInfo(range, nodeList, linkDataDuplexMap, timeoutMillis);
    // Then
    Assert.assertEquals(2, terminalNode.getServerInstanceList().getInstanceCount());
}
Also used : LinkData(com.navercorp.pinpoint.web.applicationmap.rawdata.LinkData) ServiceType(com.navercorp.pinpoint.common.trace.ServiceType) 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)

Example 22 with Node

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

the class DefaultNodeHistogramAppender method getNodeHistogramFutures.

private CompletableFuture[] getNodeHistogramFutures(Range range, Collection<Node> nodes, LinkList linkList, AtomicBoolean stopSign) {
    List<CompletableFuture<Void>> nodeHistogramFutures = new ArrayList<>();
    for (Node node : nodes) {
        CompletableFuture<Void> nodeHistogramFuture = getNodeHistogramFuture(range, node, linkList, stopSign);
        nodeHistogramFutures.add(nodeHistogramFuture);
    }
    return nodeHistogramFutures.toArray(new CompletableFuture[0]);
}
Also used : CompletableFuture(java.util.concurrent.CompletableFuture) Node(com.navercorp.pinpoint.web.applicationmap.nodes.Node) ArrayList(java.util.ArrayList)

Example 23 with Node

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

the class LinkList method findFromLink.

/**
 * find all callees of fromApplication
 * @param fromApplication
 * @return
 */
public List<Link> findFromLink(Application fromApplication) {
    Objects.requireNonNull(fromApplication, "fromApplication");
    List<Link> findList = new ArrayList<>();
    for (Link link : linkMap.values()) {
        Node fromNode = link.getFrom();
        if (fromNode.getApplication().equals(fromApplication) && fromNode.getServiceType().equals(fromApplication.getServiceType())) {
            findList.add(link);
        }
    }
    return findList;
}
Also used : Node(com.navercorp.pinpoint.web.applicationmap.nodes.Node)

Example 24 with Node

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

the class NodeHistogramAppenderTest method terminalNode.

/**
 * Checks histograms for a single terminal node.
 * <pre>
 *     fromNode ---> databaseNode
 * </pre>
 */
@Test
public void terminalNode() {
    // Given
    Range range = Range.newRange(0, 60 * 1000);
    NodeList nodeList = new NodeList();
    LinkList linkList = new LinkList();
    // fromNode : [testApp] test-app
    Node fromNode = createNode("testApp", ServiceTypeFactory.of(1000, "WAS"));
    String fromNodeAgent = "test-app";
    // toNode : [testDatabase] test-database
    Node toNode = createNode("testDatabase", ServiceTypeFactory.of(2000, "RDB", ServiceTypeProperty.TERMINAL));
    String toNodeAgent = "test-database";
    nodeList.addNode(toNode);
    Link link = new Link(CreateType.Source, fromNode, toNode, range);
    HistogramSlot fastSlot = toNode.getServiceType().getHistogramSchema().getFastSlot();
    HistogramSlot normalSlot = toNode.getServiceType().getHistogramSchema().getNormalSlot();
    HistogramSlot slowSlot = toNode.getServiceType().getHistogramSchema().getSlowSlot();
    // [testApp] test-app -> [testDatabase] test-database
    long fastCallCount = 200L;
    long normalCallCount = 100L;
    long slowCallCount = 75L;
    link.addSource(createLinkCallDataMap(fromNodeAgent, fromNode.getServiceType(), toNodeAgent, toNode.getServiceType(), fastSlot, fastCallCount));
    link.addSource(createLinkCallDataMap(fromNodeAgent, fromNode.getServiceType(), toNodeAgent, toNode.getServiceType(), normalSlot, normalCallCount));
    link.addSource(createLinkCallDataMap(fromNodeAgent, fromNode.getServiceType(), toNodeAgent, toNode.getServiceType(), slowSlot, slowCallCount));
    linkList.addLink(link);
    // When
    nodeHistogramAppender.appendNodeHistogram(range, nodeList, linkList, buildTimeoutMillis);
    // Then
    Node actualNode = nodeList.getNodeList().iterator().next();
    NodeHistogram nodeHistogram = actualNode.getNodeHistogram();
    // verify application-level histogram
    Histogram applicationHistogram = nodeHistogram.getApplicationHistogram();
    Assert.assertEquals(fastCallCount, applicationHistogram.getFastCount());
    Assert.assertEquals(normalCallCount, applicationHistogram.getNormalCount());
    Assert.assertEquals(slowCallCount, applicationHistogram.getSlowCount());
    Assert.assertEquals(fastCallCount + normalCallCount + slowCallCount, applicationHistogram.getTotalCount());
    // verify agent-level histogram
    Map<String, Histogram> agentHistogramMap = nodeHistogram.getAgentHistogramMap();
    Histogram agentHistogram = agentHistogramMap.get(toNodeAgent);
    Assert.assertEquals(fastCallCount, agentHistogram.getFastCount());
    Assert.assertEquals(normalCallCount, agentHistogram.getNormalCount());
    Assert.assertEquals(slowCallCount, agentHistogram.getSlowCount());
    Assert.assertEquals(fastCallCount + normalCallCount + slowCallCount, agentHistogram.getTotalCount());
}
Also used : HistogramSlot(com.navercorp.pinpoint.common.trace.HistogramSlot) Histogram(com.navercorp.pinpoint.web.applicationmap.histogram.Histogram) NodeHistogram(com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram) NodeList(com.navercorp.pinpoint.web.applicationmap.nodes.NodeList) Node(com.navercorp.pinpoint.web.applicationmap.nodes.Node) NodeHistogram(com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram) Range(com.navercorp.pinpoint.web.vo.Range) LinkList(com.navercorp.pinpoint.web.applicationmap.link.LinkList) Link(com.navercorp.pinpoint.web.applicationmap.link.Link) Test(org.junit.Test)

Example 25 with Node

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

the class NodeHistogramAppenderTest method wasNode.

/**
 * Checks histograms for was node.
 */
@Test
public void wasNode() {
    // Given
    Range range = Range.newRange(0, 60 * 1000);
    NodeList nodeList = new NodeList();
    LinkList linkList = new LinkList();
    Node node = createNode("testApp", ServiceTypeFactory.of(1000, "WAS"));
    nodeList.addNode(node);
    NodeHistogram nodeHistogram = new NodeHistogram(node.getApplication(), range);
    when(wasNodeHistogramDataSource.createNodeHistogram(node.getApplication(), range)).thenReturn(nodeHistogram);
    // When
    nodeHistogramAppender.appendNodeHistogram(range, nodeList, linkList, buildTimeoutMillis);
    // Then
    Node actualNode = nodeList.getNodeList().iterator().next();
    Assert.assertSame(nodeHistogram, actualNode.getNodeHistogram());
}
Also used : NodeList(com.navercorp.pinpoint.web.applicationmap.nodes.NodeList) Node(com.navercorp.pinpoint.web.applicationmap.nodes.Node) NodeHistogram(com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram) Range(com.navercorp.pinpoint.web.vo.Range) LinkList(com.navercorp.pinpoint.web.applicationmap.link.LinkList) 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