Commit Graph

773 Commits

Author SHA1 Message Date
Marcin Grzejszczak
f047b39fd8 Made tests less brittle - fixed the stupid change 2016-12-16 14:14:14 +01:00
Marcin Grzejszczak
5502bab61b Premature async rest template (#479)
without this change the async rest template provides wrong value of the span duration
with this change the span is closed via a callback

fixes #475
2016-12-16 13:59:03 +01:00
Marcin Grzejszczak
765e41d6c7 Made tests less brittle 2016-12-16 13:51:50 +01: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
Marcin Grzejszczak
8ff34c28a9 Made tests less brittle - fixed the stupid change 2016-12-16 13:37:01 +01:00
Marcin Grzejszczak
1fd3afe7aa Made tests less brittle - fixed the stupid change 2016-12-16 13:36:43 +01:00
Marcin Grzejszczak
ac365686cd Made tests less brittle 2016-12-16 13:33:03 +01:00
Marcin Grzejszczak
ee51d41e1e Made tests less brittle 2016-12-16 13:32:49 +01:00
Marcin Grzejszczak
9c5c965162 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:25:04 +01:00
Marcin Grzejszczak
ee8c73df53 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:02:58 +01:00
Dave Syer
a0adcecba0 Update to Spring Boot 1.5 2016-12-12 12:52:21 +00:00
Marcin Grzejszczak
7855560fa9 Fixed disabling of Sleuth
without this change it's impossible to disable Sleuth when you have registered a Random bean
with this change the conditions are fixed

fixes #462
2016-12-08 15:25:55 +01:00
Marcin Grzejszczak
9662e79677 Fixed disabling of Sleuth
without this change it's impossible to disable Sleuth when you have registered a Random bean
with this change the conditions are fixed

fixes #462
2016-12-08 15:11:51 +01:00
Marcin Grzejszczak
0f4427bbf3 Fixed disabling of Sleuth
without this change it's impossible to disable Sleuth when you have registered a Random bean
with this change the conditions are fixed

fixes #462
2016-12-08 15:05:23 +01:00
Marcin Grzejszczak
8c8c3e919b Continuing Spans (#461)
With this change we change the approach to continue spans (if they already exist) instead of starting new ones. The RPC spans would still be generated but Hystrix, Async, Callables / Runnables will reuse an existing span if there is one.

the scenarios are as follows:

Assuming that we have a trace X with span Y
* if you used tracer.wrap(Callable) or trace.wrap(Runnable) then:
  * previously you'd get a span Z created when the Callable / Runnable is executed
  * with this change you'll continue the span Y
* if you used a HystrixCommand then
  * previously you'd get a span Z together with added tags when the command got executed
  * with this change you'll continue the span Y and the tags will be added to span Y
* if you used a ExecutorService then
  * previously you'd get a span Z together with added tags when a method from ExecutorService got executed
  * with this change you'll continue the span Y and the tags will be added to span Y

Assuming that there was no span then everything will work as previously.

In order to create a new span you just have to create it manually. Example of creating a new span for an `@Async` annotated method.

```
// obviously you should inject via constructor ;)
@Autowired Tracer tracer;

@Async
public Future<String> foo() {
    Span span = tracer.createSpan("newSpan");
    try {
       // do your stuff
    } finally {
       this.tracer.close(span);
    }
}
```

fixes #174
2016-12-07 11:18:13 +01:00
Jean-Philippe Courson
3c720116c3 Custom HTTP status codes support (#460)
Provides  custom HTTP status codes support

without this change applications using custom HTTP status codes are currently having issues with Spring Cloud Sleuth. TraceFilter.httpStatusSuccessful() is throwing an IllegalArgumentException on HttpStatus.valueOf(response.getStatus()).

with this change that gets fixed
2016-12-03 17:23:11 +02:00
Jean-Philippe Courson
398d26186e Custom HTTP status codes support (#460)
Provides  custom HTTP status codes support

without this change applications using custom HTTP status codes are currently having issues with Spring Cloud Sleuth. TraceFilter.httpStatusSuccessful() is throwing an IllegalArgumentException on HttpStatus.valueOf(response.getStatus()).

with this change that gets fixed
2016-12-03 17:22:46 +02:00
Jean-Philippe Courson
85f8943410 Custom HTTP status codes support (#460)
Provides  custom HTTP status codes support

without this change applications using custom HTTP status codes are currently having issues with Spring Cloud Sleuth. TraceFilter.httpStatusSuccessful() is throwing an IllegalArgumentException on HttpStatus.valueOf(response.getStatus()).

with this change that gets fixed
2016-12-03 17:14:12 +02:00
Marcin Grzejszczak
822c5fbba2 Going back to snapshots 2016-11-24 13:19:11 +01:00
Marcin Grzejszczak
b663ab397b Bumping versions before release 2016-11-24 13:00:18 +01:00
Dave Syer
427df71b76 Fix broken test (duh) 2016-11-24 12:52:47 +01:00
Dave Syer
ea9553cef7 Ensure websockets 1xx response is not treated as an error 2016-11-24 12:42:28 +01:00
Marcin Grzejszczak
34c4eacb5e Going back to Snapshots 2016-11-24 12:39:06 +01:00
Marcin Grzejszczak
c47d0b6c18 Bumping versions before release 2016-11-24 12:08:10 +01:00
Marcin Grzejszczak
64c2946d65 Fixed wrong proxying of executors
without this change tracing worked fine but the custom types were not registered as beans. Thus autowiring of them was not possible
with this change the bean post processor is removed and an aspect is used - that way tracing is still working fine but we don't interfere in bean registration

fixes #445
2016-11-21 16:55:42 +01:00
Marcin Grzejszczak
06ab758d69 Fixed wrong proxying of executors
without this change tracing worked fine but the custom types were not registered as beans. Thus autowiring of them was not possible
with this change the bean post processor is removed and an aspect is used - that way tracing is still working fine but we don't interfere in bean registration

fixes #445
2016-11-21 16:48:38 +01:00
Marcin Grzejszczak
a3c0f81671 Fixed wrong proxying of executors
without this change tracing worked fine but the custom types were not registered as beans. Thus autowiring of them was not possible
with this change the bean post processor is removed and an aspect is used - that way tracing is still working fine but we don't interfere in bean registration

fixes #445
2016-11-21 16:41:20 +01:00
Adrian Cole
24e52c690d Starts 128-bit traces when spring.sleuth.traceId128=true (#455) (#456)
This adds autoconfiguration to create 128-bit traces when
`spring.sleuth.traceId128=true`.
2016-11-18 22:58:34 +08:00
Adrian Cole
02e6eb5745 Starts 128-bit traces when spring.sleuth.traceId128=true (#455)
This adds autoconfiguration to create 128-bit traces when
`spring.sleuth.traceId128=true`.
2016-11-18 20:10:34 +08:00
Adrian Cole
bee6956987 Starts 128-bit traces when spring.sleuth.traceId128=true (#455)
This adds autoconfiguration to create 128-bit traces when
`spring.sleuth.traceId128=true`.
2016-11-18 20:10:00 +08:00
Adrian Cole
78f6a43f79 Propagates logs and reports 128-bit trace IDs (1.1.x) (#453)
This supports 128-bit traces via a new field traceIdHigh, which matches
other zipkin implementations. In encoded form, the trace ID is simply
twice as long (32 hex characters).

With this change in, a 128-bit trace propagated will not be downgraded
to 64-bits when sending downstream, reporting to Zipkin or adding to
the logging context.

This will be followed by a change to support initiating 128-bit traces.
2016-11-18 14:41:09 +08:00
Adrian Cole
2a1b4befba Propagates logs and reports 128-bit trace IDs (1.1.x) (#453)
This supports 128-bit traces via a new field traceIdHigh, which matches
other zipkin implementations. In encoded form, the trace ID is simply
twice as long (32 hex characters).

With this change in, a 128-bit trace propagated will not be downgraded
to 64-bits when sending downstream, reporting to Zipkin or adding to
the logging context.

This will be followed by a change to support initiating 128-bit traces.
2016-11-18 14:40:25 +08:00
Adrian Cole
c596f3f1ae Propagates logs and reports 128-bit trace IDs (#452)
This supports 128-bit traces via a new field traceIdHigh, which matches
other zipkin implementations. In encoded form, the trace ID is simply
twice as long (32 hex characters).

With this change in, a 128-bit trace propagated will not be downgraded
to 64-bits when sending downstream, reporting to Zipkin or adding to
the logging context.

This will be followed by a change to support initiating 128-bit traces.
2016-11-18 08:46:54 +08:00
Adrian Cole
6cb0c21e5a Switches ID encoding to fixed-length (1.0.x backport) (#451)
Before, we were using variable encoding for trace and span identifiers.
This complicates search for those who are copy/pasting fixed-length IDs
provisioned upstream. This moves to standard formatting, while
maintaining tolerant reads.

The code added will also be used to support 128-bit (32 char) trace IDs.

Backport of #450
2016-11-16 16:50:38 +08:00
Adrian Cole
d6bc3529b3 Switches ID encoding to fixed-length (1.0.x backport) (#451)
Before, we were using variable encoding for trace and span identifiers.
This complicates search for those who are copy/pasting fixed-length IDs
provisioned upstream. This moves to standard formatting, while
maintaining tolerant reads.

The code added will also be used to support 128-bit (32 char) trace IDs.

Backport of #450
2016-11-16 16:49:16 +08:00
Adrian Cole
c943e4cd50 Switches ID encoding to fixed-length (#450)
Before, we were using variable encoding for trace and span identifiers.
This complicates search for those who are copy/pasting fixed-length IDs
provisioned upstream. This moves to standard formatting, while
maintaining tolerant reads.

The code added will also be used to support 128-bit (32 char) trace IDs.

Fixes #449
2016-11-16 14:55:28 +08:00
Dave Syer
a39371572c Fix broken test (duh) 2016-11-15 15:40:06 +00:00
Dave Syer
8d48406dfa Ensure websockets 1xx response is not treated as an error 2016-11-15 11:29:30 +00:00
Marcin Grzejszczak
96df523557 Added baggage support (#440)
without this change there is no support for context propagation
with this change whenever you pass the `baggage-...` for http or `baggage_` for messaging headers then such a value will be propagated through your system

fixes #237
2016-11-10 15:36:47 +01:00
Ryan Baxter
796e37562b Merge remote-tracking branch 'Upstream/1.0.x' into disable-retry 2016-11-09 13:20:33 -05:00
Marcin Grzejszczak
9ab37c34fa Wrapping ExecutorService in its own representation
without this change ExecutorService was treated as an Executor and wrapped in the Executor bean. Due to this the bean was missing / bean of invalid type was registered.
with this change we do not wrap ExecutorService with a Executor bean, instead we wrap it in a TraceableExecutorService representation.

fixes #445
2016-11-08 15:22:40 +01:00
Marcin Grzejszczak
2a740db1d2 Wrapping ExecutorService in its own representation
without this change ExecutorService was treated as an Executor and wrapped in the Executor bean. Due to this the bean was missing / bean of invalid type was registered.
with this change we do not wrap ExecutorService with a Executor bean, instead we wrap it in a TraceableExecutorService representation.

fixes #445
2016-11-08 15:15:21 +01:00
Marcin Grzejszczak
54932c5675 Wrapping ExecutorService in its own representation
without this change ExecutorService was treated as an Executor and wrapped in the Executor bean. Due to this the bean was missing / bean of invalid type was registered.
with this change we do not wrap ExecutorService with a Executor bean, instead we wrap it in a TraceableExecutorService representation.

fixes #445
2016-11-08 15:05:24 +01:00
Christoffer Sawicki
e0a20b205f Allow TraceWebAutoConfiguration to work without Web MVC
Fixes #436
2016-11-06 20:04:28 +01:00
Marcin Grzejszczak
0609396ea1 Updated libs 2016-11-06 20:04:18 +01:00
Christoffer Sawicki
cd2b0fd0f4 Allow TraceWebAutoConfiguration to work without Web MVC
Fixes #436
2016-11-06 20:04:03 +01:00
Marcin Grzejszczak
2ab2eb1747 Polish 2016-11-06 20:03:44 +01:00
Christoffer Sawicki
3b14e6a1f7 Allow TraceWebAutoConfiguration to work without Web MVC
Fixes #436
2016-11-06 20:03:34 +01:00
Marcin Grzejszczak
9291af89cf Updated docs 2016-11-06 12:31:03 +01:00
Marcin Grzejszczak
6f24c8866c Polish 2016-11-04 13:09:36 +01:00