Commit Graph

426 Commits

Author SHA1 Message Date
Trask Stalnaker 23aff05722
Rename two package-private instrumenter-api classes (#6579) 2022-09-12 17:37:07 +03:00
Trask Stalnaker ae209d9289
Rename ErrorCauseExtractor.jdk() to getDefault() (#6580)
* Rename ErrorCauseExtractor.jdk() to ErrorCauseExtractor.getDefault()

* jApiCmp
2022-09-12 17:36:34 +03:00
Trask Stalnaker 54c41f7558
Move extractFromRequest() to internal (#6585)
* Move extractFromRequest() to internal

* Javadoc
2022-09-12 17:36:07 +03:00
Trask Stalnaker af61a8b578
Update to otel 1.18.0 (#6575) 2022-09-11 10:35:05 -07:00
Mateusz Rzeszutek edf421ede5
Stabilize instrumentation-api and introduce jApiCmp checks (#6566)
* Stabilize instrumentation-api and introduce jApiCmp checks

* Update

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-09-09 15:26:39 -07:00
Trask Stalnaker 60d0763af4
Remove a method from instrumenter api (#6570) 2022-09-09 12:21:30 -07:00
Mateusz Rzeszutek 59cb9ca0df
Remove deprecated code (#6501)
* Remove deprecated code

* unnecessary semicolon

* fix distro and extension examples
2022-08-24 14:36:57 -07:00
Mateusz Rzeszutek 6cd79b2a94
Deprecate the 2-arg variant of HttpCommonAttributesGeter#statusCode() (#6466)
* Deprecate the 2-arg variant of HttpCommonAttributesGeter#statusCode()

* fix liberty
2022-08-12 17:11:11 -07:00
Trask Stalnaker 68a9f20eb3
Enable PrivateConstructorForUtilityClass errorprone check (#6427)
* PrivateConstructorForUtilityClass

* Advice

* More advice

* More

* More advice

* More

* Spotless

* Fix

* Fix

* Fix

* A better solution

* Revert

* More

* Fix

* Spotless

* Fix
2022-08-10 11:30:22 +03:00
Mateusz Rzeszutek b2c90c79b5
Extract HTTP request & response content length from headers (#6415)
* Extract HTTP request & response content length from headers

* remove unused method

* fix camel tests

* fix google http client tests

* fix HttpUrlConnection tests

* fix k8s and jaxrs tests

* fix aws tests

* actually fix aws tests 🤞

* fix elasticsearch tests

* fix ratpack tests

* fix spring webflux tests

* fix vertx tests

* fix reactor netty tests
2022-08-05 10:55:47 -07:00
Mateusz Rzeszutek 06dfd59fcd
Add ParametersAreNonnullByDefault and safety null checks in builder methods (#6364) 2022-08-01 22:29:34 -07:00
Mateusz Rzeszutek 5a152cd289
Deprecate uncompressed content length HTTP attributes (#6383) 2022-07-29 06:17:38 +02:00
Mateusz Rzeszutek 976ab9411c
Deprecate Config (#6360)
* Deprecate Config

* suppress deprecation on ConfigTest
2022-07-25 12:10:11 -07:00
Mateusz Rzeszutek 82b39b1012
Rename `newInstrumenter()` into `buildInstrumenter()` (#6363)
* Rename newInstrumenter() into buildInstrumenter()

* spotless
2022-07-25 12:02:46 -07:00
Mateusz Rzeszutek e7887ac929
Idea: deprecate `Config`, add agent-only `InstrumentationConfig` (#6264)
* Idea: deprecate Config, add agent-only InstrumentationConfig

* fix

* fix camel test

* fix external-annotation tests
2022-07-08 16:20:49 +02:00
Mateusz Rzeszutek 198dad00d6
Prefer using ConfigProperties over Config in AgentListener (#6202)
* Prefer using ConfigProperties over Config in AgentListener

* normalize property name

* add TODOs
2022-07-07 15:44:32 +02:00
Lauri Tulmin bb25a6c47c
Expunge stale entries on computeIfAbsent (#6235) 2022-06-28 20:21:05 -07:00
Trask Stalnaker b0eae3461c
Update spotless (#6218)
* Update spotless

* Update spotless
2022-06-26 14:44:29 -07:00
Mateusz Rzeszutek defa530c72
Remove deprecated TimeExtractor (#6196)
* Remove deprecated TimeExtractor

* forgot to add one more class
2022-06-22 16:42:50 -07:00
Lauri Tulmin 91dcad68bd
Run tests with play 2.4 (#6145)
* Run tests with play 2.4

* restore comment
2022-06-14 12:10:53 +03:00
HaloFour b7fc80c98e
Change SpanStatusExtractor to use a builder that can set status description (#6035)
* Change SpanStatusExtractor to use a builder that can set status descripion

* Refactor SpanStatusExtractor to only support builder approach to setting status

* Revert setting the exception as the status description

* PR feedback

* Re-fix graghql instrumentation span extractor

* Spotless
2022-05-19 10:00:46 -07:00
Mateusz Rzeszutek 512a040025
Remove TimeExtractor and use internal API for setting start/end timestamps (#6051)
* Remove TimeExtractor and use internal API for setting start/end timestamps

* code review comments
2022-05-19 09:03:11 -07:00
Mateusz Rzeszutek e343b50804
Remove some deprecated code from the main branch (#6055) 2022-05-17 12:25:43 -07:00
Mateusz Rzeszutek cb7421c592
Add an SPI for customizing Config just before it's set (#6010)
* Add an SPI for customizing Config just before it's set

* deprecate ConfigPropertySource in favor of ConfigCustomizer

* errorprone
2022-05-16 11:55:01 -07:00
Mateusz Rzeszutek 6a0ca530b7
Instrumentation API changes: VirtualField (#6017)
* Instrumentation API changes: VirtualField

* change class name in string constant
2022-05-12 11:17:24 -07:00
Mateusz Rzeszutek 87b412fb40
Instrumentation API changes: OperationMetrics, OperationListener (#6016)
* Instrumentation API changes: OperationMetrics, OperationListener

* errorprone
2022-05-12 11:16:46 -07:00
Mateusz Rzeszutek 802f5aa3ea
Instrumentation API and Javadoc cleanup (#5954) 2022-05-09 22:13:45 -07:00
Mateusz Rzeszutek 2c4acd7c81
Introduce LocalRootSpan (replacing ServerSpan) (#5896)
* Introduce LocalRootSpan (replacing ServerSpan)

* fix tests

* bridge old ServerSpan class
2022-04-21 11:29:10 +02:00
Mateusz Rzeszutek 4e3f19d469
Enable span suppression by SpanKey by default (#5779)
* Enable span suppression by SpanKey by default

* fix HTTP tests (probably)

* add exception for camel

* remove suppression tests from @WithSpan instrumentations

* remove suppression tests from @WithSpan instrumentation; spring boot autoconfigure

* fix twilio tests

* fix netty-based HTTP clients, remove AWS SDK 1.11 unit test

* fix elasticsearch tests

* codenarc

* spotless

* fix AWS SDK 1.11 tests

* remove a TODO

* code review comments

* fix merge conflict

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-04-19 14:13:09 -07:00
Mateusz Rzeszutek 202a24c867
Remove deprecated code from instrumentation-api, extension-api (#5883) 2022-04-19 12:22:11 -07:00
Anuraag Agrawal e58d39d4ad
Update to OTel 1.13 (#5799)
* Update to OTel 1.13

* Fix test

* Foo

* Fix app server test and start yak shaving

* Yak

* Yak

* groovy fail

* Yak

* GROOVY

* yak farm
2022-04-13 13:16:32 +03:00
Mateusz Rzeszutek 2ce1162eac
Instrumenter instrumentation version and schema url (#5752)
* Instrumenter instrumentation version and schema url

* nullable instrumentation version

* Apply suggestions from code review

Co-authored-by: Fabrizio Ferri-Benedetti <fferribenedetti@splunk.com>

* reformat

* code review comments

* instrumentation properties files

* Apply suggestions from code review

Co-authored-by: Fabrizio Ferri-Benedetti <fferribenedetti@splunk.com>

* code review comments

* Apply suggestions from code review

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

Co-authored-by: Fabrizio Ferri-Benedetti <fferribenedetti@splunk.com>
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-04-11 10:29:58 +02:00
Mateusz Rzeszutek 8b29f80962
Remove the @UnstableApi annotation (#5757) 2022-04-06 18:12:47 -07:00
Mateusz Rzeszutek 519024485c
Move Cache and related classes to internal package (#5759)
* Move Cache and related classes to internal package

* fix imports
2022-04-06 18:12:11 -07:00
Mateusz Rzeszutek 65717dae3e
Cleanup Config & ConfigBuilder API (#5733)
* Cleanup Config & ConfigBuilder API

* errorprone

* errorprone & spotless

* spotless
2022-04-05 20:20:52 -07:00
Mateusz Rzeszutek 50f91e6dee
Deprecate AttributesExtractor#set() method (#5749)
* Deprecate AttributesExtractor#set() method

* code review comments
2022-04-05 20:20:02 -07:00
Mateusz Rzeszutek 39e1fcb48e
Rename view and controller suppression config properties (#5747)
* Rename view and controller suppression config properties

* code review comments
2022-04-05 14:24:24 -07:00
Mateusz Rzeszutek 8e722cc264
Library instrumentation should read its version from a file (#5692)
* Library instrumentation should read its version from a file

* errorprone

* animalsniffer

* code review comments

* add name as task input too

* code review comments
2022-04-04 11:52:23 -07:00
Mateusz Rzeszutek 0ca127fe94
Move ClassNames & SpanNames to .util package (#5746)
* Move ClassNames & SpanNames to .util package

* errorprone
2022-04-04 11:17:54 -07:00
Mateusz Rzeszutek 5fb2261a82
Split out instrumentation-api-semconv (#5721)
* Split out instrumentation-api-semconv

* fix tests

* Moved LoggingContextConstants to semconv module too
2022-04-01 10:04:52 -07:00
Lauri Tulmin b85696b1a3
Sql sanitizer: handle double quoted table names (#5699)
* Sql sanitizer: handle double quoted table names

* handle backtick

* strip double quotes and backtick from table name in a separate method
2022-03-29 10:48:51 +03:00
Anuraag Agrawal 14372adb68
Migrate Guava tests to Java (#5668)
* Migrate Guava tests to Java

* Update instrumentation/guava-10.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/guava/ListenableFutureTest.java

Co-authored-by: Lauri Tulmin <tulmin@gmail.com>

* Workaround inline mock issue

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
Co-authored-by: Lauri Tulmin <tulmin@gmail.com>
2022-03-24 14:14:09 +09:00
Trask Stalnaker bb677a0cc3
Consolidate request listener lists (#5667) 2022-03-23 10:56:39 -07:00
Trask Stalnaker 5ab23f203f
Add InstrumenterBuilder.addRequestListener (#5655) 2022-03-22 11:45:05 -07:00
Mateusz Rzeszutek 56f65e4fab
Convert all logging statements from slf4j to jul - part 1 (#5628)
* Convert all logging statements from slf4j to jul - part 1

* fix tests

* use placeholders

* fixed all comments, added static imports for Level
2022-03-22 10:35:27 -07:00
Mateusz Rzeszutek f0bdce973e
Split out MessagingAttributesGetter (#5626) 2022-03-18 11:52:23 -07:00
Anuraag Agrawal 213057d057
Run check during testing and assemble during building (#5619) 2022-03-18 13:48:51 +09:00
Mateusz Rzeszutek 1ee60aa6e6
Split out RpcAttributesGetter (#5548)
* Split out RpcAttributesGetter

* code review comments

* go back to RpcAttributesGetter
2022-03-17 11:14:19 +01:00
Mateusz Rzeszutek b92bb41331
Change the way how SpanKeys are extracted in instrumentation-api (#5546)
* Change the way how SpanKeys are extracted in instrumentation-api

* fix tests

* code review comments
2022-03-15 09:59:11 -07:00
Mateusz Rzeszutek b0d5fc6b99
Remove deprecated methods from instrumentation-api and library instrumentations (#5575) 2022-03-15 09:33:48 +09:00
Mateusz Rzeszutek 0ad07a10c2
Remove AsyncInstrumentRegistry after update to SDK 1.12 (#5525)
* Remove AsyncInstrumentRegistry after update to SDK 1.12

* added comments
2022-03-10 13:39:23 +09:00
Mateusz Rzeszutek f6cca58f1f
Deprecate CapturedHttpHeaders and replace it with builder methods (#5533) 2022-03-09 12:21:32 -08:00
Anuraag Agrawal 487a01eb3e
Update Gradle and build dependencies (#5531) 2022-03-09 09:09:20 -08:00
Mateusz Rzeszutek 4a98dae431
Add builders for setting optional attributes on HTTP extractors (#5347)
* Add builders for setting optional attributes on HTTP extractors

* errorprone

* fix compilation failure
2022-03-08 17:21:14 +01:00
Mateusz Rzeszutek be79dde0f6
Remove old experimental properties in CapturedHttpHeaders (#5524) 2022-03-08 09:54:06 +01:00
Mateusz Rzeszutek 4ef6d165a9
Disable the messaging receive span telemetry by default (#5500)
* Disable the messaging receive span telemetry by default

* fix spring-kafka tests

* remove no longer needed link from the kafka-clients library instrumentation

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-03-07 22:30:40 -08:00
Mateusz Rzeszutek 47f2732aae
Split out DbClientAttributesGetter and SqlClientAttributesGetter (#5354)
* Split out DbClientAttributesGetter and SqlClientAttributesGetter

* code review comments
2022-03-04 09:58:04 -08:00
Trask Stalnaker 3ab1b8516f
Add markdown spell check (#5450)
* Add markdown link check

* Fix links

* update workflows

* move comment

* Add misspell check

* Fix misspellings

* Fix more misspellings

* Run against all files

* Spotless
2022-03-01 19:18:53 -08:00
Lauri Tulmin c8c115d13f
Fix android desugaring for HashMap.forEach (#5468) 2022-03-01 08:46:25 +09:00
Trask Stalnaker 0a6b87eb69
Remove server span peer name (#5404)
* Fix server -> client reference

* Remove server span peer name
2022-02-27 11:06:20 -08:00
Trask Stalnaker 23ec76742b
Support forwarded proto field and x-forwarded-proto (#5357)
* Renames for the better

* Support forwarded proto

* fix

* Fix checkstyle complaining about abbrevation

* checkstyle
2022-02-22 13:01:46 -08:00
Trask Stalnaker 53a8b85f4c
Updates to http.server_name (#5369)
* Updates to http.server_name

* Tests

* fix

* armeria

* fix

* fix

* codenarc
2022-02-18 09:38:21 -08:00
Mateusz Rzeszutek 27ed47ccda
Split out CodeAttributesGetter (#5342) 2022-02-17 16:47:18 -08:00
Mateusz Rzeszutek 6774ce5791
Change the way Micrometer LongTaskTimer is bridged (#5338) 2022-02-17 16:46:23 -08:00
Trask Stalnaker 54e6b1223e
Weak cache optimization (#5344) 2022-02-11 09:31:34 -08:00
Oleg Zasymenko eeac67bdb1
Fix WeakConcurrentMap memory leak (#5316) 2022-02-08 10:36:12 -08:00
Mateusz Rzeszutek ea31ca8be2
Make HttpClientMetrics report low cardinality metrics (#5319) 2022-02-08 10:32:44 -08:00
Mateusz Rzeszutek 551418c283
Refactor AttributesExtractor so that it extracts route from Context (#5288)
* Refactor AttributesExtractor so that it extracts route from Context

* typo

* fix tests

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpRouteHolder.java

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

* fix all AttributesExtractors

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-02-08 10:38:41 +01:00
Trask Stalnaker 3d0ebce2ba
Fix triggering of DNS lookup (#5297)
* Fix triggering of DNS lookup

* Update test

* Update test
2022-02-03 08:39:52 -08:00
Trask Stalnaker 1077258263
Add InternalJavadoc custom error prone check (#5277)
* Add InternalJavadoc custom error prone check

* Add example usage

* Move to conventions

* Revert "Move to conventions"

This reverts commit d8a8209b59.

* Just get it working

* Clearer error message

* versions

* Apply almost everywhere

* feedback

* Always at the end of javadoc

* Fix test

* Missed (at least) one

* No longer internal

* Fix NPE

* Spotless

* Convert awslambda Java test to JUnit 5 so can reduce visibility

* Reduce visibility

* Rename the check

* More

* Move into errorprone-convention

* Fix UserExcludedClassesConfigurerTest
2022-02-01 17:54:57 -08:00
Lauri Tulmin 8240a5f66f
End jedis span when operation actually ends (#5256)
* End jedis span when operation actually ends

* address review comments
2022-01-31 20:20:44 -08:00
Mateusz Rzeszutek 666c22eb2a
Use `http.route` in `HttpServerMetrics` (#5266)
* Use http.route in HttpServerMetrics

* remove http.target fallback
2022-01-31 10:33:59 -08:00
Mateusz Rzeszutek 8b767ac435
Refactor HTTP attributes extractors to use composition over inheritance (#5267)
* Refactor HTTP attributes extractors to use composition over inheritance

* Rename remaining variables: *Extractor to *Getter
2022-01-31 09:25:27 -08:00
Mateusz Rzeszutek 236a42f111
Make HttpStatusConverter package private (#5268) 2022-01-31 09:35:48 +02:00
Trask Stalnaker 23b33adb0a
Auto-format groovy files in Intellij (#5260)
* Auto-format groovy files in Intellij

* A bit of clean up
2022-01-28 09:29:46 -08:00
Mateusz Rzeszutek 16335a0c47
Use HttpRouteHolder in spring-webflux instrumentation (#5239) 2022-01-28 10:07:19 +01:00
Mateusz Rzeszutek 7b04b9c707
Remove a couple of TODOs from instrumentation-api metrics tests (#5255) 2022-01-28 13:56:04 +09:00
Mateusz Rzeszutek edc185b133
Rename ServerSpanNaming to HttpRouteHolder (#5211)
* Rename ServerSpanNaming to HttpRouteHolder

* HttpRouteBiGetter
2022-01-25 09:44:15 -08:00
jason plumb fe8a132ee9
Factor out NetServerAttributesGetter (#5194)
* factor out NetServerAttributesGetter and favor composition over inheritance.

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/net/NetServerAttributesGetter.java

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

* errorprone and spotless

* spotless

Co-authored-by: Mateusz Rzeszutek <mrzeszutek@splunk.com>
2022-01-21 17:01:30 -08:00
jason plumb c5c0a2bcdf
NetClientAttributesAdapter - favor composition over inheritance (#5030)
* first pass at separating NetAttributesAdapter interface and make NetClientAttributesExtractor concrete

* rename the implementations extractor -> adapter

* hide constructor and make factory method

* rename to client and add javadoc

* spotless

* finish javadoc thought

* rebase

* renamed NetClientAttributesAdapter to NetClientAttributesGetter

* fix lettuce

* code review comments

* code review comments -- renaming for consistency

* adapter -> getter

* fix ratpack

* adapter -> getter
2022-01-20 10:51:13 -08:00
Anuraag Agrawal e6e2190f68
Fix most lint warnings. (#5180)
* Fix most lint warnings.

* Fix test
2022-01-20 18:28:45 +09:00
Anuraag Agrawal ec375116be
Fix more lint warnings (#5174)
* Fix more lint warnings

* Redisable lint

* Drift

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-20 12:48:46 +09:00
Anuraag Agrawal 52394a2ff9
Remove deprecated tracer API (#5175)
* Remove deprecated tracer API

* Groovy too
2022-01-19 09:52:51 -08:00
Mateusz Rzeszutek 1ecf493332
Fix flaky micrometer retries in javaagent test (#5168)
* Fix flaky micrometer retries in javaagent test

* remove comment

* add clarifying comment
2022-01-19 18:43:50 +09:00
Anuraag Agrawal bdd82a899e
Parameterize VirtualField field type (#5165)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-18 13:42:44 -08:00
Anuraag Agrawal b7a95857c7
Fix some java lint warnings (#5120)
* Convert InstrumentationTestRunner from interface to abstract class

* Foo

* Commit

* Revert unintended
2022-01-17 10:26:03 -08:00
Mateusz Rzeszutek 872c6c7d80
Add `http.route` to the server span when `ServerSpanNaming` is updated (#5086)
* Add `http.route` to the server span when `ServerSpanNaming` is updated

* fix camel tests

* fix test compilation failure

* assert route in camel instrumentation
2022-01-14 13:52:06 -08:00
Trask Stalnaker b8ea362112
Don't capture http.target as metrics attribute (#5081) 2022-01-12 17:24:47 +02:00
Trask Stalnaker 642f2c1614
Peer service optimization (#5056) 2022-01-10 10:01:28 +02:00
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
Anuraag Agrawal c75c01f871
Update to OTel 1.10 (#5035)
* Update to OTel 1.10

* Fix metric smoke test

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-07 15:45:20 -08:00
Anuraag Agrawal f6bcd76219
Update errorprone (#5016)
* Update errorprone

* gwt

* Remove unnecessary final

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2022-01-06 14:21:56 -08:00
Mateusz Rzeszutek 0fd7b8baa0
Fix time units in HTTP & RPC metrics (#4963) 2021-12-21 11:51:57 -08:00
Anuraag Agrawal 5e1e0c2642
Update to OTel 1.10 (#4866)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-12-16 18:46:17 +09:00
Mateusz Rzeszutek 09beb58a8c
Move SpanKey to internal package (#4869)
Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-12-14 11:27:37 -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 331ce287d2
Don't use HttpStatusConverter outside of instrumentation-api (#4870)
* Don't use HttpStatusConverter outside of instrumentation-api

* add comment
2021-12-14 10:07:18 +01:00
Mateusz Rzeszutek 93a3282490
Remove ConfigPropertiesAdatpter as it's no longer needed (#4888) 2021-12-13 12:20:11 -08:00
Mateusz Rzeszutek ca2bce9608
Deprecate the Tracer API (#4868) 2021-12-12 12:14:36 -08:00
yangtaoran c59bebf6e2
add metrics rpc conventions implement (#4838)
* add metrics rpc conventions

* handle format violations

* handle format violations

* resolve the comments suggestion

* update RpcClientMetrics format

* update RpcServerMetrics format

* resolve time precision and cardinality issue

* invoke buildServerFallbackView method

* add RpcServerMetricsTest and RpcClientMetricsTest

* server metrics attibutes remove net.perr* and add net.host

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcServerMetrics.java

* Update instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/rpc/RpcClientMetrics.java

Co-authored-by: Trask Stalnaker <trask.stalnaker@gmail.com>
2021-12-10 16:29:57 -08:00