Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add JFR profile analyzer #3678

Merged
merged 3 commits into from
Jul 27, 2021
Merged

Add JFR profile analyzer #3678

merged 3 commits into from
Jul 27, 2021

Conversation

trask
Copy link
Member

@trask trask commented Jul 26, 2021

Helps separate javaagent-related code from application code, to help identify bottlenecks in e2e benchmarks.

Here's sample output from the ServletBenchmark in #3672

Total samples: 1531
Total agent samples: 255 (16.66%)

132 org.apache.catalina.core.ApplicationFilterChain.doFilter() line: 163
  120 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter() line: 190
     80 io.opentelemetry.javaagent.instrumentation.springwebmvc.HandlerMappingResourceNameFilter.doFilter() line: 45
       80 io.opentelemetry.javaagent.instrumentation.springwebmvc.HandlerMappingResourceNameFilter.findMapping() line: 69
         74 org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler() line: 498
           74 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getHandlerInternal() line: 67
             69 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getHandlerInternal() line: 125
               46 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal() line: 377
                 27 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod() line: 399
                   23 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.addMatchingMappings() line: 442
                     23 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getMatchingMapping() line: 67
                       23 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getMatchingMapping() line: 109
                          9 org.springframework.web.servlet.mvc.method.RequestMappingInfo.getMatchingCondition() line: 377
                            7 org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition.getMatchingCondition() line: 141
                              3 org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition.matchRequestMethod() line: 163
                                3 java.util.HashSet.contains() line: 204
                                  3 java.util.HashMap.containsKey() line: 591
                                    2 java.util.HashMap.hash() line: 339
                                      2 java.lang.Enum.hashCode() line: 154
                                    1 java.util.HashMap.getNode() line: 567
                                      1 java.lang.Enum.equals() line: 145
                              2 org.apache.catalina.connector.RequestFacade.getMethod() line: 760
                                2 org.apache.catalina.connector.Request.getMethod() line: 2370
                                  1 org.apache.tomcat.util.buf.MessageBytes.toString() line: 170
                                  1 org.apache.tomcat.util.buf.MessageBytes.toString() line: 174
                                    1 org.apache.tomcat.util.buf.ByteChunk.toString() line: 584
                              2 org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition.matchRequestMethod() line: 162
                                1 org.springframework.web.bind.annotation.RequestMethod.valueOf() line: 35
                                  1 java.lang.Enum.valueOf() line: 234
                            2 org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition.getMatchingCondition() line: 128
                              2 org.springframework.web.cors.CorsUtils.isPreFlightRequest() line: 73
                                1 org.springframework.http.HttpMethod.matches() line: 66
                                  1 java.lang.String.equals() line: 1008
                                1 org.apache.catalina.connector.RequestFacade.getMethod() line: 760
                                  1 org.apache.catalina.connector.Request.getMethod() line: 2370
                                    1 org.apache.tomcat.util.buf.MessageBytes.toString() line: 174
                          6 org.springframework.web.servlet.mvc.method.RequestMappingInfo.getMatchingCondition() line: 415
                            4 org.springframework.web.servlet.mvc.method.RequestMappingInfo.<init>() line: 179
                              3 org.springframework.web.servlet.mvc.method.RequestMappingInfo.calculateHashCode() line: 497
                                3 org.springframework.web.servlet.mvc.condition.AbstractRequestCondition.hashCode() line: 72
                                  2 java.util.AbstractSet.hashCode() line: 120
                                    2 java.util.HashSet.iterator() line: 173
                                      1 java.util.LinkedHashMap.keySet() line: 531
                                      1 java.util.LinkedHashMap.keySet() line: 533
                                  1 org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getContent() line: 196
                              1 org.springframework.web.servlet.mvc.method.RequestMappingInfo.calculateHashCode() line: 498
                                1 org.springframework.web.servlet.mvc.condition.AbstractRequestCondition.hashCode() line: 72
                                  1 java.util.AbstractSet.hashCode() line: 122
                                    1 java.util.LinkedHashMap$LinkedKeyIterator.next() line: 741
                                      1 java.util.LinkedHashMap$LinkedHashIterator.nextNode() line: 723
                            2 org.springframework.web.servlet.mvc.method.RequestMappingInfo.<init>() line: 168
                          5 org.springframework.web.servlet.mvc.method.RequestMappingInfo.getMatchingCondition() line: 406
                            3 org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getMatchingCondition() line: 282
                              3 java.util.LinkedHashSet.<init>() line: 169
                                3 java.util.AbstractCollection.addAll() line: 352
                                  3 java.util.HashSet.add() line: 220
                                    3 java.util.HashMap.put() line: 607
                                      2 java.util.HashMap.putVal() line: 624
                                        1 java.util.HashMap.resize() line: 693
                                        1 java.util.HashMap.resize() line: 694
                                      1 java.util.HashMap.hash() line: 339
                            1 org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getMatchingCondition() line: 280
                              1 org.springframework.web.util.UrlPathHelper.getResolvedLookupPath() line: 213
                                1 org.apache.catalina.connector.RequestFacade.getAttribute() line: 282
                                  1 org.apache.catalina.connector.Request.getAttribute() line: 886
                                    1 java.util.HashMap.get() line: 552
                                      1 java.util.HashMap.hash() line: 339
                                        1 java.lang.String.hashCode() line: 1504
                                          1 java.lang.StringLatin1.hashCode() line: 195
                            1 org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getMatchingCondition() line: 281
                              1 org.springframework.web.servlet.mvc.condition.PatternsRequestCondition.getMatchingPatterns() line: 298
                          1 org.springframework.web.servlet.mvc.method.RequestMappingInfo.getMatchingCondition() line: 385
                            1 org.springframework.web.servlet.mvc.condition.HeadersRequestCondition.getMatchingCondition() line: 126
                              1 org.springframework.web.cors.CorsUtils.isPreFlightRequest() line: 73
                                1 org.apache.catalina.connector.RequestFacade.getMethod() line: 760
                                  1 org.apache.catalina.connector.Request.getMethod() line: 2370
                                    1 org.apache.tomcat.util.buf.MessageBytes.toString() line: 170
                          1 org.springframework.web.servlet.mvc.method.RequestMappingInfo.getMatchingCondition() line: 389
                            1 org.springframework.web.servlet.mvc.condition.ConsumesRequestCondition.getMatchingCondition() line: 204
                              1 org.springframework.web.servlet.mvc.condition.ConsumesRequestCondition.isEmpty() line: 142
                    3 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.addMatchingMappings() line: 444
                      2 java.util.HashMap.get() line: 552
                      1 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$Match.<init>() line: 797
                 13 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod() line: 432
                   13 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleMatch() line: 67
                     12 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleMatch() line: 147
                        6 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.extractMatchDetails() line: 189
                          5 org.springframework.util.AntPathMatcher.extractUriTemplateVariables() line: 515
                            3 org.springframework.util.AntPathMatcher.doMatch() line: 214
                              2 java.lang.String.startsWith() line: 1470
                                1 java.lang.String.startsWith() line: 1437
                            2 org.springframework.util.AntPathMatcher.doMatch() line: 218
                              2 org.springframework.util.AntPathMatcher.tokenizePattern() line: 402
                                2 java.util.concurrent.ConcurrentHashMap.get() line: 945
                          1 org.springframework.util.AntPathMatcher.extractUriTemplateVariables() line: 519
                        3 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.extractMatchDetails() line: 188
                          2 java.util.HashSet.iterator() line: 173
                            1 java.util.LinkedHashMap$LinkedKeySet.iterator() line: 543
                            1 java.util.LinkedHashMap.keySet() line: 534
                        2 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.extractMatchDetails() line: 195
                          2 org.apache.catalina.connector.RequestFacade.setAttribute() line: 540
                            1 org.apache.catalina.connector.Request.setAttribute() line: 1552
                            1 org.apache.catalina.connector.Request.setAttribute() line: 1585
                              1 java.util.concurrent.ConcurrentHashMap.put() line: 1006
                                1 java.util.concurrent.ConcurrentHashMap.putVal() line: 1019
                                  1 java.util.concurrent.ConcurrentHashMap$Node.<init>() line: 633
                        1 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.extractMatchDetails() line: 196
                          1 org.apache.catalina.connector.RequestFacade.setAttribute() line: 540
                            1 org.apache.catalina.connector.Request.setAttribute() line: 1593
                              1 org.apache.catalina.connector.Request.notifyAttributeAssigned() line: 1610
                      1 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleMatch() line: 140
                        1 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.handleMatch() line: 456
                          1 org.apache.catalina.connector.RequestFacade.setAttribute() line: 540
                            1 org.apache.catalina.connector.Request.setAttribute() line: 1585
                              1 java.util.concurrent.ConcurrentHashMap.put() line: 1006
                                1 java.util.concurrent.ConcurrentHashMap.putVal() line: 1019
                                  1 java.util.concurrent.ConcurrentHashMap$Node.<init>() line: 633
                  3 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod() line: 397
                    3 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.getMappingsByDirectPath() line: 592
                      3 org.springframework.util.MultiValueMapAdapter.get() line: 39
                        3 org.springframework.util.MultiValueMapAdapter.get() line: 132
                          3 java.util.LinkedHashMap.get() line: 440
                            3 java.util.HashMap.getNode() line: 567
                              3 java.lang.String.equals() line: 1007
                  3 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod() line: 431
                    3 org.apache.catalina.connector.RequestFacade.setAttribute() line: 540
                      2 org.apache.catalina.connector.Request.setAttribute() line: 1558
                        2 java.util.HashMap.get() line: 552
                          1 java.util.HashMap.getNode() line: 573
                          1 java.util.HashMap.hash() line: 339
                            1 java.lang.String.hashCode() line: 1504
                              1 java.lang.StringLatin1.hashCode() line: 195
                      1 org.apache.catalina.connector.Request.setAttribute() line: 1585
                        1 java.util.concurrent.ConcurrentHashMap.put() line: 1006
                          1 java.util.concurrent.ConcurrentHashMap.putVal() line: 1019
               17 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal() line: 374
                 17 org.springframework.web.servlet.handler.AbstractHandlerMapping.initLookupPath() line: 579
                   15 org.springframework.web.util.UrlPathHelper.resolveAndCacheLookupPath() line: 200
                     15 org.springframework.web.util.UrlPathHelper.getLookupPathForRequest() line: 249
                        9 org.springframework.web.util.UrlPathHelper.getPathWithinApplication() line: 354
                          5 org.springframework.web.util.UrlPathHelper.getRequestUri() line: 437
                            4 org.springframework.web.util.UrlPathHelper.decodeAndCleanUriString() line: 549
                              1 org.springframework.web.util.UrlPathHelper.decodeRequestString() line: 568
                            1 org.springframework.web.util.UrlPathHelper.decodeAndCleanUriString() line: 548
                              1 org.springframework.web.util.UrlPathHelper.removeSemicolonContent() line: 615
                                1 org.springframework.web.util.UrlPathHelper.removeSemicolonContentInternal() line: 619
                                  1 java.lang.String.indexOf() line: 1535
                                    1 java.lang.String.indexOf() line: 1578
                                      1 java.lang.StringLatin1.indexOf() line: 214
                          4 org.springframework.web.util.UrlPathHelper.getRequestUri() line: 435
                            4 org.apache.catalina.connector.RequestFacade.getRequestURI() line: 868
                              4 org.apache.catalina.connector.Request.getRequestURI() line: 2451
                                4 org.apache.tomcat.util.buf.MessageBytes.toString() line: 170
                                  2 org.apache.tomcat.util.buf.CharChunk.toString() line: 420
                        3 org.springframework.web.util.UrlPathHelper.getPathWithinApplication() line: 355
                          1 org.springframework.web.util.UrlPathHelper.getRemainingPath() line: 393
                            1 java.lang.String.length() line: 658
                          1 org.springframework.web.util.UrlPathHelper.getRemainingPath() line: 396
                            1 java.lang.String.charAt() line: 693
                              1 java.lang.StringLatin1.charAt() line: 46
                          1 org.springframework.web.util.UrlPathHelper.getRemainingPath() line: 399
                            1 java.lang.String.substring() line: 1846
                              1 java.lang.StringLatin1.newString() line: 715
                                1 java.util.Arrays.copyOfRange() line: 4031
                        2 org.springframework.web.util.UrlPathHelper.getPathWithinApplication() line: 358
                          2 org.springframework.util.StringUtils.hasText() line: 171
                            2 org.springframework.util.StringUtils.containsText() line: 177
                              1 java.lang.String.charAt() line: 693
                                1 java.lang.StringLatin1.charAt() line: 46
                              1 java.lang.Character.isWhitespace() line: 10185
                                1 java.lang.Character.isWhitespace() line: 10216
                                  1 java.lang.CharacterDataLatin1.isWhitespace() line: 240
                        1 org.springframework.web.util.UrlPathHelper.getPathWithinApplication() line: 353
                          1 org.springframework.web.util.UrlPathHelper.getContextPath() line: 449
                            1 org.apache.catalina.connector.RequestFacade.getAttribute() line: 282
                    2 org.springframework.web.util.UrlPathHelper.resolveAndCacheLookupPath() line: 201
                      2 org.apache.catalina.connector.RequestFacade.setAttribute() line: 540
                        2 org.apache.catalina.connector.Request.setAttribute() line: 1585
                          2 java.util.concurrent.ConcurrentHashMap.put() line: 1006
                            1 java.util.concurrent.ConcurrentHashMap.putVal() line: 1065
                            1 java.util.concurrent.ConcurrentHashMap.putVal() line: 1037
                6 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal() line: 378
                  5 org.springframework.web.method.HandlerMethod.createWithResolvedBean() line: 337
                    5 org.springframework.beans.factory.support.AbstractBeanFactory.getBean() line: 208
                      2 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean() line: 252
                        2 org.springframework.beans.factory.support.AbstractBeanFactory.transformedBeanName() line: 1258
                          1 org.springframework.core.SimpleAliasRegistry.canonicalName() line: 214
                            1 java.util.concurrent.ConcurrentHashMap.get() line: 936
                              1 java.util.concurrent.ConcurrentHashMap.spread() line: 697
                      1 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean() line: 256
                        1 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton() line: 168
                          1 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton() line: 182
                            1 java.util.concurrent.ConcurrentHashMap.get() line: 938
                              1 java.util.concurrent.ConcurrentHashMap.tabAt() line: 760
                      1 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean() line: 267
                        1 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance() line: 1261
                          1 java.lang.ThreadLocal.get() line: 165
                            1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 439
                      1 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean() line: 303
                  1 org.springframework.web.method.HandlerMethod.createWithResolvedBean() line: 339
                    1 org.springframework.web.method.HandlerMethod.<init>() line: 178
              3 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getHandlerInternal() line: 128
                3 org.springframework.web.servlet.mvc.condition.ProducesRequestCondition.clearMediaTypesAttribute() line: 344
                  3 org.apache.catalina.connector.RequestFacade.removeAttribute() line: 552
                    2 org.apache.catalina.connector.Request.removeAttribute() line: 1522
                      2 java.lang.String.startsWith() line: 1470
                        2 java.lang.String.startsWith() line: 1428
                          2 java.lang.String.length() line: 658
                            1 java.lang.String.coder() line: 3258
                    1 org.apache.catalina.connector.Request.removeAttribute() line: 1526
              2 org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.getHandlerInternal() line: 123
                2 org.apache.catalina.connector.RequestFacade.removeAttribute() line: 552
                  2 org.apache.catalina.connector.Request.removeAttribute() line: 1522
                    2 java.lang.String.startsWith() line: 1470
                      2 java.lang.String.startsWith() line: 1428
                        2 java.lang.String.length() line: 658
          5 org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler() line: 512
            3 org.springframework.web.util.ServletRequestPathUtils.hasCachedPath() line: 178
              3 org.apache.catalina.connector.RequestFacade.getAttribute() line: 282
                2 org.apache.catalina.connector.Request.getAttribute() line: 891
                  1 java.util.concurrent.ConcurrentHashMap.get() line: 940
                    1 java.lang.String.equals() line: 1008
                  1 java.util.concurrent.ConcurrentHashMap.get() line: 936
                    1 java.lang.String.hashCode() line: 1503
            2 org.springframework.web.util.ServletRequestPathUtils.hasCachedPath() line: 177
              2 org.apache.catalina.connector.RequestFacade.getAttribute() line: 282
                2 org.apache.catalina.connector.Request.getAttribute() line: 886
                  2 java.util.HashMap.get() line: 552
                    1 java.util.HashMap.getNode() line: 574
                    1 java.util.HashMap.getNode() line: 573
          1 org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler() line: 516
            1 org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandlerExecutionChain() line: 615
              1 org.springframework.web.servlet.HandlerExecutionChain.addInterceptor() line: 101
                1 java.util.ArrayList.add() line: 499
                  1 java.util.ArrayList.add() line: 486
                    1 java.util.ArrayList.grow() line: 243
                      1 java.util.ArrayList.grow() line: 238
     27 org.springframework.web.filter.OncePerRequestFilter.doFilter() line: 91
        8 io.opentelemetry.javaagent.shaded.instrumentation.servlet.v3_0.Servlet3HttpServerTracer.updateContext() line: 42
          4 io.opentelemetry.javaagent.shaded.instrumentation.api.servlet.ServerSpanNaming.updateServerSpanName() line: 52
            4 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.ServerSpan.fromContextOrNull() line: 34
              4 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ArrayBasedContext.get() line: 57
          3 io.opentelemetry.javaagent.shaded.instrumentation.api.servlet.ServerSpanNaming.updateServerSpanName() line: 69
            3 io.opentelemetry.javaagent.shaded.instrumentation.servlet.v3_0.Servlet3HttpServerTracer$$Lambda$965.378741398.get() line: -1
              3 io.opentelemetry.javaagent.shaded.instrumentation.servlet.v3_0.Servlet3HttpServerTracer.lambda$updateContext$0() line: 45
                3 io.opentelemetry.javaagent.shaded.instrumentation.servlet.naming.ServletSpanNameProvider.getSpanNameOrNull() line: 38
                  2 io.opentelemetry.javaagent.shaded.instrumentation.api.servlet.MappingResolver.resolve() line: 69
                    1 java.lang.String.endsWith() line: 1485
                      1 java.lang.String.startsWith() line: 1438
                    1 java.lang.String.equals() line: 1009
                  1 io.opentelemetry.javaagent.shaded.instrumentation.api.servlet.MappingResolver.resolve() line: 73
          1 io.opentelemetry.javaagent.shaded.instrumentation.api.servlet.ServerSpanNaming.updateServerSpanName() line: 56
        6 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.getServerContext() line: 115
          6 io.opentelemetry.javaagent.shaded.instrumentation.servlet.javax.JavaxServletAccessor.getRequestAttribute() line: 13
            6 io.opentelemetry.javaagent.shaded.instrumentation.servlet.javax.JavaxServletAccessor.getRequestAttribute() line: 46
              6 org.apache.catalina.connector.RequestFacade.getAttribute() line: 282
                4 org.apache.catalina.connector.Request.getAttribute() line: 886
                  4 java.util.HashMap.get() line: 552
                    1 java.util.HashMap.getNode() line: 567
                      1 java.lang.String.equals() line: 1009
                        1 java.lang.String.isLatin1() line: 3266
                    1 java.util.HashMap.getNode() line: 564
                    1 java.util.HashMap.getNode() line: 570
                    1 java.util.HashMap.hash() line: 339
                      1 java.lang.String.hashCode() line: 1504
                        1 java.lang.StringLatin1.hashCode() line: 196
                1 org.apache.catalina.connector.Request.getAttribute() line: 891
                  1 java.util.concurrent.ConcurrentHashMap.get() line: 945
        5 io.opentelemetry.javaagent.instrumentation.api.CallDepth.forClass() line: 38
          5 io.opentelemetry.javaagent.instrumentation.api.CallDepthThreadLocalMap.getCallDepth() line: 19
            3 java.lang.ThreadLocal.get() line: 165
              2 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 439
                1 java.lang.ThreadLocal$ThreadLocalMap.getEntryAfterMiss() line: 455
                1 java.lang.ThreadLocal$ThreadLocalMap.getEntryAfterMiss() line: 462
                  1 java.lang.ThreadLocal$ThreadLocalMap.nextIndex() line: 371
              1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 436
            1 java.lang.ClassValue.get() line: 106
              1 java.lang.ClassValue.match() line: 244
            1 java.lang.ThreadLocal.get() line: 172
              1 java.lang.ThreadLocal.setInitialValue() line: 197
        4 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.needsRescoping() line: 271
          1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.Span.fromContext() line: 47
            1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ArrayBasedContext.get() line: 58
          1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.Span.fromContext() line: 48
          1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.sameTrace() line: 275
            1 java.lang.String.equals() line: 1003
          1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.Context.current() line: 86
            1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ThreadLocalContextStorage.current() line: 46
              1 java.lang.ThreadLocal.get() line: 164
        2 io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge.currentContext() line: 22
          2 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.Context.current() line: 86
            2 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ThreadLocalContextStorage.current() line: 46
              2 java.lang.ThreadLocal.get() line: 165
                1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 436
                1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 435
        1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.v3_0.Servlet3HttpServerTracer.updateContext() line: 46
          1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.updateContext() line: 233
            1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ArrayBasedContext.get() line: 57
        1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.getServerContext() line: 116
      7 org.apache.tomcat.websocket.server.WsFilter.doFilter() line: 51
        4 io.opentelemetry.javaagent.instrumentation.api.CallDepth.forClass() line: 38
          4 io.opentelemetry.javaagent.instrumentation.api.CallDepthThreadLocalMap.getCallDepth() line: 19
            4 java.lang.ThreadLocal.get() line: 165
              2 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 436
              1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 435
              1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 439
                1 java.lang.ThreadLocal$ThreadLocalMap.getEntryAfterMiss() line: 455
        2 io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge.currentContext() line: 22
          2 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.Context.current() line: 86
            2 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ThreadLocalContextStorage.current() line: 46
              1 java.lang.ThreadLocal.get() line: 165
                1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 436
        1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.getServerContext() line: 115
          1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.javax.JavaxServletAccessor.getRequestAttribute() line: 13
            1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.javax.JavaxServletAccessor.getRequestAttribute() line: 46
              1 org.apache.catalina.connector.RequestFacade.getAttribute() line: 282
                1 org.apache.catalina.connector.Request.getAttribute() line: 891
                  1 java.util.concurrent.ConcurrentHashMap.get() line: 936
                    1 java.lang.String.hashCode() line: 1504
                      1 java.lang.StringLatin1.hashCode() line: 195
      6 io.opentelemetry.javaagent.instrumentation.springwebmvc.HandlerMappingResourceNameFilter.doFilter() line: 49
        3 io.opentelemetry.javaagent.instrumentation.springwebmvc.ServerNameUpdater.updateServerSpanName() line: 23
          1 io.opentelemetry.javaagent.shaded.instrumentation.api.servlet.ServerSpanNaming.updateServerSpanName() line: 52
            1 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.ServerSpan.fromContextOrNull() line: 34
              1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ArrayBasedContext.get() line: 57
          1 io.opentelemetry.javaagent.shaded.instrumentation.api.servlet.ServerSpanNaming.updateServerSpanName() line: 78
          1 java.lang.invoke.Invokers$Holder.linkToTargetMethod() line: -1
            1 java.lang.invoke.DirectMethodHandle$Holder.invokeStatic() line: -1
              1 io.opentelemetry.javaagent.instrumentation.springwebmvc.ServerNameUpdater$$Lambda$966.527078898.get$Lambda() line: -1
        3 io.opentelemetry.javaagent.instrumentation.springwebmvc.ServerNameUpdater.updateServerSpanName() line: 21
          3 org.apache.catalina.connector.RequestFacade.getAttribute() line: 282
            1 org.apache.catalina.connector.Request.getAttribute() line: 886
              1 java.util.HashMap.get() line: 552
                1 java.util.HashMap.getNode() line: 564
            1 org.apache.catalina.connector.Request.getAttribute() line: 891
   12 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter() line: 228
     12 javax.servlet.http.HttpServlet.service() line: 759
        6 io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge.currentContext() line: 22
          6 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.Context.current() line: 86
            6 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ThreadLocalContextStorage.current() line: 46
              6 java.lang.ThreadLocal.get() line: 165
                6 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 439
                  3 java.lang.ThreadLocal$ThreadLocalMap.getEntryAfterMiss() line: 463
                  1 java.lang.ThreadLocal$ThreadLocalMap.getEntryAfterMiss() line: 456
                  1 java.lang.ThreadLocal$ThreadLocalMap.getEntryAfterMiss() line: 462
        2 io.opentelemetry.javaagent.instrumentation.api.CallDepth.forClass() line: 38
          2 io.opentelemetry.javaagent.instrumentation.api.CallDepthThreadLocalMap.getCallDepth() line: 19
            2 java.lang.ThreadLocal.get() line: 168
        1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.needsRescoping() line: 271
          1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.Context.current() line: 86
            1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ThreadLocalContextStorage.current() line: 46
              1 java.lang.ThreadLocal.get() line: 164
        1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.getServerContext() line: 115
          1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.javax.JavaxServletAccessor.getRequestAttribute() line: 13
            1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.javax.JavaxServletAccessor.getRequestAttribute() line: 46
        1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.v3_0.Servlet3HttpServerTracer.updateContext() line: 44
        1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.getServerContext() line: 116
 77 org.springframework.web.servlet.DispatcherServlet.doService() line: 963
   77 org.springframework.web.servlet.DispatcherServlet.doDispatch() line: 1063
     77 org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle() line: 87
       33 io.opentelemetry.javaagent.shaded.instrumentation.api.instrumenter.Instrumenter.start() line: 157
         12 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 220
           11 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.startSpan() line: 171
              9 io.opentelemetry.javaagent.tooling.AddThreadDetailsSpanProcessor.onStart() line: 20
                9 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.setAttribute() line: 38
                  5 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.setAttribute() line: 261
                    4 io.opentelemetry.sdk.trace.AttributesMap.put() line: 32
                      4 java.util.HashMap.put() line: 607
                        4 java.util.HashMap.putVal() line: 626
                          4 java.util.HashMap.newNode() line: 1797
                            2 java.util.HashMap$Node.<init>() line: 287
                  3 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.setAttribute() line: 249
                    2 java.lang.String.isEmpty() line: 670
                  1 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.setAttribute() line: 252
              2 io.opentelemetry.javaagent.tooling.AddThreadDetailsSpanProcessor.onStart() line: 21
                2 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.setAttribute() line: 38
                  1 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.setAttribute() line: 258
                  1 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.setAttribute() line: 261
                    1 io.opentelemetry.sdk.trace.AttributesMap.put() line: 32
                      1 java.util.HashMap.put() line: 607
                        1 java.util.HashMap.putVal() line: 657
            1 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.startSpan() line: 168
              1 io.opentelemetry.sdk.trace.AnchoredClock.now() line: 51
          9 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 174
            9 io.opentelemetry.sdk.trace.RandomIdGenerator.generateSpanId() line: 24
              5 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.SpanId.fromLong() line: 101
                3 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.longToBase16String() line: 71
                  2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.byteToBase16() line: 102
                  1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.byteToBase16() line: 101
                1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.longToBase16String() line: 73
                  1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.byteToBase16() line: 101
                1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.longToBase16String() line: 70
                  1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.byteToBase16() line: 101
              2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.SpanId.fromLong() line: 102
                2 java.lang.String.<init>() line: 276
                  1 java.lang.String.<init>() line: 3214
                    1 java.lang.StringUTF16.compress() line: 161
                  1 java.lang.String.<init>() line: 3216
              2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.SpanId.fromLong() line: 100
                2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.TemporaryBuffers.chars() line: 29
                  1 java.lang.ThreadLocal.get() line: 165
                    1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 439
                      1 java.lang.ThreadLocal$ThreadLocalMap.getEntryAfterMiss() line: 455
                  1 java.lang.ThreadLocal.get() line: 172
                    1 java.lang.ThreadLocal.setInitialValue() line: 195
          3 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 229
            3 io.opentelemetry.sdk.trace.SdkSpanBuilder.getClock() line: 242
              3 io.opentelemetry.sdk.trace.AnchoredClock.create() line: 41
                3 io.opentelemetry.sdk.common.SystemClock.now() line: 30
                  2 io.opentelemetry.sdk.internal.Java9VersionSpecific.currentTimeNanos() line: 39
                    2 java.time.Clock$SystemClock.instant() line: 558
                      2 java.time.Instant.ofEpochSecond() line: 330
                        2 java.time.Instant.create() line: 413
                          2 java.time.Instant.<init>() line: 424
                  1 io.opentelemetry.sdk.internal.Java9VersionSpecific.currentTimeNanos() line: 40
                    1 java.util.concurrent.TimeUnit.toNanos() line: 253
          3 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 198
            3 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.SpanContext.create() line: 53
              2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.ImmutableSpanContext.create() line: 41
                2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.SpanId.isValid() line: 60
                  2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.isValidBase16String() line: 127
                    2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.isValidBase16Character() line: 137
              1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.ImmutableSpanContext.create() line: 42
                1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.ImmutableSpanContext.createInternal() line: 31
          3 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 177
            3 io.opentelemetry.sdk.trace.RandomIdGenerator.generateTraceId() line: 35
              2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.TraceId.fromLongs() line: 110
                2 java.lang.String.<init>() line: 276
                  2 java.lang.String.<init>() line: 3216
              1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.TraceId.fromLongs() line: 107
                1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.TemporaryBuffers.chars() line: 29
                  1 java.lang.ThreadLocal.get() line: 165
                    1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 436
          2 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 228
          1 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 208
       30 io.opentelemetry.javaagent.shaded.instrumentation.api.instrumenter.Instrumenter.start() line: 132
         26 io.opentelemetry.javaagent.instrumentation.springwebmvc.HandlerSpanNameExtractor.extract() line: 45
           26 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.SpanNames.fromMethod() line: 33
              4 java.lang.StringBuilder.append() line: 174
                4 java.lang.AbstractStringBuilder.append() line: 538
                  2 java.lang.AbstractStringBuilder.ensureCapacityInternal() line: 172
                  2 java.lang.AbstractStringBuilder.ensureCapacityInternal() line: 170
          4 io.opentelemetry.sdk.trace.SdkTracer.spanBuilder() line: 27
            4 java.lang.String.trim() line: 2644
              4 java.lang.StringLatin1.trim() line: 535
        6 io.opentelemetry.javaagent.shaded.instrumentation.api.instrumenter.Instrumenter.start() line: 158
          6 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.Context.with() line: 169
            6 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.Span.storeInContext() line: 419
              3 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ArrayBasedContext.with() line: 75
              1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ArrayBasedContext.with() line: 74
              1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ArrayBasedContext.with() line: 71
              1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ArrayBasedContext.with() line: 69
        4 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.Context.makeCurrent() line: 197
          4 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ThreadLocalContextStorage.attach() line: 31
            4 java.lang.ThreadLocal.set() line: 222
              3 java.lang.ThreadLocal$ThreadLocalMap.set() line: 488
              1 java.lang.ThreadLocal$ThreadLocalMap.set() line: 491
        3 io.opentelemetry.javaagent.instrumentation.springwebmvc.ServerNameUpdater.updateServerSpanName() line: 23
          3 io.opentelemetry.javaagent.shaded.instrumentation.api.servlet.ServerSpanNaming.updateServerSpanName() line: 56
        1 io.opentelemetry.javaagent.instrumentation.springwebmvc.ServerNameUpdater.updateServerSpanName() line: 21
          1 org.apache.catalina.connector.RequestFacade.getAttribute() line: 282
            1 org.apache.catalina.connector.Request.getAttribute() line: 886
              1 java.util.HashMap.get() line: 552
                1 java.util.HashMap.getNode() line: 564
 40 org.apache.coyote.AbstractProcessorLight.process() line: 65
   40 org.apache.coyote.http11.Http11Processor.service() line: 382
     38 org.apache.catalina.connector.CoyoteAdapter.service() line: 317
       36 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.startServerSpan() line: 45
         35 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.startSpan() line: 57
           13 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.startSpan() line: 81
             10 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.onRequest() line: 172
               10 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.setUrl() line: 189
                  9 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.url() line: 29
                    6 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.url() line: 92
                      5 java.net.URI.<init>() line: 685
                        4 java.net.URI$Parser.parse() line: 3114
                          4 java.net.URI$Parser.parseHierarchical() line: 3158
                            2 java.net.URI$Parser.parseAuthority() line: 3199
                              1 java.net.URI$Parser.scan() line: 3057
                              1 java.net.URI$Parser.scan() line: 3058
                                1 java.lang.String.charAt() line: 693
                            1 java.net.URI$Parser.parseAuthority() line: 3219
                              1 java.lang.String.substring() line: 1875
                            1 java.net.URI$Parser.parseAuthority() line: 3216
                              1 java.net.URI$Parser.parseServer() line: 3306
                                1 java.net.URI$Parser.checkChars() line: 3082
                                  1 java.net.URI$Parser.scan() line: 3058
                                    1 java.lang.String.charAt() line: 695
                                      1 java.lang.StringUTF16.charAt() line: 1267
                                        1 java.lang.StringUTF16.checkIndex() line: 1470
                        1 java.net.URI$Parser.parse() line: 3127
                          1 java.net.URI$Parser.at() line: 2928
                            1 java.lang.String.charAt() line: 695
                              1 java.lang.StringUTF16.charAt() line: 1267
                                1 java.lang.StringUTF16.checkIndex() line: 1470
                                  1 java.lang.StringUTF16.length() line: 74
                      1 java.net.URI.<init>() line: 681
                        1 java.net.URI.toString() line: 2057
                          1 java.net.URI.appendSchemeSpecificPart() line: 2025
                            1 java.net.URI.appendAuthority() line: 1951
                              1 java.lang.StringBuilder.append() line: 174
                                1 java.lang.AbstractStringBuilder.append() line: 538
                                  1 java.lang.AbstractStringBuilder.ensureCapacityInternal() line: 170
                    2 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.url() line: 86
                      1 org.apache.tomcat.util.buf.MessageBytes.toString() line: 170
                        1 org.apache.tomcat.util.buf.CharChunk.toString() line: 423
                      1 org.apache.tomcat.util.buf.MessageBytes.toString() line: 174
                    1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.url() line: 88
                      1 org.apache.tomcat.util.buf.MessageBytes.toString() line: 174
                        1 org.apache.tomcat.util.buf.ByteChunk.toString() line: 584
                          1 org.apache.tomcat.util.buf.StringCache.toString() line: 221
                            1 org.apache.tomcat.util.buf.ByteChunk.toStringInternal() line: 595
                              1 java.nio.charset.Charset.decode() line: 814
                                1 java.nio.charset.CharsetDecoder.decode() line: 799
                                  1 java.nio.charset.CharsetDecoder.decode() line: 576
                                    1 sun.nio.cs.ISO_8859_1$Decoder.decodeLoop() line: 121
                  1 io.opentelemetry.sdk.trace.SdkSpanBuilder.setAttribute() line: 153
                    1 io.opentelemetry.sdk.trace.AttributesMap.put() line: 32
                      1 java.util.HashMap.put() line: 607
                        1 java.util.HashMap.putVal() line: 626
                          1 java.util.HashMap.newNode() line: 1797
                            1 java.util.HashMap$Node.<init>() line: 287
              3 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.onRequest() line: 168
                1 io.opentelemetry.sdk.trace.SdkSpanBuilder.setAttribute() line: 146
                1 io.opentelemetry.sdk.trace.SdkSpanBuilder.setAttribute() line: 153
                  1 io.opentelemetry.sdk.trace.AttributesMap.put() line: 29
                    1 java.util.HashMap.size() line: 521
           11 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.startSpan() line: 84
              5 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 174
                5 io.opentelemetry.sdk.trace.RandomIdGenerator.generateSpanId() line: 24
                  2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.SpanId.fromLong() line: 102
                    2 java.lang.String.<init>() line: 276
                      1 java.lang.String.<init>() line: 3216
                      1 java.lang.String.<init>() line: 3207
                        1 java.lang.Object.<init>() line: 50
                  2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.SpanId.fromLong() line: 101
                    1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.longToBase16String() line: 67
                      1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.byteToBase16() line: 101
                    1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.longToBase16String() line: 71
                  1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.SpanId.fromLong() line: 100
                    1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.TemporaryBuffers.chars() line: 29
                      1 java.lang.ThreadLocal.get() line: 172
                        1 java.lang.ThreadLocal.setInitialValue() line: 199
              2 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 198
                2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.SpanContext.create() line: 53
                  2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.ImmutableSpanContext.create() line: 41
                    2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.TraceId.isValid() line: 64
                      2 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.isValidBase16String() line: 125
              2 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 177
                2 io.opentelemetry.sdk.trace.RandomIdGenerator.generateTraceId() line: 35
                  1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.TraceId.fromLongs() line: 109
                    1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.OtelEncodingUtils.longToBase16String() line: 66
                  1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.trace.TraceId.fromLongs() line: 107
                    1 io.opentelemetry.javaagent.shaded.io.opentelemetry.api.internal.TemporaryBuffers.chars() line: 29
                      1 java.lang.ThreadLocal.get() line: 162
              1 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 229
              1 io.opentelemetry.sdk.trace.SdkSpanBuilder.startSpan() line: 220
                1 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.startSpan() line: 168
                  1 io.opentelemetry.sdk.trace.AnchoredClock.now() line: 51
            4 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.startSpan() line: 82
              4 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.onConnectionAndRequest() line: 202
                2 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.clientIp() line: 225
                  2 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.peerHostIp() line: 29
                    2 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.peerHostIp() line: 68
                      2 org.apache.coyote.Request.action() line: 517
                        1 org.apache.coyote.AbstractProcessor.action() line: 450
                          1 org.apache.tomcat.util.buf.MessageBytes.setString() line: 144
                1 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.clientIp() line: 207
                  1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.requestHeader() line: 29
                    1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.requestHeader() line: 113
                      1 org.apache.coyote.Request.getHeader() line: 483
                        1 org.apache.tomcat.util.http.MimeHeaders.getHeader() line: 373
                          1 org.apache.tomcat.util.http.MimeHeaders.getValue() line: 341
                            1 org.apache.tomcat.util.buf.MessageBytes.equalsIgnoreCase() line: 334
                              1 org.apache.tomcat.util.buf.ByteChunk.equalsIgnoreCase() line: 652
                                1 java.lang.String.length() line: 658
                                  1 java.lang.String.coder() line: 3258
                1 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.clientIp() line: 216
                  1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.requestHeader() line: 29
                    1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.requestHeader() line: 113
                      1 org.apache.coyote.Request.getHeader() line: 483
                        1 org.apache.tomcat.util.http.MimeHeaders.getHeader() line: 374
                          1 org.apache.tomcat.util.buf.MessageBytes.toString() line: 170
            4 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.startSpan() line: 80
              2 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.onConnection() line: 163
                2 io.opentelemetry.sdk.trace.SdkSpanBuilder.setAttribute() line: 153
                  1 io.opentelemetry.sdk.trace.AttributesMap.put() line: 32
                    1 java.util.HashMap.put() line: 607
                      1 java.util.HashMap.hash() line: 339
              1 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.onConnection() line: 159
                1 io.opentelemetry.sdk.trace.SdkSpanBuilder.setAttribute() line: 153
                  1 io.opentelemetry.sdk.trace.AttributesMap.put() line: 32
                    1 java.util.HashMap.put() line: 607
                      1 java.util.HashMap.putVal() line: 624
                        1 java.util.HashMap.resize() line: 699
              1 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.onConnection() line: 160
                1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.peerPort() line: 29
                  1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.peerPort() line: 63
                    1 java.lang.Integer.valueOf() line: 1058
            2 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.startSpan() line: 74
              2 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.BaseTracer.spanBuilder() line: 149
                2 io.opentelemetry.sdk.trace.SdkSpanBuilder.setParent() line: 64
            1 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.startSpan() line: 86
              1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.attachServerContext() line: 29
                1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.attachServerContext() line: 123
                  1 org.apache.coyote.Request.setAttribute() line: 550
                    1 java.util.HashMap.put() line: 607
                      1 java.util.HashMap.putVal() line: 648
          1 org.apache.tomcat.util.buf.MessageBytes.toString() line: 174
        1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.shouldStartSpan() line: 35
          1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatTracer.getServerContext() line: 56
            1 org.apache.coyote.Request.getAttribute() line: 558
              1 java.util.HashMap.get() line: 552
                1 java.util.HashMap.getNode() line: 574
                  1 java.lang.String.equals() line: 1008
        1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatServerHandlerAdviceHelper.attachResponseToRequest() line: 81
          1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.ServletHttpServerTracer.setAsyncListenerResponse() line: 153
            1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.javax.JavaxServletAccessor.setRequestAttribute() line: 13
              1 io.opentelemetry.javaagent.shaded.instrumentation.servlet.javax.JavaxServletAccessor.setRequestAttribute() line: 51
                1 org.apache.catalina.connector.Request.setAttribute() line: 1585
                  1 java.util.concurrent.ConcurrentHashMap.put() line: 1006
                    1 java.util.concurrent.ConcurrentHashMap.putVal() line: 1019
                      1 java.util.concurrent.ConcurrentHashMap.casTabAt() line: 765
      2 org.apache.catalina.connector.CoyoteAdapter.service() line: 441
        1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatServerHandlerAdviceHelper.stopSpan() line: 36
          1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ThreadLocalContextStorage$$Lambda$962.1381018657.close() line: -1
            1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ThreadLocalContextStorage.lambda$attach$0() line: 34
              1 io.opentelemetry.javaagent.shaded.io.opentelemetry.context.ThreadLocalContextStorage.current() line: 46
                1 java.lang.ThreadLocal.get() line: 165
                  1 java.lang.ThreadLocal$ThreadLocalMap.getEntry() line: 436
        1 io.opentelemetry.javaagent.instrumentation.tomcat.common.TomcatServerHandlerAdviceHelper.stopSpan() line: 55
          1 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.end() line: 102
            1 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.end() line: 108
              1 io.opentelemetry.javaagent.shaded.instrumentation.api.tracer.HttpServerTracer.setStatus() line: 284
                1 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.setAttribute() line: 38
                  1 io.opentelemetry.sdk.trace.RecordEventsReadableSpan.setAttribute() line: 261
                    1 io.opentelemetry.sdk.trace.AttributesMap.put() line: 32
                      1 java.util.HashMap.put() line: 607
                        1 java.util.HashMap.putVal() line: 625
  4 javax.servlet.http.HttpServlet.service() line: 759
  2 org.apache.tomcat.websocket.server.WsFilter.doFilter() line: 51

.collect(Collectors.toSet());
}

private static String getAgentCaller(RecordedStackTrace stackTrace) {
Copy link
Contributor

Choose a reason for hiding this comment

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

@Nullable

@trask trask merged commit 07250d3 into open-telemetry:main Jul 27, 2021
@trask trask deleted the benchmark-jfr-analyzer branch July 27, 2021 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants