Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
remove comments and move from draft to ready
  • Loading branch information
kaushal02 committed Mar 20, 2023
commit 20edca1a1560b95525fb9c78a9fd363416305ba1
Original file line number Diff line number Diff line change
Expand Up @@ -169,5 +169,3 @@ public static void addHandler(
}
}
}


Original file line number Diff line number Diff line change
Expand Up @@ -83,15 +83,12 @@ public static boolean start(
@Advice.Argument(value = 0) ServletRequest request,
@Advice.Argument(value = 1) ServletResponse response,
@Advice.Local("currentSpan") Span currentSpan) {
System.out.println("start Enter javax.servlet.Servlet.service");
int callDepth =
HypertraceCallDepthThreadLocalMap.incrementCallDepth(Servlet2InstrumentationName.class);
if (callDepth > 0) {
System.out.println("end1 Enter javax.servlet.Servlet.service");
return false;
}
if (!(request instanceof HttpServletRequest) || !(response instanceof HttpServletResponse)) {
System.out.println("end2 Enter javax.servlet.Servlet.service");
return false;
}

Expand Down Expand Up @@ -126,7 +123,6 @@ public static boolean start(
if (FilterRegistry.getFilter().evaluateRequestHeaders(currentSpan, headers)) {
httpResponse.setStatus(403);
// skip execution of the user code
System.out.println("end3 Enter javax.servlet.Servlet.service");
return true;
}

Expand All @@ -139,7 +135,6 @@ public static boolean start(
httpRequest,
new SpanAndObjectPair(currentSpan, Collections.unmodifiableMap(headers)));
}
System.out.println("end Enter javax.servlet.Servlet.service");
return false;
}

Expand All @@ -149,17 +144,14 @@ public static void exit(
@Advice.Argument(1) ServletResponse response,
@Advice.Thrown(readOnly = false) Throwable throwable,
@Advice.Local("currentSpan") Span currentSpan) {
System.out.println("start Exit javax.servlet.Servlet.service");
int callDepth =
HypertraceCallDepthThreadLocalMap.decrementCallDepth(Servlet2InstrumentationName.class);
if (callDepth > 0) {
System.out.println("end1 Exit javax.servlet.Servlet.service");
return;
}
// we are in the most outermost level of Servlet instrumentation

if (!(request instanceof HttpServletRequest) || !(response instanceof HttpServletResponse)) {
System.out.println("end2 Exit javax.servlet.Servlet.service");
return;
}

Expand Down Expand Up @@ -188,7 +180,7 @@ public static void exit(

// capture response body
// TODO: capture response headers
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we able to capture response headers?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we are capturing content-type header but other response headers are not getting captured, at least in case of Boomi

// TODO: capture body based on response content type
// FIXME: capture body based on response content type
if (instrumentationConfig.httpBody().response()) {
Utils.captureResponseBody(
currentSpan,
Expand Down Expand Up @@ -221,7 +213,6 @@ public static void exit(
tmp = tmp.getCause();
}
}
System.out.println("end Exit javax.servlet.Servlet.service");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public Servlet2InstrumentationModule() {

@Override
public int order() {
return -1;
return 1;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,32 +91,26 @@ static class InputStream_ReadNoArgs {

@Advice.OnMethodEnter(suppress = Throwable.class)
public static ByteBufferSpanPair enter(@Advice.This ServletInputStream thizz) {
System.out.println("start Enter javax.servlet.ServletInputStream.ReadNoArgs");
ByteBufferSpanPair bufferSpanPair =
VirtualField.find(ServletInputStream.class, ByteBufferSpanPair.class).get(thizz);
if (bufferSpanPair == null) {
System.out.println("end1 Enter javax.servlet.ServletInputStream.ReadNoArgs");
return null;
}

HypertraceCallDepthThreadLocalMap.incrementCallDepth(ServletInputStream.class);
System.out.println("end Enter javax.servlet.ServletInputStream.ReadNoArgs");
return bufferSpanPair;
}

@Advice.OnMethodExit(onThrowable = Throwable.class)
public static void exit(
@Advice.Return int read, @Advice.Enter ByteBufferSpanPair bufferSpanPair) {
System.out.println("start Exit javax.servlet.ServletInputStream.ReadNoArgs");
try {
if (bufferSpanPair == null) {
System.out.println("end1 Exit javax.servlet.ServletInputStream.ReadNoArgs");
return;
}
int callDepth =
HypertraceCallDepthThreadLocalMap.decrementCallDepth(ServletInputStream.class);
if (callDepth > 0) {
System.out.println("end2 Exit javax.servlet.ServletInputStream.ReadNoArgs");
return;
}

Expand All @@ -132,7 +126,6 @@ public static void exit(
// ignore
}
}
System.out.println("end Exit javax.servlet.ServletInputStream.ReadNoArgs");
}
}

Expand All @@ -141,16 +134,13 @@ public static class InputStream_ReadByteArray {

@Advice.OnMethodEnter(suppress = Throwable.class)
public static ByteBufferSpanPair enter(@Advice.This ServletInputStream thizz) {
System.out.println("start Enter javax.servlet.ServletInputStream.ReadByteArray");
ByteBufferSpanPair bufferSpanPair =
VirtualField.find(ServletInputStream.class, ByteBufferSpanPair.class).get(thizz);
if (bufferSpanPair == null) {
System.out.println("end1 Enter javax.servlet.ServletInputStream.ReadByteArray");
return null;
}

HypertraceCallDepthThreadLocalMap.incrementCallDepth(ServletInputStream.class);
System.out.println("end Enter javax.servlet.ServletInputStream.ReadByteArray");
return bufferSpanPair;
}

Expand All @@ -161,16 +151,13 @@ public static void exit(
@Advice.Argument(0) byte[] b,
@Advice.Enter ByteBufferSpanPair bufferSpanPair)
throws Throwable {
System.out.println("start Exit javax.servlet.ServletInputStream.ReadByteArray");
try {
if (bufferSpanPair == null) {
System.out.println("end1 Exit javax.servlet.ServletInputStream.ReadByteArray");
return;
}
int callDepth =
HypertraceCallDepthThreadLocalMap.decrementCallDepth(ServletInputStream.class);
if (callDepth > 0) {
System.out.println("end2 Exit javax.servlet.ServletInputStream.ReadByteArray");
return;
}

Expand All @@ -189,7 +176,6 @@ public static void exit(
// ignore
}
}
System.out.println("end Exit javax.servlet.ServletInputStream.ReadByteArray");
}
}

Expand All @@ -198,16 +184,13 @@ public static class InputStream_ReadByteArrayOffset {

@Advice.OnMethodEnter(suppress = Throwable.class)
public static ByteBufferSpanPair enter(@Advice.This ServletInputStream thizz) {
System.out.println("start Enter javax.servlet.ServletInputStream.ReadByteArrayOffset");
ByteBufferSpanPair bufferSpanPair =
VirtualField.find(ServletInputStream.class, ByteBufferSpanPair.class).get(thizz);
if (bufferSpanPair == null) {
System.out.println("end1 Enter javax.servlet.ServletInputStream.ReadByteArrayOffset");
return null;
}

HypertraceCallDepthThreadLocalMap.incrementCallDepth(ServletInputStream.class);
System.out.println("end Enter javax.servlet.ServletInputStream.ReadByteArrayOffset");
return bufferSpanPair;
}

Expand All @@ -220,17 +203,14 @@ public static void exit(
@Advice.Argument(2) int len,
@Advice.Enter ByteBufferSpanPair bufferSpanPair)
throws Throwable {
System.out.println("start Exit javax.servlet.ServletInputStream.ReadByteArrayOffset");
try {

if (bufferSpanPair == null) {
System.out.println("end1 Exit javax.servlet.ServletInputStream.ReadByteArrayOffset");
return;
}
int callDepth =
HypertraceCallDepthThreadLocalMap.decrementCallDepth(ServletInputStream.class);
if (callDepth > 0) {
System.out.println("end2 Exit javax.servlet.ServletInputStream.ReadByteArrayOffset");
return;
}

Expand All @@ -249,7 +229,6 @@ public static void exit(
// ignore
}
}
System.out.println("end Exit javax.servlet.ServletInputStream.ReadByteArrayOffset");
}
}

Expand All @@ -258,33 +237,27 @@ public static class InputStream_ReadAllBytes {

@Advice.OnMethodEnter(suppress = Throwable.class)
public static ByteBufferSpanPair enter(@Advice.This ServletInputStream thizz) {
System.out.println("start Enter javax.servlet.ServletInputStream.ReadAllBytes");
ByteBufferSpanPair bufferSpanPair =
VirtualField.find(ServletInputStream.class, ByteBufferSpanPair.class).get(thizz);
if (bufferSpanPair == null) {
System.out.println("end1 Enter javax.servlet.ServletInputStream.ReadAllBytes");
return null;
}

HypertraceCallDepthThreadLocalMap.incrementCallDepth(ServletInputStream.class);
System.out.println("end Enter javax.servlet.ServletInputStream.ReadAllBytes");
return bufferSpanPair;
}

@Advice.OnMethodExit(onThrowable = Throwable.class)
public static void exit(
@Advice.Return byte[] b, @Advice.Enter ByteBufferSpanPair bufferSpanPair)
throws IOException {
System.out.println("start Exit javax.servlet.ServletInputStream.ReadAllBytes");
try {
if (bufferSpanPair == null) {
System.out.println("end1 Exit javax.servlet.ServletInputStream.ReadAllBytes");
return;
}
int callDepth =
HypertraceCallDepthThreadLocalMap.decrementCallDepth(ServletInputStream.class);
if (callDepth > 0) {
System.out.println("end2 Exit javax.servlet.ServletInputStream.ReadAllBytes");
return;
}
bufferSpanPair.writeToBuffer(b);
Expand All @@ -296,7 +269,6 @@ public static void exit(
// ignore
}
}
System.out.println("end Exit javax.servlet.ServletInputStream.ReadAllBytes");
}
}

Expand All @@ -305,16 +277,13 @@ public static class InputStream_ReadNBytes {

@Advice.OnMethodEnter(suppress = Throwable.class)
public static ByteBufferSpanPair enter(@Advice.This ServletInputStream thizz) {
System.out.println("start Enter javax.servlet.ServletInputStream.ReadNBytes");
ByteBufferSpanPair bufferSpanPair =
VirtualField.find(ServletInputStream.class, ByteBufferSpanPair.class).get(thizz);
if (bufferSpanPair == null) {
System.out.println("end1 Enter javax.servlet.ServletInputStream.ReadNBytes");
return null;
}

HypertraceCallDepthThreadLocalMap.incrementCallDepth(ServletInputStream.class);
System.out.println("end Enter javax.servlet.ServletInputStream.ReadNBytes");
return bufferSpanPair;
}

Expand All @@ -326,16 +295,13 @@ public static void exit(
@Advice.Argument(1) int off,
@Advice.Enter ByteBufferSpanPair bufferSpanPair)
throws Throwable {
System.out.println("start Exit javax.servlet.ServletInputStream.ReadNBytes");
try {
if (bufferSpanPair == null) {
System.out.println("end1 Exit javax.servlet.ServletInputStream.ReadNBytes");
return;
}
int callDepth =
HypertraceCallDepthThreadLocalMap.decrementCallDepth(ServletInputStream.class);
if (callDepth > 0) {
System.out.println("end2 Exit javax.servlet.ServletInputStream.ReadNBytes");
return;
}

Expand All @@ -354,7 +320,6 @@ public static void exit(
// ignore
}
}
System.out.println("end Exit javax.servlet.ServletInputStream.ReadNBytes");
}
}
}
Loading