Skip to content

Commit 458fd3d

Browse files
authored
Merge pull request #18 from robbinspg/httpdata
Improve performance by only collecting data used by dashboard
2 parents 6bd1dc1 + 3c69f96 commit 458fd3d

File tree

1 file changed

+32
-25
lines changed

1 file changed

+32
-25
lines changed

java/src/com/ibm/javametrics/instrument/ServletCallback.java

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ public class ServletCallback {
3737
private static final String GET_ATTRIBUTE = "getAttribute";
3838
private static final String SET_ATTRIBUTE = "setAttribute";
3939
private static final Object TRACKER_ATTRIBUTE = "com.ibm.javametrics.tracker";
40+
41+
/*
42+
* Set to true to collect detailed Request/Response information
43+
*/
44+
private static boolean detailed = false;
4045

4146
/**
4247
* Called on method entry for HTTP/JSP requests public static void
@@ -129,37 +134,39 @@ public static void after(Object request, Object response) {
129134
Method getRequestURL = reqClass.getMethod(GET_REQUEST_URL);
130135
data.setUrl(((StringBuffer) getRequestURL.invoke(request)).toString());
131136

132-
Method getMethod = reqClass.getMethod(GET_METHOD);
133-
data.setMethod((String) getMethod.invoke(request));
134-
135-
Method getContentType = respClass.getMethod(GET_CONTENT_TYPE);
136-
data.setContentType((String) getContentType.invoke(response));
137-
138-
Method getHeaders = respClass.getMethod(GET_HEADER_NAMES);
139-
Method getHeader = respClass.getMethod(GET_HEADER, String.class);
140-
Collection<String> headers = (Collection<String>) getHeaders.invoke(response);
141-
if (headers != null) {
142-
for (String headerName : headers) {
143-
String header = (String) getHeader.invoke(response, headerName);
144-
if (header != null) {
145-
data.addHeader(headerName, header);
137+
if (detailed ) {
138+
Method getMethod = reqClass.getMethod(GET_METHOD);
139+
data.setMethod((String) getMethod.invoke(request));
140+
141+
Method getContentType = respClass.getMethod(GET_CONTENT_TYPE);
142+
data.setContentType((String) getContentType.invoke(response));
143+
144+
Method getHeaders = respClass.getMethod(GET_HEADER_NAMES);
145+
Method getHeader = respClass.getMethod(GET_HEADER, String.class);
146+
Collection<String> headers = (Collection<String>) getHeaders.invoke(response);
147+
if (headers != null) {
148+
for (String headerName : headers) {
149+
String header = (String) getHeader.invoke(response, headerName);
150+
if (header != null) {
151+
data.addHeader(headerName, header);
152+
}
146153
}
147154
}
148-
}
149155

150-
Method getReqHeaders = reqClass.getMethod(GET_HEADER_NAMES);
151-
Method getReqHeader = reqClass.getMethod(GET_HEADER, String.class);
152-
Enumeration<String> reqHeaders = (Enumeration<String>) getReqHeaders.invoke(request);
153-
if (reqHeaders != null) {
154-
while (reqHeaders.hasMoreElements()) {
155-
String headerName = reqHeaders.nextElement();
156-
String header = (String) getReqHeader.invoke(request, headerName);
157-
if (header != null) {
158-
data.addRequestHeader(headerName, header);
156+
Method getReqHeaders = reqClass.getMethod(GET_HEADER_NAMES);
157+
Method getReqHeader = reqClass.getMethod(GET_HEADER, String.class);
158+
Enumeration<String> reqHeaders = (Enumeration<String>) getReqHeaders.invoke(request);
159+
if (reqHeaders != null) {
160+
while (reqHeaders.hasMoreElements()) {
161+
String headerName = reqHeaders.nextElement();
162+
String header = (String) getReqHeader.invoke(request, headerName);
163+
if (header != null) {
164+
data.addRequestHeader(headerName, header);
165+
}
159166
}
160167
}
161168
}
162-
169+
163170
data.setDuration(System.currentTimeMillis() - tracker.getRequestTime());
164171

165172
if (Agent.debug) {

0 commit comments

Comments
 (0)