Commit Graph

772 Commits

Author SHA1 Message Date
Adrian Cole
b2df9844db Updates to latest Zipkin and avoids Endpoint factory method (#417)
Now that Endpoint has ipv6, the factory method is even worse than it
was before. This switches to a builder instead.

Note: Endpoint now has a nice toString which should help debugging.
2016-10-06 19:05:20 +08:00
Marcin Grzejszczak
4a3b346888 Fixed race condition in tests 2016-10-04 14:31:15 +02:00
Marcin Grzejszczak
31cec3fc79 Fixing ConcurrentModificationException 2016-10-04 14:04:03 +02:00
Marcin Grzejszczak
baad8c404a Wrapping all Executors and ThreadPoolTaskExecutors
without this change there was a gap in passing tracing info to executors.

With this change the Executors are wrapped in LazyTraceExecutor and ThreadPoolTaskExecutors are wrapped in their tracing representation too

fixes #410
2016-10-04 13:50:31 +02:00
Marcin Grzejszczak
155d6aed7c Updating mvnw for all projects 2016-09-19 19:31:57 +02:00
Adrian Cole
60cdafc1bc Updates to adjust for reporter metrics drift (#411) 2016-09-19 22:14:43 +08:00
Marcin Grzejszczak
8a6664c065 Updating mvnw for all projects 2016-09-19 14:19:08 +02:00
Dave Syer
b8b2a6cc17 Move unnecessary dependencies up a level 2016-09-19 12:04:59 +01:00
Marcin Grzejszczak
123c2c7e87 Updating mvnw for all projects 2016-09-19 12:47:31 +02:00
Marcin Grzejszczak
ae06079bdc Updating mvnw for all projects 2016-09-15 16:13:46 +02:00
Adrian Cole
12b488b130 Tolerate reads of 128 bit X-B3-TraceId (#408)
The first step of transitioning to 128bit `X-B3-TraceId` is tolerantly reading 32 character long ids by throwing away the high bits (any characters left of 16 characters). This allows the tracing system to more flexibly introduce 128bit trace id support in the future.

Ex. when `X-B3-TraceId: 463ac35c9f6413ad48485a3953bb6124` is received, parse the lower 64 bits (right most 16 characters ex48485a3953bb6124) as the trace id.
2016-09-15 21:12:33 +08:00
Adrian Cole
91e506ce35 Reroutes HttpZipkinSpanReporter to use zipkin.reporter.AsyncReporter (#407)
AsyncReporter is a more robust version of what we were doing before.
Notably, it can give a memory threshold instead of span count for the
backlog. This change ports to use AsyncReporter internally.

See https://github.com/openzipkin/zipkin-reporter-java#asyncreporter
2016-09-15 21:03:28 +08:00
Marcin Grzejszczak
f00585a7d4 Added more explicit Tracer explanation
without this change it could be nonclear where Tracer comes from and how you can use it.

With this change hopefully it get properly explained

fixes #402
2016-09-13 14:35:11 +02:00
Marcin Grzejszczak
4c3ca67235 Simplified TraceZuulHandlerMapping
without this change we were wrapping the ZuulHandlerMapping in its tracing representation.

with this change we are simplifing that by adding interceptors

fixes #399
2016-09-13 10:22:30 +02:00
Marcin Grzejszczak
9ebd9184ca Feign fixes
it turned out that some of the tests were leaky and didn't catch that ExceptionUtils were throwing an exception (race condition with Hystrix). That was due to the fact that When Hystrix with Feign were doing retries the RequestInterceptor wasn't called. That means that a new span wasn't created but a parent span was closed.

With this change the only place where the span creation and closing takes place is TraceFeignClient. I removed the Feign RequestInterceptor. Now whenever there is a retry - a new span is created and closed after getting a response. There are no exceptions, special cases etc.

In addition to that since Feign is fully immutable and SpanInjector is by design made to mutate objects I had to wrap the immutable Request in an AtomicReference in order to change the contents of the Request. I'm ashamed but didn't have a better idea. Since that is packaged scope nobody should every see that (outside the package of course)
2016-09-08 22:27:46 +02:00
Marius Bogoevici
bd8b64a5b9 Use StreamListener for coercing messages from JSON Span (#386)
* Use StreamListener for coercing messages from JSON `Span`

Rely on the `contentType` header of the transported message to
tell Spring Cloud Stream how to coerce the message to `Span`.
2016-09-08 15:56:29 +02:00
Marcin Grzejszczak
a9b4cbcfe6 TraceLoadBalancerFeignClient not closing span
when TLBFC is throwing an exception the span wasn't closed. Throwing exception can occurr when IOExcepiton is thrown. Then the span wouldn't be closed and the whole series of problems occur.

fixes #393
2016-09-08 15:08:01 +02:00
Marcin Grzejszczak
ea05343137 Fixed wrapping the wrapper 2016-09-08 13:03:40 +02:00
Marcin Grzejszczak
c26a722ced Reverting the feature 2016-09-08 12:19:30 +02:00
Marcin Grzejszczak
062aba6ec1 Trying to make it work 2016-09-08 12:08:51 +02:00
Marcin Grzejszczak
9d6a45fb43 Trying to fix the build 2016-09-08 11:56:46 +02:00
Marcin Grzejszczak
8f174fd2ba Wrapping LoadBalancerFeignClient in tracing representation
without this change when using SC-Netflix 1.2.0 Feign can't call an external URL

fixes #393
2016-09-08 11:24:15 +02:00
Marcin Grzejszczak
07356222e5 Removed adoc footer 2016-09-07 17:48:10 +02:00
Marcin Grzejszczak
e73028d9ba Updating mvnw for all projects 2016-09-07 17:30:22 +02:00
Adrian Cole
6c8cfd527c Updates to Zipkin 1.8.4 (#392)
Luckily, someone reported a bug where if unprintable characters were in
the json, the UI would hose. This version fixes that.
2016-09-06 11:52:47 +08:00
Adrian Cole
20d2144305 Fixes edge-case encoding bug (#391)
Sleuth doesn't create I64 binary annotations, but others might. This
version of zipkin fixes an encoding bug when someone logs a binary
annotation of type I64.
2016-09-05 16:32:24 +08:00
Adrian Cole
8a616d129a Updates to zipkin 1.8 (#389)
includes much faster json encoding and UI fixes
2016-09-01 22:37:16 +08:00
Marcin Grzejszczak
0066a243ec Fixed duplicate stream env post processor entries (#388)
when the stream env post processor is executed headers are added endlessly - there is no check for the presence of the tracing headers.

with this change a check is added so the tracing headers are added only once.

fixes #387
2016-08-30 13:09:05 +02:00
Marcin Grzejszczak
de19e3adfa Added info about root span 2016-08-29 15:08:55 +02:00
Adrian Cole
ddf9bcb677 Updates to Zipkin 1.7 (#379)
Notably includes CORS config and version in the /info endpoint.

https://github.com/openzipkin/zipkin/releases/tag/1.7.0
2016-08-25 18:56:55 +08:00
Marcin Grzejszczak
8e21a53c25 Synchronizing on spans in ArrayListSpanAccumulator
without this change tests happen to have ConcurrentModificationException
2016-08-23 15:35:33 +02:00
Marcin Grzejszczak
dd080029dc Updating ghpages for all projects 2016-08-22 13:32:47 +02:00
Marcin Grzejszczak
b24013075a Fixing TraceFilter order (#382)
after making TraceFilter process different dispatch types we've introduced a bug related to filter ordering. TraceFilter was registered with a default ordering which is of lowest precedence.

With this change we ensure that the ordering of TraceFilter is fixed.

Fixes #380
2016-08-22 12:25:36 +02:00
Marcin Grzejszczak
2f93bd955a Added docs on how to provide custom serviceName
without this entry in the docs people got confused on how to do this.

fixes #346
2016-08-19 13:37:50 +02:00
Marcin Grzejszczak
2f1fd86155 Updating ghpages for all projects 2016-08-19 11:47:09 +02:00
Marcin Grzejszczak
070000b8fb Synchronized ArrayListSpanAccumulator spans
without this change we could have ConcurrentModificationExceptions
2016-08-18 16:12:00 +02:00
Marcin Grzejszczak
e58c67bcf7 Added docs about logback-spring and props
we had a couple of questions related to missing attributes in the logback file or the logs as such. It's related to the fact that once you provide a custom logback file you have to place the propery of spring.application.name in the bootstrap file

fixes #376
2016-08-18 15:44:50 +02:00
Marcin Grzejszczak
c779bcf3b2 Updating ghpages for all projects 2016-08-18 13:16:01 +02:00
Marcin Grzejszczak
f043a347bc Bounding the queue for StreamSpanReporter
without this change the limit is MAX_INTEGER. With this change we set it to 1000

fixes #378
2016-08-18 12:26:45 +02:00
Dave Syer
c765ad4ec7 Change repo URLs to https 2016-08-17 17:31:26 +01:00
Marcin Grzejszczak
f2474dbd20 Updated e2e script 2016-08-17 14:09:19 +02:00
Marcin Grzejszczak
a31a900542 Wraped debug logs with conditional 2016-08-17 13:58:22 +02:00
Marcin Grzejszczak
ba9e625132 Fixing broken test 2016-08-17 13:58:22 +02:00
Marcin Grzejszczak
f9e3e9131d Updating ghpages for all projects 2016-08-17 12:46:09 +02:00
Marcin Grzejszczak
2e7ddfde8a Deploying documentation to proper folder (#373)
What we're missing ATM is different documentation versions for different application versions. What this change does is that it's:

- finding out what is the current branch (e.g. 1.0.x)
- finding out out what is the name of the main adoc file (e.g. spring-cloud-sleuth)
- pulling the changes from gh-pages after checkout
- finding out what is the list of comma separated whitelisted branches (via the `docs.whitelisted.branches` prop) 
- in gh-pages creating a folder with name of the branch  (e.g. /1.0.x)
copying all the docs/target/generated-docs/ to that folder
- if the branch from which we're calling the script is NOT master then we're changing the ${main.adoc}.html to index.html so that it's easier to access the docs (e.g. http://cloud.spring.io/spring-cloud-sleuth/1.0.x/)
2016-08-16 14:16:25 +02:00
Marcin Grzejszczak
74c8e50e7a Updated Zipkin UI docs
fixes #375
2016-08-16 14:06:01 +02:00
Marcin Grzejszczak
bbfa85eb9f Ensured reusability of Feign components
Tests have been refactored to ensure that the custom components registered as beans are working properly.

fixes #374
2016-08-16 12:08:36 +02:00
Marcin Grzejszczak
0f427cbeb9 Polish 2016-08-10 17:18:20 +02:00
Marcin Grzejszczak
ecdf32c5bc Simplified Feign (#372)
with this change we no longer treat retries as a continuation of a previous span. That way the Feign code simplifies a lot. RequestInterceptor starts a span and the TraceFeignClient will always close it no matter what's happening.

fixes #202
2016-08-09 18:54:28 +02:00
Marcin Grzejszczak
9c092227de Added NPE gueard for TraceFeignContext 2016-08-06 15:36:09 -07:00