Commit Graph

59 Commits

Author SHA1 Message Date
Nikita Salnikov-Tarnovski 1a9c633b4b
Rename some packages, move some classes (#5043)
* Rename some packages, move some classes
2022-01-09 13:26:51 +02:00
Lauri Tulmin 12c15b226f
Capture servlet request parameters at the end of the request (#5019)
* Capture servlet request parameters at the end of the request

* add comment
2022-01-06 12:02:42 -08:00
Mateusz Rzeszutek a65e9633ba
Refactor `ServerSpanNaming` (in preparation for `http.route`) (#4852)
* Refactor ServerSpanNaming (in preparation for http.route)

* fix tests

* Add ServerSpanNaming to all HTTP server instrumentations

* fix tests
2021-12-14 10:11:20 +01:00
Mateusz Rzeszutek 93a3282490
Remove ConfigPropertiesAdatpter as it's no longer needed (#4888) 2021-12-13 12:20:11 -08:00
Mateusz Rzeszutek 0bab0c2aa3
Move `ServletContextPath` to `servlet-common:bootstrap` (#4824)
* Move ServletContextPath to servlet-common:bootstrap

* fix tests

* Simplify ServletContextPath calls in restlet instrumentation
2021-12-08 15:59:31 +01:00
Mateusz Rzeszutek 075434c5bc
Move `AppServerBridge` and `MappingResolver` to `servlet-common:bootstrap` (#4817)
* Move AppServerBridge and MappingResolver to servlet-common:bootstrap

* Introduce additional gradle configuration for bootstrap libs
2021-12-07 10:20:33 +01:00
Mateusz Rzeszutek 0dc410a2e3
Reorganize shared servlet code (intro to #4317) (#4785)
* Reorganize shared servlet code (intro to #4317)

* Fix dropwizard tests

* fix compile error
2021-12-06 13:49:55 +01:00
Lauri Tulmin 61b0dd3698
Capture servlet request parameters (#4703)
* Capture servlet request parameters

* use concurrenthashmap for cache
2021-12-05 21:25:31 -08:00
Lauri Tulmin c53c8a0f01
Record exception for async servlet invocations (#4677)
* Record exception for asyn servlet invocations

* add back accidentally commented out line

* rearrange test so that it passes on both jetty and tomcat
2021-11-22 11:17:59 -08:00
Lauri Tulmin 16728e2445
Add a ClassAndMethod class to Instrumentation API (#4619)
* Add a ClassAndMethod class to Instrumentation API

* remove sentence

* Update docs/contributing/writing-instrumentation.md

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* address review comment

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-11-10 13:33:11 -08:00
Nikita Salnikov-Tarnovski e19d086d58
Migrate ResponseSendAdvice to Instrumenter (#4488)
* Migrate ResponseSendAdvice to Instrumenter

* Add shouldStart checks
2021-10-25 13:44:26 -07:00
Nikita Salnikov-Tarnovski 5908cd31ed
Move constant away from deprecated class (#4487) 2021-10-25 12:19:58 +03:00
Martin d314d76fce
rename `newBuilder()` to `builder()` (#4475)
* rename `newBuilder()` to `builder()`

* rename `newBuilder()` to `builder()`
2021-10-22 20:50:43 -07:00
Martin ac91dc090a
Type annotation placement (#4406)
* switch annotation `org.checkerframework.checker.nullness.qual.Nullable` to `javax.annotation.Nullable`

* code format
2021-10-17 17:38:43 -07:00
Nikita Salnikov-Tarnovski efddb72cef
Convert AttributesExtractor to interface (#4363) 2021-10-14 08:36:47 +03:00
Lauri Tulmin b06c1f9018
Collect more attributes from servlet instrumenter (#4356)
* Collect more attributes from servlet instrumenter

* spotless
2021-10-12 10:58:47 -07:00
Trask Stalnaker 63a2383905
Split NetAttributesExtractor into NetClientAttributesExtractor and NetServerAttributesExtractor (#4287)
* Net Extractors

* Either request or response but not both

* Fix merge conflicts

* Separate by OnStart/OnEnd

* PeerServiceAttributes

* Fix test

* Restructure to client/server

* Fix merge conflict in main

* more

* peer.service

* Feedback

* peer.service is only for clients

* Fix merge conflict

* rename

* Armeria

* peer.service is only for clients

* rename

* WIP

* Sync Dubbo with Armeria

* More Dubbo and Armeria

* gRPC

* Revert some Dubbo changes

* more peer.service

* Fix test

* Fix merge

* Fixes
2021-10-07 15:40:15 -07:00
Nikita Salnikov-Tarnovski 9476f86920
Remove deprecated ServerSpanNaming.updateServerSpanName method (#4318) 2021-10-07 10:16:50 -07:00
Nikita Salnikov-Tarnovski a48bd9de3f
Move PeerServiceAttributesExtractor from javaagent api to instrumentation api (#4235)
* Move PeerServiceAttributesExtractor from javaagent api to instrumentation api

* spotless
2021-10-06 12:42:55 -07:00
Mateusz Rzeszutek d3dbe415a1
Move HttpHeadersConfig methods back to instrumentation-api (#4298)
* Move HttpHeadersConfig methods back to instrumentation-api

* remove unnecessary method
2021-10-06 10:51:45 +02:00
Mateusz Rzeszutek 7791be24e0
Remove implementations of host() and userAgent() in HTTP extractors (#4299)
* Remove implementations of host() and userAgent() in HTTP extractors

* fix broken headers copying
2021-10-05 10:25:45 -07:00
Mateusz Rzeszutek 7473eff1e6
Extract HTTP request/response headers as span attributes (#4237)
* Extract HTTP request/response headers as span attributes

* fix muzzle

* code review comments

* fix compilation failure after merge conflict

* avoid using streams API when transforming the headers list

* fix liberty extractor

* fix spring webmvc extractor
2021-10-05 10:20:59 +02:00
Trask Stalnaker 506ae2b894
Flavor extractor (#4274) 2021-10-04 09:23:58 -07:00
Trask Stalnaker 92394ad9ae
Remove url from HttpServerAttributesExtractor (#4209)
* Remove url from HttpServerAttributesExtractor

* Remove UriBuilder

* Tracers too

* apache-camel

* Finatra

* jsp

* Ratpack

* Ratpack library

* Ratpack

* Spark

* Feedback

* Fix Undertow

* Vertx

* vertx-web

* play-2.4

* webflux

* jaxrs

* Spotless

* Update semantic-conventions.md

* Update smoke tests

* More realistic target

* Remove outdated doc

* Wording
2021-10-03 09:17:23 -07:00
Lauri Tulmin 3f1ec4d034
Delete unused servlet tracer code (#4243) 2021-09-30 14:09:44 +03:00
Lauri Tulmin 8e54d540bb
Convert liberty instrumentation to instrumenter api (#4205)
* Convert liberty instrumentation to instrumenter api

* review comment
2021-09-28 09:22:55 -07:00
Mateusz Rzeszutek a277a8b636
Separate HTTP client/server AttributesExtractors (#4195) 2021-09-24 10:06:23 -07:00
Trask Stalnaker 8066f2787c
Add context customizer hook to Instrumenter API (#4167)
* Add context customizer hook to Instrumenter API

* Use in tomcat instrumentation

* Some of servlet

* Use in rest of servlet

* Feedback
2021-09-22 14:54:04 -07:00
Lauri Tulmin 59439cb464
Make servlet context path key private (#4125)
* Make servlet context path key private

* remove accidentally added files

* fix servlet2.2

* use non capturing lambda

* Update instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/ServletHttpServerTracer.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* use method reference

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-09-16 10:23:29 -07:00
Lauri Tulmin 15277cf8f5
Convert servlet instrumentation to instrumenter api (#4078)
* Convert servlet to instrumenter api

* make classes final

* Remove some tracer files

* remove xxx

* fix liberty and wildfly exception smoke test

* fix async smoke test on liberty

* Apply suggestions from code review

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* generic TextMapGetter for servlets

* not going to use http.route for servlets

* simplify

* add servlet timeout in attribute extractor

* move classes from library to javaagent

* remove unneeded dependency

* make method private

* move helper class initialization to singleton, remove helpers that don't have any methods, add shouldStart checks

* Update instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestContext.java

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* add import

* rename methods that start and end spans

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-09-13 10:12:34 -07:00
Mateusz Rzeszutek 9b56fc9051
Clean up AgentElementMatchers (#3527)
* Clean up AgentElementMatchers

* remove a TODO

* moved method
2021-07-09 10:02:21 +03:00
Trask Stalnaker b304cc2912
Deprecate CallDepth.reset() and get() (#3511)
* Deprecate CallDepth.reset() and get()

* Don't pass CallDepth around
2021-07-07 09:24:50 -07:00
Mateusz Rzeszutek c5ba5c3a71
Use local variable for passing CallDepth between advice enter/exit me… (#3504)
* Use local variable for passing CallDepth between advice enter/exit methods

* fix broken call depth tracking

* checkstyle

* fix javadocs
2021-07-06 12:05:14 -07:00
Mateusz Rzeszutek b9fcb6b498
Reduce CallDepth classes' API surface (#3497) 2021-07-06 09:24:19 +02:00
Anuraag Agrawal 761b9c280b
Migrate instrumentation gradle files to kotlin (#3414)
* Migrate instrumentation gradle files to kotlin

* Convert

* Muzzle
2021-06-28 17:27:12 +09:00
Anuraag Agrawal 785dc6adf2
Rename build files to build.gradle (#3409)
* Rename build files to build.gradle

* Rename smoke-tests

* Fix already broken
2021-06-25 16:10:31 +09:00
Anuraag Agrawal deb0e255cf
Use plugins block everywhere for applying plugins (#3386)
* Use plugins block everywhere for applying plugins

* Actually it's library instrumentation
2021-06-24 11:13:35 +09:00
Anuraag Agrawal 80f43b7a6a
Migrate javaagent-instrumentation to plugin (#3328)
* Migrate instrumentation.gradle to plugin

* Migrate usages

* Remove old

* Fix

* Revert example

* afterEvaluate

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-06-17 23:13:14 +09:00
Mateusz Rzeszutek b8aec6a671
Remove no longer needed NameMatchers class (#3179) 2021-06-03 14:36:36 -07:00
Ago Allikmaa fd132d463d
Change Async Servlet span end logic to fix race condition on Undertow (#2992)
* Attach servlet async listener with asyncStart instrumentation

* Exclude Spring packages containing servlet request classes from global ignores

* Exclude Tapestry HSR proxy with global ignore

* Improve comments.

* Fix for Liberty - request response when adding async listener

* Removed unused methods

* Explicit response to async listeners on all servlet engines

* Attach response to request on Jetty

* Fix broken build due to rebase, improved a comment

* Address PR comments

* Added a comment.

* Addressed PR comments
2021-05-25 20:46:37 -07:00
Mateusz Rzeszutek bb8f515083
Refactor TypeInstrumentation#transformers() method (#3019)
* Refactor TypeInstrumentation#transformers() method part 1

Add TypeInstrumentation and its implementations

* Refactor TypeInstrumentation#transformers() method part 2

Use the new method in all existing TypeInstrumentation implementations

* Drift

* Spotless

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-05-18 09:50:26 +02:00
Trask Stalnaker f413e5a3aa
Remove RequestDispatcherAdvice (#2942) 2021-05-12 21:37:48 -07:00
Mateusz Rzeszutek 9c7fae3b04
Extract javaagent-extension-api from tooling & spi (#2879) 2021-05-06 23:30:25 -07:00
Lauri Tulmin 357140c081
Server span naming for servlet filters (#2887)
* Server span naming for servlet filters

* wildfly default servlet has empty mappings

* jetty11 requires java11

* try a differnt way to disable jetty11 tests on java8

* Update instrumentation/servlet/servlet-5.0/javaagent/src/test/groovy/TomcatServlet5FilterMappingTest.groovy

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* review fix

* rework to use InstrumentationContext

* remove debugging code

* move MappingResolver to avoid ClassCastException on wildfly

* Update instrumentation/servlet/servlet-3.0/javaagent/src/test/groovy/TomcatServlet3FilterMappingTest.groovy

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>

* review fixes

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2021-05-06 13:25:17 +03:00
Trask Stalnaker 3bd46091bc
Clean up request dispatcher instrumentation (#2724) 2021-04-06 13:36:38 -07:00
Ago Allikmaa 7027006f66
Request handlers and test images for Tomcat 10 and Jetty 11 (Servlet API 5) (#2703)
* Tomcat 10 and Jetty 11 handlers with Servlet API 5

* Jetty 11 and Tomcat 10 Windows images
2021-04-05 09:45:02 -07:00
Ago Allikmaa 69c2644774
Servlet 5 API, reorganize servlet modules (#2609)
* Servlet 5.0 API support, refactored other servlet modules

* Include correct servlet instrumentation module for grails tests

* Reapply spotless after rebase

* Fix checkstyle

* Spotless

* Addressed PR suggestions

* Fixed files in wrong package.

* Fixed mixed up instrumentation names.

* Fixed incomplete instrumentation name.

* Addressed PR suggestions

* Addressed PR suggestions
2021-03-23 14:11:43 +02:00
Mateusz Rzeszutek 8242a01b3a
Clean up and document BaseTracer (#2482) 2021-03-04 11:21:46 +01:00
Mateusz Rzeszutek 0adeb85f43
Refactor InMemoryExporter and move some of its methods … (#2264)
* Refactor InMemoryExporter and move some of its methods to spock base class & junit extension

* codenarc

* spotless

* Apply suggestions from code review

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* fix armeria library tests

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-02-15 17:36:14 +01:00
Mateusz Rzeszutek 0fbdcad1dd
Make BaseTracer#startSpan() return Context (#2232)
* Make BaseTracer#startSpan() return Context

* Update instrumentation/apache-camel-2.20/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/apachecamel/CamelEventNotifier.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>

* spotless

* Add Javadocs to BaseTracer

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-02-12 12:12:40 +01:00