Skip to content

Commit

Permalink
[#9945] add apdex score for serverList and filteredServerMap
Browse files Browse the repository at this point in the history
  • Loading branch information
donghun-cho committed Oct 16, 2023
1 parent 333212d commit 2b2672d
Show file tree
Hide file tree
Showing 20 changed files with 491 additions and 315 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,11 @@

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonValue;
import com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram;
import com.navercorp.pinpoint.web.applicationmap.link.Link;
import com.navercorp.pinpoint.web.applicationmap.nodes.Node;
import com.navercorp.pinpoint.web.applicationmap.nodes.NodeAgentHistogramList;
import com.navercorp.pinpoint.web.scatter.ScatterData;
import com.navercorp.pinpoint.web.view.histogram.ApplicationHistogramView;
import com.navercorp.pinpoint.web.view.histogram.HistogramView;
import com.navercorp.pinpoint.web.view.histogram.ServerHistogramView;
import com.navercorp.pinpoint.web.vo.Application;

import java.util.ArrayList;
Expand Down Expand Up @@ -57,35 +55,28 @@ public ApplicationMap getApplicationMap() {
}

@JsonIgnore
public List<ApplicationHistogramView> getNodeHistogramData() {
final List<ApplicationHistogramView> result = new ArrayList<>();
public List<ServerHistogramView> getNodeServerHistogramData() {
final List<ServerHistogramView> result = new ArrayList<>();
for (Node node : applicationMap.getNodes()) {
NodeHistogram nodeHistogram = node.getNodeHistogram();
HistogramView histogramView = new HistogramView(null, nodeHistogram.getApplicationTimeHistogramList());

result.add(new ApplicationHistogramView(node.getNodeName().getName(), histogramView));
result.add(new ServerHistogramView(node.getNodeName(), node.getNodeHistogram(), node.getServerGroupList()));
}
return result;
}

@JsonIgnore
public List<ApplicationHistogramView> getLinkHistogramData() {
final List<ApplicationHistogramView> result = new ArrayList<>();
for (Link link : applicationMap.getLinks()) {
HistogramView histogramView = new HistogramView(null, link.getLinkApplicationTimeHistogramList());

result.add(new ApplicationHistogramView(link.getLinkName().getName(), histogramView));
public List<HistogramView> getNodeHistogramData() {
final List<HistogramView> result = new ArrayList<>();
for (Node node : applicationMap.getNodes()) {
result.add(new HistogramView(node.getNodeName(), node.getNodeHistogram()));
}
return result;
}

@JsonIgnore
public List<NodeAgentHistogramList> getAgentHistogramData() {
final List<NodeAgentHistogramList> result = new ArrayList<>();
for (Node node : applicationMap.getNodes()) {
if (node.getServerGroupList().getInstanceCount() > 0) {
result.add(new NodeAgentHistogramList(node.getNodeName().getName(), node.getNodeHistogram(), node.getServerGroupList()));
}
public List<HistogramView> getLinkHistogramData() {
final List<HistogramView> result = new ArrayList<>();
for (Link link : applicationMap.getLinks()) {
result.add(new HistogramView(link.getLinkName(), link.getHistogram(), link.getLinkApplicationTimeHistogram()));
}
return result;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public List<AgentResponseTimeViewModel> createViewModel(TimeHistogramFormat time
return result;
}

public Map<String, List<TimeHistogram>> getAgentTimeHistogramMap() {
public Map<String, List<TimeHistogram>> getTimeHistogramMap() {
Map<String, List<TimeHistogram>> result = new HashMap<>();
for (AgentHistogram agentHistogram : agentHistogramList.getAgentHistogramList()) {
result.put(agentHistogram.getAgentId().getName(), sortTimeHistogram(agentHistogram.getTimeHistogram()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@
package com.navercorp.pinpoint.web.applicationmap.histogram;

import com.navercorp.pinpoint.common.server.util.time.Range;
import com.navercorp.pinpoint.web.view.TimeSeries.TimeSeriesView;
import com.navercorp.pinpoint.web.view.TimeViewModel;
import com.navercorp.pinpoint.web.view.histogram.TimeHistogramChartBuilder;
import com.navercorp.pinpoint.web.view.histogram.TimeHistogramType;
import com.navercorp.pinpoint.web.vo.Application;

import java.util.Collections;
Expand Down Expand Up @@ -46,6 +49,10 @@ public List<TimeViewModel> createViewModel(TimeHistogramFormat timeHistogramForm
return new TimeViewModel.TimeViewModelBuilder(application, histogramList).setTimeHistogramFormat(timeHistogramFormat).build();
}

public TimeSeriesView createTimeSeriesView(TimeHistogramType timeHistogramType) {
return new TimeHistogramChartBuilder(histogramList).build(timeHistogramType);
}

public List<TimeHistogram> getHistogramList() {
return histogramList;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,14 @@
import com.navercorp.pinpoint.common.server.util.time.Range;
import com.navercorp.pinpoint.web.view.AgentResponseTimeViewModelList;
import com.navercorp.pinpoint.web.view.TimeViewModel;
import com.navercorp.pinpoint.web.view.histogram.AgentHistogramView;
import com.navercorp.pinpoint.web.view.histogram.HistogramView;
import com.navercorp.pinpoint.web.view.histogram.TimeHistogramChartBuilder;
import com.navercorp.pinpoint.web.view.histogram.TimeHistogramType;
import com.navercorp.pinpoint.web.view.TimeSeries.TimeSeriesView;
import com.navercorp.pinpoint.web.vo.Application;
import com.navercorp.pinpoint.web.vo.ResponseTime;
import com.navercorp.pinpoint.web.vo.ResponseTimeStatics;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -91,6 +88,10 @@ public Histogram getApplicationHistogram() {
return applicationHistogram;
}

public ApplicationTimeHistogram getApplicationTimeHistogram() {
return applicationTimeHistogram;
}

public void setApplicationTimeHistogram(ApplicationTimeHistogram applicationTimeHistogram) {
this.applicationTimeHistogram = applicationTimeHistogram;
}
Expand Down Expand Up @@ -132,32 +133,25 @@ public List<TimeViewModel> getApplicationTimeHistogram(TimeHistogramFormat timeH
return applicationTimeHistogram.createViewModel(timeHistogramFormat);
}

public TimeSeriesView getApplicationTimeHistogram(TimeHistogramType timeHistogramType) {
TimeHistogramChartBuilder builder = new TimeHistogramChartBuilder(applicationTimeHistogram.getHistogramList());
return builder.build(timeHistogramType);
}

public List<TimeHistogram> getApplicationTimeHistogramList() {
return applicationTimeHistogram.getHistogramList();
}

public AgentResponseTimeViewModelList getAgentTimeHistogram(TimeHistogramFormat timeHistogramFormat) {
return new AgentResponseTimeViewModelList(agentTimeHistogram.createViewModel(timeHistogramFormat));
}

public List<AgentHistogramView> getAgentHistogramViewList() {
Map<String, List<TimeHistogram>> agentTimeHistogramMap = agentTimeHistogram.getAgentTimeHistogramMap();
public void setAgentTimeHistogram(AgentTimeHistogram agentTimeHistogram) {
this.agentTimeHistogram = agentTimeHistogram;
}

List<AgentHistogramView> agentHistogramViewList = new ArrayList<>();
public List<HistogramView> createAgentHistogramViewList() {
Map<String, List<TimeHistogram>> agentTimeHistogramMap = agentTimeHistogram.getTimeHistogramMap();
List<HistogramView> result = new ArrayList<>();
for (String agentId : agentHistogramMap.keySet()) {
HistogramView histogramView = new HistogramView(agentHistogramMap.get(agentId), agentTimeHistogramMap.get(agentId));
agentHistogramViewList.add(new AgentHistogramView(agentId, histogramView));
}
return agentHistogramViewList;
}
Histogram agentHistogram = agentHistogramMap.get(agentId);
List<TimeHistogram> sortedTimeHistogram = agentTimeHistogramMap.computeIfAbsent(agentId, id -> Collections.emptyList());

public void setAgentTimeHistogram(AgentTimeHistogram agentTimeHistogram) {
this.agentTimeHistogram = agentTimeHistogram;
HistogramView histogramView = new HistogramView(agentId, agentHistogram, sortedTimeHistogram);
result.add(histogramView);
}
return result;
}

private ApplicationTimeHistogram createApplicationLevelTimeSeriesResponseTime(List<ResponseTime> responseHistogramList) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,14 @@
import com.navercorp.pinpoint.web.applicationmap.histogram.ApplicationTimeHistogram;
import com.navercorp.pinpoint.web.applicationmap.histogram.ApplicationTimeHistogramBuilder;
import com.navercorp.pinpoint.web.applicationmap.histogram.Histogram;
import com.navercorp.pinpoint.web.applicationmap.histogram.TimeHistogram;
import com.navercorp.pinpoint.web.applicationmap.histogram.TimeHistogramFormat;
import com.navercorp.pinpoint.web.applicationmap.nodes.Node;
import com.navercorp.pinpoint.web.applicationmap.rawdata.AgentHistogramList;
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkCallData;
import com.navercorp.pinpoint.web.applicationmap.rawdata.LinkCallDataMap;
import com.navercorp.pinpoint.web.view.AgentResponseTimeViewModelList;
import com.navercorp.pinpoint.web.view.LinkSerializer;
import com.navercorp.pinpoint.web.view.TimeSeries.TimeSeriesView;
import com.navercorp.pinpoint.web.view.TimeViewModel;
import com.navercorp.pinpoint.web.view.histogram.TimeHistogramChartBuilder;
import com.navercorp.pinpoint.web.view.histogram.TimeHistogramType;
import com.navercorp.pinpoint.web.vo.Application;

import java.util.Collection;
Expand Down Expand Up @@ -216,15 +212,6 @@ public ApplicationTimeHistogram getTargetApplicationTimeSeriesHistogramData() {
return builder.build(targetLinkCallDataMap.getLinkDataList());
}

public TimeSeriesView getLinkApplicationTimeSeriesHistogram(TimeHistogramType timeHistogramType) {
TimeHistogramChartBuilder builder = new TimeHistogramChartBuilder(getLinkApplicationTimeHistogram().getHistogramList());
return builder.build(timeHistogramType);
}

public List<TimeHistogram> getLinkApplicationTimeHistogramList() {
return getLinkApplicationTimeHistogram().getHistogramList();
}

public ApplicationTimeHistogram getLinkApplicationTimeHistogram() {
if (createType == CreateType.Source) {
return getSourceApplicationTimeSeriesHistogramData();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@
import com.navercorp.pinpoint.web.applicationmap.histogram.Histogram;
import com.navercorp.pinpoint.web.applicationmap.histogram.TimeHistogramFormat;
import com.navercorp.pinpoint.web.view.LinkHistogramSummarySerializer;
import com.navercorp.pinpoint.web.view.TimeSeries.TimeSeriesView;
import com.navercorp.pinpoint.web.view.TimeViewModel;
import com.navercorp.pinpoint.web.view.histogram.HistogramView;
import com.navercorp.pinpoint.web.view.histogram.TimeHistogramType;
import com.navercorp.pinpoint.web.view.TimeSeries.TimeSeriesView;

import java.util.List;
import java.util.Objects;
Expand Down Expand Up @@ -57,7 +58,11 @@ public List<TimeViewModel> getTimeSeriesHistogram() {
}

public TimeSeriesView getTimeHistogram(TimeHistogramType timeHistogramType) {
return link.getLinkApplicationTimeSeriesHistogram(timeHistogramType);
return link.getLinkApplicationTimeHistogram().createTimeSeriesView(timeHistogramType);
}

public HistogramView getHistogramView() {
return new HistogramView(link.getLinkName(), link.getHistogram(), link.getLinkApplicationTimeHistogram());
}

@Override
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@
package com.navercorp.pinpoint.web.applicationmap.nodes;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.navercorp.pinpoint.web.applicationmap.histogram.Histogram;
import com.navercorp.pinpoint.web.applicationmap.histogram.NodeHistogram;
import com.navercorp.pinpoint.web.applicationmap.histogram.TimeHistogramFormat;
import com.navercorp.pinpoint.web.view.NodeHistogramSummarySerializer;
import com.navercorp.pinpoint.web.view.histogram.TimeHistogramType;
import com.navercorp.pinpoint.web.view.TimeSeries.TimeSeriesView;
import com.navercorp.pinpoint.web.view.histogram.HistogramView;
import com.navercorp.pinpoint.web.view.histogram.ServerHistogramView;
import com.navercorp.pinpoint.web.view.histogram.TimeHistogramType;
import com.navercorp.pinpoint.web.vo.Application;

import java.util.Objects;

Expand All @@ -31,11 +35,13 @@
@JsonSerialize(using = NodeHistogramSummarySerializer.class)
public class NodeHistogramSummary {

private final Application application;
private final ServerGroupList serverGroupList;
private final NodeHistogram nodeHistogram;
private TimeHistogramFormat timeHistogramFormat = TimeHistogramFormat.V1;

public NodeHistogramSummary(ServerGroupList serverGroupList, NodeHistogram nodeHistogram) {
public NodeHistogramSummary(Application application, ServerGroupList serverGroupList, NodeHistogram nodeHistogram) {
this.application = Objects.requireNonNull(application, "application");
this.serverGroupList = Objects.requireNonNull(serverGroupList, "serverGroupList");
this.nodeHistogram = Objects.requireNonNull(nodeHistogram, "nodeHistogram");
}
Expand All @@ -48,8 +54,12 @@ public NodeHistogram getNodeHistogram() {
return nodeHistogram;
}

public Histogram getHistogram() {
return nodeHistogram.getApplicationHistogram();
}

public TimeSeriesView getNodeTimeHistogram(TimeHistogramType timeHistogramType) {
return nodeHistogram.getApplicationTimeHistogram(timeHistogramType);
return nodeHistogram.getApplicationTimeHistogram().createTimeSeriesView(timeHistogramType);
}

public TimeHistogramFormat getTimeHistogramFormat() {
Expand All @@ -60,6 +70,14 @@ public void setTimeHistogramFormat(TimeHistogramFormat timeHistogramFormat) {
this.timeHistogramFormat = timeHistogramFormat;
}

public HistogramView getHistogramView() {
return new HistogramView(NodeName.of(application), nodeHistogram);
}

public ServerHistogramView getAgentHistogramView() {
return new ServerHistogramView(NodeName.of(application), nodeHistogram, serverGroupList);
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("NodeHistogramSummary{");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
import com.navercorp.pinpoint.web.applicationmap.link.LinkType;
import com.navercorp.pinpoint.web.applicationmap.map.FilteredMap;
import com.navercorp.pinpoint.web.applicationmap.map.FilteredMapBuilder;
import com.navercorp.pinpoint.web.applicationmap.nodes.NodeType;
import com.navercorp.pinpoint.web.component.ApplicationFactory;
import com.navercorp.pinpoint.web.dao.ApplicationTraceIndexDao;
import com.navercorp.pinpoint.web.dao.TraceDao;
Expand Down Expand Up @@ -138,7 +139,7 @@ public ApplicationMap selectApplicationMap(FilteredMapServiceOption option) {
filteredMapBuilder.addTransactions(filterList);
FilteredMap filteredMap = filteredMapBuilder.build();

ApplicationMap map = createMap(option, filteredMap);
ApplicationMap map = createMap(option, filteredMap, false);
return map;
}

Expand All @@ -152,7 +153,7 @@ public ApplicationMap selectApplicationMapWithScatterData(FilteredMapServiceOpti
filteredMapBuilder.addTransactions(filterList);
FilteredMap filteredMap = filteredMapBuilder.build();

ApplicationMap map = createMap(option, filteredMap);
ApplicationMap map = createMap(option, filteredMap, false);

Map<Application, ScatterData> applicationScatterData = filteredMap.getApplicationScatterData(option.getOriginalRange().getFrom(), option.getOriginalRange().getTo(), option.getxGroupUnit(), option.getyGroupUnit());
ApplicationMapWithScatterData applicationMapWithScatterData = new ApplicationMapWithScatterData(map, applicationScatterData);
Expand All @@ -174,7 +175,7 @@ public ApplicationMap selectApplicationMapWithScatterDataV3(FilteredMapServiceOp
filteredMapBuilder.addTransactions(filterList);
FilteredMap filteredMap = filteredMapBuilder.build();

ApplicationMap map = createMap(option, filteredMap);
ApplicationMap map = createMap(option, filteredMap, true);

Map<Application, ScatterData> applicationScatterData = filteredMap.getApplicationScatterData(option.getOriginalRange().getFrom(), option.getOriginalRange().getTo(), option.getxGroupUnit(), option.getyGroupUnit());
ApplicationMapWithScatterDataV3 applicationMapWithScatterDataV3 = new ApplicationMapWithScatterDataV3(map, applicationScatterData);
Expand All @@ -196,9 +197,14 @@ private List<List<SpanBo>> selectFilteredSpan(List<TransactionId> transactionIdL
return filterList2(originalList, filter);
}

private ApplicationMap createMap(FilteredMapServiceOption option, FilteredMap filteredMap) {
private ApplicationMap createMap(FilteredMapServiceOption option, FilteredMap filteredMap, boolean v3Format) {
final ApplicationMapBuilder applicationMapBuilder = applicationMapBuilderFactory.createApplicationMapBuilder(option.getOriginalRange());
applicationMapBuilder.linkType(LinkType.DETAILED);
if (v3Format) {
applicationMapBuilder.linkType(LinkType.SIMPLIFIED);
applicationMapBuilder.nodeType(NodeType.SIMPLIFIED);
} else {
applicationMapBuilder.linkType(LinkType.DETAILED);
}
final WasNodeHistogramDataSource wasNodeHistogramDataSource = new ResponseHistogramsNodeHistogramDataSource(filteredMap.getResponseHistograms());
applicationMapBuilder.includeNodeHistogram(new DefaultNodeHistogramFactory(wasNodeHistogramDataSource));
ServerGroupListDataSource serverGroupListDataSource = serverInstanceDatasourceService.getServerGroupListDataSource();
Expand Down
Loading

0 comments on commit 2b2672d

Please sign in to comment.