1
14
15 package com.liferay.portal.monitoring.statistics.portlet;
16
17 import com.liferay.portal.monitoring.MonitoringException;
18 import com.liferay.portal.monitoring.RequestStatus;
19 import com.liferay.portal.monitoring.statistics.DataSampleProcessor;
20 import com.liferay.portal.monitoring.statistics.RequestStatistics;
21
22 import java.util.HashMap;
23 import java.util.Map;
24
25
32 public class PortletStatistics
33 implements DataSampleProcessor<PortletRequestDataSample> {
34
35 public PortletStatistics(
36 String portletId, String portletName, String displayName) {
37
38 _portletId = portletId;
39 _portletName = portletName;
40 _displayName = displayName;
41 _actionRequestStatistics = new RequestStatistics(portletId);
42 _eventRequestStatistics = new RequestStatistics(portletId);
43 _renderRequestStatistics = new RequestStatistics(portletId);
44 _resourceRequestStatistics = new RequestStatistics(portletId);
45
46 _requestStatistics.put(
47 PortletRequestType.ACTION, _actionRequestStatistics);
48 _requestStatistics.put(
49 PortletRequestType.EVENT, _eventRequestStatistics);
50 _requestStatistics.put(
51 PortletRequestType.RENDER, _renderRequestStatistics);
52 _requestStatistics.put(
53 PortletRequestType.RESOURCE, _resourceRequestStatistics);
54 }
55
56 public RequestStatistics getActionRequestStatistics() {
57 return _actionRequestStatistics;
58 }
59
60 public String getDisplayName() {
61 return _displayName;
62 }
63
64 public RequestStatistics getEventRequestStatistics() {
65 return _eventRequestStatistics;
66 }
67
68 public String getPortletId() {
69 return _portletId;
70 }
71
72 public String getPortletName() {
73 return _portletName;
74 }
75
76 public RequestStatistics getRenderRequestStatistics() {
77 return _renderRequestStatistics;
78 }
79
80 public RequestStatistics getResourceRequestStatistics() {
81 return _resourceRequestStatistics;
82 }
83
84 public void processDataSample(
85 PortletRequestDataSample portletRequestDataSample)
86 throws MonitoringException {
87
88 if (!portletRequestDataSample.getPortletId().equals(_portletId)) {
89 return;
90 }
91
92 PortletRequestType portletRequestType =
93 portletRequestDataSample.getRequestType();
94
95 RequestStatistics requestStatistics =_requestStatistics.get(
96 portletRequestType);
97
98 if (requestStatistics == null) {
99 throw new MonitoringException(
100 "No statistics found for " + portletRequestDataSample);
101 }
102
103 RequestStatus requestStatus =
104 portletRequestDataSample.getRequestStatus();
105
106 if (requestStatus.equals(RequestStatus.ERROR)) {
107 requestStatistics.incrementError();
108 }
109 else if (requestStatus.equals(RequestStatus.SUCCESS)) {
110 requestStatistics.incrementSuccessDuration(
111 portletRequestDataSample.getDuration());
112 }
113 else if (requestStatus.equals(RequestStatus.TIMEOUT)) {
114 requestStatistics.incrementTimeout();
115 }
116 }
117
118 public void reset() {
119 _actionRequestStatistics.reset();
120 _eventRequestStatistics.reset();
121 _renderRequestStatistics.reset();
122 _resourceRequestStatistics.reset();
123 }
124
125 private RequestStatistics _actionRequestStatistics;
126 private String _displayName;
127 private RequestStatistics _eventRequestStatistics;
128 private String _portletId;
129 private String _portletName;
130 private RequestStatistics _renderRequestStatistics;
131 private Map<PortletRequestType, RequestStatistics> _requestStatistics =
132 new HashMap<PortletRequestType, RequestStatistics>();
133 private RequestStatistics _resourceRequestStatistics;
134
135 }