tracing
tracing copied to clipboard
SpanAspect does not take into account proxy objects
Hello. I tried to use @NewSpan
on spring data repositories, but it idin't work
NewSpan newSpan = method.getAnnotation(NewSpan.class);
method
here is from proxy and annotation not found.
I fixed that by using org.apache.commons.lang3.reflect.MethodUtils.getAnnotation(method, NewSpan::class.java, true, true)
Please fix them in library
Can you create a simple reproducer for this issue or a test that shows that this doesn't work?
@marcingrzejszczak reproducer with instructions in readme is here https://github.com/lex-em/micrometer-tracing-on-proxy CustomSpanAspect class contains additional comments
@shakuzen @jonatan-ivanov what is your opinion on adding a dependency to apache commons to have this functionality? I guess we would need to do the same in micrometer for those aspects
I'm thinking if:
- We can copy that single method: getAnnotation
- Document that methods like these should be either wrapped or
.observed(methodReference)
should be used - Instrument Spring Data repositories
That's not copying of just a single method :grimacing: