Commit Graph

776 Commits

Author SHA1 Message Date
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
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
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
85d4ffef82 Updates to latest Zipkin 1.16.2 (#454)
Here are the features relevant to sleuth

* MySQL support of 128-bit group-by
* don't stack overflow on json write bug
* more forgiving of IPv4-mapped addresses in json
2016-11-18 16:43:46 +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
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
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
Adrian Cole
31e02f54e2 Fixes MessagingApplicationTests 2016-11-07 07:29:48 -08:00
Adrian Cole
fb18d46311 Fixes ZipkinMessageListenerTests 2016-11-07 07:12:12 -08:00
Adrian Cole
903a9da226 Ensures Span.timestamp/duration are not reported on remote spans
This ensures spans that have remote set to true don't send
Span.timestamp/duration.

In the RPC span model, the client owns the timestamp and duration of the
span. If we were propagated an id, we can assume that we shouldn't
report timestamp or duration, rather let the client do that. Worst case
we were propagated an unreported ID and Zipkin backfills timestamp and
duration.

See https://github.com/openzipkin/openzipkin.github.io/issues/49
2016-11-07 06:58:55 -08:00
Marcin Grzejszczak
3ad22cd163 Removed wrong imports 2016-11-06 22:45:29 +01:00
Marcin Grzejszczak
44cc2b5b01 Added a test for tracing the tracer 2016-11-06 22:36:18 +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
Adrian Cole
6391bdaaec Updates to zipkin 1.14.4 (#441)
* Support for MySQL 5.7 with SQL_MODE=ONLY_FULL_GROUP_BY
* Includes support to store 128-bit trace ID (not yet implemented here)

See https://github.com/openzipkin/b3-propagation/issues/6
2016-11-06 20:23:13 +08:00
Marcin Grzejszczak
bda706e67e Updated docs whitelisted branches 2016-11-02 14:14:21 +01:00
Marcin Grzejszczak
7e84459f64 Added 1.1.x version 2016-11-02 14:11:05 +01:00
Marcin Grzejszczak
7a042af177 Fixing spring.sleuth.web.client.enabled (#437)
Ensuring that disabling of modules work

without this change when you disable Sleuth web client the context fails to load
with this change it's working fine. We've moved beans around + the async web client will be turned off automatically if the sync one is also disabled

fixes #433
2016-11-02 11:49:23 +01:00
Marcin Grzejszczak
538b5c956e Added error tag upon exceptions (#435)
without this change there's no error colouring on Zipkin side
with this change we set error tags
- whenever there is an exception thrown on the server side (5xx)
- wheneber on the client side it's impossible to send a message

fixes #384
2016-10-31 13:12:25 +01:00
Marcin Grzejszczak
faa3d4ecf9 Providing examples of how to work with executors
without this example it might be misleading for users how to work with callables and custom executors.
with this example we're showing both the case when you're using a custom executor (in this case you just have to register it as a bean and then use that bean in your callable); and also we show an example of how to reuse the taskScheduler one (it's enough to wrap it with LazyTraceExecutor).

fixes #423
2016-10-28 09:30:01 +02:00
Marcin Grzejszczak
e518144126 Updated docs with percentage information
without this change the percentage value might have been set to over 1.0
with this change we explain what are the valid values and what are the reasons for keeping the value as it is

fixes #397
2016-10-27 14:06:28 +02:00
Biju Kunjummen
8437bef6a9 Issue 424 - Documentation for adding trace/span headers to http response (#429)
fixes #424
2016-10-27 13:59:22 +02:00
Marcin Grzejszczak
56048b1852 Increased level of TOC 2016-10-20 12:20:45 +02:00
Marcin Grzejszczak
a2449ddc59 Going back to snapshots 2016-10-18 17:17:08 +02:00
Marcin Grzejszczak
66c6dd3010 Bumping versions before release 2016-10-18 17:05:11 +02:00
Marcin Grzejszczak
b505e4a1f9 Propagating exceptions in trace filter
without this change any exception occurring while creating a span will be swallowed.
with this change we're propagating the exception so that it gets handled properly.

fixes #426
2016-10-18 16:21:04 +02:00
Marcin Grzejszczak
9240fdbd9c Failure in extracting headers results in new span
without this change if the users sends invalid headers then exceptions are thrown.
with this change extractors catch the exception, log it and then a new span is created. That of course will lead to an invalid trace graph cause a new trace will be created but at least business apps will not be broken due to an issue in instrumentation.

fixes #425
2016-10-18 14:36:41 +02:00
Marcin Grzejszczak
b8db95bc78 Not throwing an exception when queue size is exceeded
without this change when queue size of spans is exceeded for Stream span propagation, an exception is thrown that terminates business logic processing
with this change we're not propagating the exception - we're incrementing the dropped spans counter

fixes #421
2016-10-11 15:15:11 +02:00
Dave Syer
d092d62397 Ensure lifecycle callbacks are applied to delegate
When wrapping a ThreadPoolTaskExecutor in a bean postprocessor
we should take care that the delegate gets the lifecycle callbacks
from the container. Otherwise when it is first used, the thread pool
will not have been initialized, resulting in an exception.

(Can't believe this ever actually worked)
2016-10-10 13:32:03 +01:00
Dave Syer
1d1f28d971 Ensure message headers are still mutable after interceptor is called
Some components in Spring assume (perhaps wrongly) that a channel
interceptor will not convert a mutable message into an immutable
one, and they continue to modify the headers dowstream. We can
dosge the issue of whether this is right or wrong by keeping the
message headers mutable, just in case.

It would probably be better to refactor the SpanInjector so that
it works with something other than the MessageBuilder, but we can
defer doing that in favour of this smaller change that works.

Adds a test for mutability. Also tested with the
gs-messaging-stomp-websocket guide from spring.io.

Fixes gh-276
2016-10-10 13:27:53 +01:00
Adrian Cole
5080ee3e24 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:59:40 +08:00
Marcin Grzejszczak
8bd8e3db1f Fixed race condition in tests 2016-10-04 14:30:56 +02:00
Marcin Grzejszczak
7289212868 Fixing ConcurrentModificationException 2016-10-04 14:02:00 +02:00
Marcin Grzejszczak
d1cb4b2990 Returning a copy of spans from ArrayListSpanAccumulator 2016-10-04 13:53:33 +02:00
Marcin Grzejszczak
842f8a1bb4 Fixed javadocs 2016-10-04 13:51:44 +02:00
Marcin Grzejszczak
d0bedb22cc 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:42:22 +02:00
Marcin Grzejszczak
72d0032859 Going back to snapshots 2016-09-21 13:20:57 +02:00
Marcin Grzejszczak
755e01d646 Bumping versions before release 2016-09-21 12:55:19 +02:00
Dave Syer
b882749044 Ensure version is scraped from parent pom 2016-09-20 13:48:13 +01:00
Marcin Grzejszczak
a293af7e37 Updating mvnw for all projects 2016-09-19 19:31:49 +02:00
Adrian Cole
6e61c21728 Updates to adjust for reporter metrics drift (#411) 2016-09-19 22:15:51 +08:00
Dave Syer
0a61f85e40 Move unnecessary dependencies up a level 2016-09-19 13:42:10 +01:00
Marcin Grzejszczak
18dab000ef Updating mvnw for all projects 2016-09-19 14:18:54 +02:00
Marcin Grzejszczak
beee1d2a3e Updating mvnw for all projects 2016-09-19 12:47:20 +02:00
Marcin Grzejszczak
633631b91d Updating mvnw for all projects 2016-09-15 16:13:35 +02:00
Adrian Cole
e6d29898dd Reroutes HttpZipkinSpanReporter to use zipkin.reporter.AsyncReporter (#409)
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 22:10:32 +08:00
Adrian Cole
02473f7c18 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:13:38 +08:00
Marcin Grzejszczak
00fe8e0f5a 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:34:48 +02:00