Commit Graph

82 Commits

Author SHA1 Message Date
Marcin Grzejszczak
fcd85362dd Reuses configuration from the given propagation type; fixes gh-1846 2021-03-18 17:25:47 +01:00
Marcin Grzejszczak
899410a2b0 Updated copyrights 2021-02-25 15:24:10 +01:00
Marcin Grzejszczak
de33b91739 Upgraded copyrights 2021-02-25 12:43:46 +01:00
Marcin Grzejszczak
76ad931b42 Refactoring modules to be consistent with Spring Boot (#1784)
# Modules

* New modules: `spring-cloud-sleuth-autoconfigure`, `spring-cloud-sleuth-api`, `spring-cloud-sleuth-instrumentation`
  `spring-cloud-sleuth-core` removed and changed to `spring-cloud-sleuth-instrumentation` & `spring-cloud-sleuth-api`
* Removed `spring-cloud-starter-sleuth-otel`
  To add OpenTelemetry support you need to add `spring-cloud-starter-sleuth` (adds Brave by default), exclude Brave and add `spring-cloud-sleuth-otel` dependency
* Except for the tests, `spring-cloud-sleuth-autoconfigure` is the only module that can have access to `@Configuration`, `@ConfigurationProperties` classes.
Tests have been added to ensure such separation.

## Package moving

* `org.springframework.cloud.sleuth.api` -> `org.springframework.cloud.sleuth`
* `org.springframework.cloud.sleuth.brave.autoconfig` -> `org.springframework.cloud.sleuth.autoconfig.brave`
* `org.springframework.cloud.sleuth.otel.autoconfig` -> `org.springframework.cloud.sleuth.autoconfig.otel`
* `org.springframework.cloud.sleuth` -> `org.springframework.cloud.sleuth`
* Instrumentation: `org.springframework.cloud.sleuth.annotation` -> `org.springframework.cloud.sleuth.instrument.annotation`
* All the autoconfiguration classes were moved under `org.springframework.cloud/sleuth.autoconfig` package

## Global class modifications

* Any class registered as a bean is now public

## Classes

* `RateLimitingSampler` constructor changed
* Merged a lot of auto configuration classes into one (e.g. `BraveAutoConfiguration` now imports various other configurations)
* Renamed `TraceBraveAutoConfiguration` to `BraveAutoConfiguration`
* Renamed `TraceOtelAutoConfiguration` to `OtelAutoConfiguration`
* Removed all `NoOp` implementations of the API
2020-11-23 15:39:13 +01:00
Marcin Grzejszczak
6e306e594d Abstract tracer implementations via an API (#1757)
Spring Cloud Sleuth currently is an autoconfiguration over Brave. It also consists of various instrumentation mechanisms for libraries that are not supported by Brave (e.g. Spring Cloud Circuitbreaker).

We would like to abstract Brave so that Spring Cloud Sleuth becomes an autoconfiguration for any tracer implementation that is compatible with Spring Cloud Sleuth. That way Spring Cloud Sleuth in its core module would consist of an API and various tracer implementations would implement that API which would also allow automatic instrumentation of libraries that are supported by Spring Cloud Sleuth.

## OpenTelemetry Support

Thanks to doing this abstraction we are able to support new tracer implementations, not only Brave. We've decided to add support for the OpenTelemetry SDK as the second one. If in the future if we decide to add new tracers then it will be just a matter of adding a new module that bridges to the Spring Cloud Sleuth one. Thanks to abstraction of tests as well we will be easily able to plug that tracer mechanism into our current suite of tests.
2020-10-23 08:50:23 +02:00
buildmaster
05461159eb Bumping versions 2020-09-17 05:29:17 +00:00
Marcin Grzejszczak
bd149ce4a7 Improvement with Reactor instrumentation
- adds Spring Cloud Function instrumentation
- adds Operators to manually provide instrumentation for Fluxes
- introduces Manual instrumentation mode for Reactor

TODO: Documentation (will add it soon)

related gh-1684
2020-07-21 19:06:55 +02:00
Adrian Cole
3da9de053e Merge branch '2.2.x' 2020-05-18 20:20:40 +08:00
Adrian Cole
40785d642a Removes Zipkin dependency from all tests (#1645)
Brave's SpanHandler can report natively in other formats which have different
constraints than Zipkin and often extensions to the data model.

This change ports all tests away from Zipkin's types so that it is more clear
what's actually recorded vs what's a side-effect of Zipkin conversion.

This removes `BlockingQueueSpanReporter` which was never released, also.
2020-05-18 17:02:29 +08:00
Marcin Grzejszczak
3ce018bc51 Upgrades to JUnit5; fixes gh-1567 2020-03-03 19:53:57 +01:00
Marcin Grzejszczak
0d237b564f Removed deprecated apis; fixes gh-1564 2020-02-18 13:30:00 +01:00
Marcin Grzejszczak
f29c05fb8f Merge branch '2.1.x' 2019-04-25 18:44:19 +04:00
Spring Operator
ac9774d8f7 URL Cleanup (#1279)
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://www.apache.org/licenses/ with 1 occurrences migrated to:
  https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 338 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).
2019-03-22 09:56:20 +01:00
Spring Operator
8e51934e9e URL Cleanup
This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener).

# Fixed URLs

## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://www.apache.org/licenses/ with 1 occurrences migrated to:
  https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 338 occurrences migrated to:
  https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0) result 200).
2019-03-21 13:16:37 -05:00
Marcin Grzejszczak
2f7cf78614 Applied checkstyle 2019-02-07 16:41:59 +01:00
Marcin Grzejszczak
99d38afc69 Fixed a lot of checkstyle warnings' 2018-10-01 12:29:33 +02:00
Adrian Cole
7ca2e8f94f Adjusts expectations of data reporting of loopback spans (#1034)
* Adjusts expectations of data reporting of loopback spans

The latest version of Brave corrects a data merge problem where shared
spans (created via Tracer.joinSpan) would lose some data. Along the way,
this fixes some misuse of `Tracer.joinSpan` which should only be used
for RPC server spans.

See https://github.com/openzipkin/brave/pull/734 applied in Brave 5.1.3

* Makes the test more better
2018-07-24 11:45:25 +02:00
Marcin Grzejszczak
347c63ea82 Aligned HTTP instrumentation with Brave (#878)
* Aligned HTTP instrumentation with Brave

with this change we remove TraceFilter and make TraceHandlerInterceptor a legacy component. All HTTP instrumentation is done via Brave.

fixes gh-873
2018-03-04 09:53:52 +01:00
Marcin Grzejszczak
1b2143b684 Merge branch '1.3.x' 2018-02-14 23:34:37 +01:00
Marcin Grzejszczak
6b3593660f Updated copyrights, fixed zuul 2018-01-31 10:56:48 +01:00
Marcin Grzejszczak
7eb374b5a5 Sleuth now uses Brave (#829)
with this pull request we have rewritten the whole Sleuth internals to use Brave. That way we can leverage all the functionalities & instrumentations that Brave already has (https://github.com/openzipkin/brave/tree/master/instrumentation).

Migration guide is available here: https://github.com/spring-cloud/spring-cloud-sleuth/wiki/Spring-Cloud-Sleuth-2.0-Migration-Guide

fixes #711 - Brave instrumentation
fixes #92 - we move to Brave's Sampler
fixes #143 - Brave is capable of passing context
fixes #255 - we've moved away from Zipkin Stream server
fixes #305 - Brave has GRPC instrumentation (https://github.com/openzipkin/brave/tree/master/instrumentation/grpc)
fixes #459 - Brave (openzipkin/brave#510) & Zipkin (openzipkin/zipkin#1754) will deal with the AWS XRay instrumentation
fixes #577 - Messaging instrumentation has been rewritten
2018-01-19 22:45:47 +01:00
Marcin Grzejszczak
2ecd77d151 Fighting flakey tests 2017-11-17 12:02:05 +01:00
Marcin Grzejszczak
8ba607c7a4 Trying to limit flakey tests 2017-11-17 11:37:17 +01:00
Marcin Grzejszczak
f63d37e39c Merge branch 'master' into 2.0.x 2017-11-15 17:40:45 +01:00
Marcin Grzejszczak
85517c6670 Increased timeouts 2017-11-15 17:40:36 +01:00
Marcin Grzejszczak
12715b9d23 Merge branch 'master' into 2.0.x 2017-11-15 17:18:48 +01:00
Marcin Grzejszczak
1ab3870d43 Modified a test to present better output 2017-11-15 17:18:00 +01:00
Marcin Grzejszczak
a4dbfbee5f MAde tests pass, fixed webclient support 2017-11-15 11:51:24 +01:00
Marcin Grzejszczak
8b16089445 Added debug info for messaging tests 2017-11-14 17:20:26 +01:00
Adrian Cole
338076d351 Merge branch 'master' into 2.0.x 2017-10-27 22:33:34 +08:00
Adrian Cole
bfe15ab0cd Misaligns Zipkin v1 from sharing the same version number as v2 (#760)
This does two things: ensures samples don't use Zipkin v1 in any way,
and misaligns the version numbers of zipkin v1 and zipkin v2 apis.

This is an attempt to walk around the gradle plugin issue, which only
exists when someone is using both versions of zipkin.

See https://github.com/spring-projects/spring-boot/issues/10778
2017-10-27 17:29:45 +03:00
Marcin Grzejszczak
558c7e2423 Trying to fix the flickering build 2017-10-17 08:29:03 +02:00
Adrian Cole
df78812969 Fixes bad imports 2017-10-06 16:19:29 +08:00
Marcin Grzejszczak
c82c52b5ce Fixed some tests 2017-10-04 16:31:51 +02:00
Marcin Grzejszczak
0f28a43444 Merge branch 'master' into 2.0.x 2017-06-27 15:39:27 +02:00
Marcin Grzejszczak
92d7c3443a Bumped libraries
awaitillity to 3.0.0
 wiremock to 2.6.0
 junit params to 1.1.0
 assertj to 3.8.0

fixes #620
2017-06-27 15:05:39 +02:00
Marcin Grzejszczak
c2d9c4b94e Should be working 2017-06-02 19:57:37 +02:00
Marcin Grzejszczak
1b832b6029 Spans are continued in Handler Interceptors (#474)
without this change an explicit new span is created on the server side. Its name is equal to the method name of the controller. It introduces some nice advantages in terms of readability of trace.

with this change we're continuing a previous span on the server side. We're attaching the tags and logs to that span with information about controller class and controller name. Also events related to start and finish of the controller are there.

fixes #471 #469 #427
2016-12-16 13:51:37 +01:00
Dave Syer
a0adcecba0 Update to Spring Boot 1.5 2016-12-12 12:52:21 +00:00
Adrian Cole
840d30dd33 Fixes MessagingApplicationTests 2016-11-07 07:29:31 -08:00
Marcin Grzejszczak
e28ddc0e72 Migrated to new SpringBootTest
fixes #328
2016-07-19 23:35:30 +02:00
Marcin Grzejszczak
f199321878 Added circle.ci integration
- also limited to 5 seconds awaits
2016-07-11 15:14:21 +02:00
Marcin Grzejszczak
05e221ef54 HTTP filter child span renamed
with this change the child span of the HTTP filter span gets changed into a span coming from the Controller aspect. The name of the span becomes the name of the method.
2016-06-23 13:24:16 +02:00
Marcin Grzejszczak
a9c1d89668 Made evaluation of Tracer bean more lazy
with this change Feign components resolve tracer and other beans from beanfactory when necessary

fixes #307
2016-06-22 16:38:53 +02:00
Marcin Grzejszczak
f8ed14bd5b Revert "Fixed tests with a workaround"
This reverts commit 94ed8cfe4b.
2016-05-12 10:10:49 +02:00
Marcin Grzejszczak
94ed8cfe4b Fixed tests with a workaround
had to add @EnableIntegration. Will remove it once https://github.com/spring-projects/spring-boot/issues/5901 is resolved
2016-05-09 17:28:58 +02:00
Dave Syer
00b67a87d5 Remove @Bean RestTemplate
(If users need one they can add it themselves)

Fixes gh-239
2016-03-31 13:31:34 +01:00
Marcin Grzejszczak
57b0f14d9a [#188][#194] Feign and RestTemplate create a new Span
fixes #188
fixes #194
2016-03-01 12:16:24 +01:00
Marcin Grzejszczak
c0620c410c [#160] Removed unnecessary Slf4j loggers
fixes #160
2016-02-18 11:23:09 +01:00
Dave Syer
77abdf7798 Remove brave dependencies 2016-02-11 12:35:51 +00:00