From d6988f95aeee7d1d3463edd71b2da1e42eb5ad25 Mon Sep 17 00:00:00 2001 From: Minwoo Jung Date: Thu, 9 Jul 2015 11:22:26 +0900 Subject: [PATCH 1/2] [#694] improvement logic for logging button --- .../navercorp/pinpoint/common/bo/SpanBo.java | 12 +++++++++++ .../BusinessTransactionController.java | 21 +++++++++++++++---- .../controller/ScatterChartController.java | 14 ------------- .../service/TransactionInfoServiceImpl.java | 2 ++ .../pinpoint/web/vo/callstacks/RecordSet.java | 10 +++++++++ .../WEB-INF/views/transactionInfoJson.jsp | 3 +++ .../distributed-call-flow.directive.js | 4 ---- 7 files changed, 44 insertions(+), 22 deletions(-) diff --git a/commons/src/main/java/com/navercorp/pinpoint/common/bo/SpanBo.java b/commons/src/main/java/com/navercorp/pinpoint/common/bo/SpanBo.java index 3281ce69d..7aa79ac59 100644 --- a/commons/src/main/java/com/navercorp/pinpoint/common/bo/SpanBo.java +++ b/commons/src/main/java/com/navercorp/pinpoint/common/bo/SpanBo.java @@ -77,6 +77,8 @@ public class SpanBo implements com.navercorp.pinpoint.common.bo.Span { private String remoteAddr; // optional + private boolean loggingTransactionInfo; //optional + public SpanBo(TSpan span) { if (span == null) { throw new NullPointerException("span must not be null"); @@ -110,6 +112,8 @@ public class SpanBo implements com.navercorp.pinpoint.common.bo.Span { this.remoteAddr = span.getRemoteAddr(); + this.loggingTransactionInfo = span.getLoggingTransactionInfo() == 1 ? true : false; + // FIXME (2015.03) Legacy - applicationServiceType added in v1.1.0 // applicationServiceType is not saved for older versions where applicationServiceType does not exist. if (span.isSetApplicationServiceType()) { @@ -380,6 +384,14 @@ public class SpanBo implements com.navercorp.pinpoint.common.bo.Span { return this.serviceType; } } + + public boolean isLoggingTransactionInfo() { + return loggingTransactionInfo; + } + + public void setLoggingTransactionInfo(boolean loggingTransactionInfo) { + this.loggingTransactionInfo = loggingTransactionInfo; + } // Variable encoding has been added in case of write io operation. The data size can be reduced by about 10%. public byte[] writeValue() { diff --git a/web/src/main/java/com/navercorp/pinpoint/web/controller/BusinessTransactionController.java b/web/src/main/java/com/navercorp/pinpoint/web/controller/BusinessTransactionController.java index 0968d49ce..3bea619da 100644 --- a/web/src/main/java/com/navercorp/pinpoint/web/controller/BusinessTransactionController.java +++ b/web/src/main/java/com/navercorp/pinpoint/web/controller/BusinessTransactionController.java @@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @@ -70,9 +71,15 @@ public class BusinessTransactionController { @Autowired private FilterBuilder filterBuilder; -// Temporarily disabled Because We need to solve authentication problem inter system. -// @Value("#{pinpointWebProps['log.enable'] ?: false}") - private boolean logLinkEnable = false; + @Value("#{pinpointWebProps['log.enable'] ?: false}") + private boolean logLinkEnable; + + @Value("#{pinpointWebProps['log.button.name'] ?: ''}") + private String logButtonName; + + @Value("#{pinpointWebProps['log.page.url'] ?: ''}") + private String logPageUrl; + /** * executed URLs in applicationname query within from ~ to timeframe @@ -169,7 +176,6 @@ public class BusinessTransactionController { ApplicationMap map = filteredMapService.selectApplicationMap(traceId); mv.addObject("nodes", map.getNodes()); mv.addObject("links", map.getLinks()); - mv.addObject("logLinkEnable", logLinkEnable); // call stacks RecordSet recordSet = this.transactionInfoService.createRecordSet(callTreeIterator, focusTimestamp); @@ -181,7 +187,14 @@ public class BusinessTransactionController { mv.addObject("callstackStart", recordSet.getStartTime()); mv.addObject("callstackEnd", recordSet.getEndTime()); mv.addObject("completeState", spanResult.getCompleteTypeString()); + + mv.addObject("logLinkEnable", logLinkEnable); + if (logLinkEnable) { + mv.addObject("loggingTransactionInfo", recordSet.isLoggingTransactionInfo()); + mv.addObject("logButtonName", logButtonName); + mv.addObject("logPageUrl", logPageUrl); + } if (viewVersion == 2) { mv.setViewName("transactionInfoJsonHash"); diff --git a/web/src/main/java/com/navercorp/pinpoint/web/controller/ScatterChartController.java b/web/src/main/java/com/navercorp/pinpoint/web/controller/ScatterChartController.java index 401e2de4a..ae66abeed 100644 --- a/web/src/main/java/com/navercorp/pinpoint/web/controller/ScatterChartController.java +++ b/web/src/main/java/com/navercorp/pinpoint/web/controller/ScatterChartController.java @@ -65,16 +65,6 @@ public class ScatterChartController { @Autowired private FilterBuilder filterBuilder; - - - @Value("#{pinpointWebProps['log.enable'] ?: false}") - private boolean logLinkEnable; - - @Value("#{pinpointWebProps['log.button.name'] ?: ''}") - private String logButtonName; - - @Value("#{pinpointWebProps['log.page.url'] ?: ''}") - private String logPageUrl; private static final String PREFIX_TRANSACTION_ID = "I"; private static final String PREFIX_TIME = "T"; @@ -234,10 +224,6 @@ public class ScatterChartController { model.addAttribute("metadata", metadata); } - if (logLinkEnable) { - model.addAttribute("logButtonName", logButtonName); - model.addAttribute("logPageUrl", logPageUrl); - } return "transactionmetadata"; } diff --git a/web/src/main/java/com/navercorp/pinpoint/web/service/TransactionInfoServiceImpl.java b/web/src/main/java/com/navercorp/pinpoint/web/service/TransactionInfoServiceImpl.java index 19c37bfed..3941be12a 100644 --- a/web/src/main/java/com/navercorp/pinpoint/web/service/TransactionInfoServiceImpl.java +++ b/web/src/main/java/com/navercorp/pinpoint/web/service/TransactionInfoServiceImpl.java @@ -146,6 +146,8 @@ public class TransactionInfoServiceImpl implements TransactionInfoService { // find the endTime to use as reference long endTime = getEndTime(spanAlignList); recordSet.setEndTime(endTime); + + recordSet.setLoggingTransactionInfo(focusTimeSpanBo.isLoggingTransactionInfo()); final SpanAlignPopulate spanAlignPopulate = new SpanAlignPopulate(); List recordList = spanAlignPopulate.populateSpanRecord(callTreeIterator); diff --git a/web/src/main/java/com/navercorp/pinpoint/web/vo/callstacks/RecordSet.java b/web/src/main/java/com/navercorp/pinpoint/web/vo/callstacks/RecordSet.java index a94b16918..f49b90c6f 100644 --- a/web/src/main/java/com/navercorp/pinpoint/web/vo/callstacks/RecordSet.java +++ b/web/src/main/java/com/navercorp/pinpoint/web/vo/callstacks/RecordSet.java @@ -33,6 +33,8 @@ public class RecordSet { private String agentId; private String applicationId; + + private boolean loggingTransactionInfo; public RecordSet() { } @@ -101,4 +103,12 @@ public class RecordSet { public void setApplicationId(String applicationId) { this.applicationId = applicationId; } + + public boolean isLoggingTransactionInfo() { + return loggingTransactionInfo; + } + + public void setLoggingTransactionInfo(boolean loggingTransactionInfo) { + this.loggingTransactionInfo = loggingTransactionInfo; + } } diff --git a/web/src/main/webapp/WEB-INF/views/transactionInfoJson.jsp b/web/src/main/webapp/WEB-INF/views/transactionInfoJson.jsp index 75f4cd4e9..8b5938be2 100644 --- a/web/src/main/webapp/WEB-INF/views/transactionInfoJson.jsp +++ b/web/src/main/webapp/WEB-INF/views/transactionInfoJson.jsp @@ -11,6 +11,9 @@ "callStackEnd" : ${callstackEnd}, "completeState" : "${completeState}", "logLinkEnable" : ${logLinkEnable}, + "loggingTransactionInfo" : ${loggingTransactionInfo}, + "logButtonName": "${logButtonName}", + "logPageUrl", "${logPageUrl}", "callStackIndex" : { "depth":0, "begin":1, diff --git a/web/src/main/webapp/features/distributedCallFlow/distributed-call-flow.directive.js b/web/src/main/webapp/features/distributedCallFlow/distributed-call-flow.directive.js index 8cd483a17..76d4de410 100644 --- a/web/src/main/webapp/features/distributedCallFlow/distributed-call-flow.directive.js +++ b/web/src/main/webapp/features/distributedCallFlow/distributed-call-flow.directive.js @@ -298,10 +298,6 @@ {id: "agent", name: "Agent", field: "agent", width: 130}, {id: "application-name", name: "Application", field: "applicationName", width: 150} ]; - - if (t.logLinkEnable) { - columns.push({id: "Loglink", name: "log", field: "logLink", width: 50, formatter:linkFormatter}); - } grid = new Slick.Grid(element.get(0), dataView, columns, options); grid.setSelectionModel(new Slick.RowSelectionModel()); From 27b57f08a9dc093930832ddc7e264b3b7f3879a5 Mon Sep 17 00:00:00 2001 From: Minwoo Jung Date: Thu, 9 Jul 2015 15:28:13 +0900 Subject: [PATCH 2/2] [#694] improvement logic for logging button --- .../main/java/com/navercorp/pinpoint/common/bo/SpanBo.java | 4 ++++ web/src/main/webapp/WEB-INF/views/transactionInfoJson.jsp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/commons/src/main/java/com/navercorp/pinpoint/common/bo/SpanBo.java b/commons/src/main/java/com/navercorp/pinpoint/common/bo/SpanBo.java index 7aa79ac59..4643de0ed 100644 --- a/commons/src/main/java/com/navercorp/pinpoint/common/bo/SpanBo.java +++ b/commons/src/main/java/com/navercorp/pinpoint/common/bo/SpanBo.java @@ -446,6 +446,8 @@ public class SpanBo implements com.navercorp.pinpoint.common.bo.Span { } else { buffer.put(false); } + + buffer.put(loggingTransactionInfo); return buffer.getBuffer(); } @@ -492,6 +494,8 @@ public class SpanBo implements com.navercorp.pinpoint.common.bo.Span { this.applicationServiceType = buffer.readShort(); } } + + this.loggingTransactionInfo = buffer.readBoolean(); return buffer.getOffset(); } diff --git a/web/src/main/webapp/WEB-INF/views/transactionInfoJson.jsp b/web/src/main/webapp/WEB-INF/views/transactionInfoJson.jsp index 8b5938be2..c023841b0 100644 --- a/web/src/main/webapp/WEB-INF/views/transactionInfoJson.jsp +++ b/web/src/main/webapp/WEB-INF/views/transactionInfoJson.jsp @@ -13,7 +13,7 @@ "logLinkEnable" : ${logLinkEnable}, "loggingTransactionInfo" : ${loggingTransactionInfo}, "logButtonName": "${logButtonName}", - "logPageUrl", "${logPageUrl}", + "logPageUrl" : "${logPageUrl}", "callStackIndex" : { "depth":0, "begin":1,