Commit Graph

375 Commits

Author SHA1 Message Date
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
Marcin Grzejszczak
6d542f4f68 Fixed wrong ConditionalOnClass
with this fix there no longer should be bugs related to a missing class.

fixes #363
2016-08-02 23:35:51 -07:00
Marcin Grzejszczak
d7929943a3 Fixed circular dependency
fixes #354
2016-08-01 18:01:00 -07:00
Marcin Grzejszczak
06ad66faf1 Bumping into openfeign 2016-07-29 23:48:57 +02:00
Marcin Grzejszczak
11e520c70d Updating the duration setting (#360)
* Updating the duration setting

fixes #349
2016-07-29 23:29:31 +02:00
Marcin Grzejszczak
47606bc9e3 Adding tags for Hystrix spans
with this change if a span hasnt set any Hystrix related spans then we're setting the tags even if the span gets continued (which is the case when you're using Javanica

fixes #352
2016-07-29 15:07:17 +02:00
Marcin Grzejszczak
ea57bb3088 Unified tag names
with this change the tags related to method and class name will not be hyphen delimited.

fixes #359
2016-07-29 12:44:07 +02:00
Marcin Grzejszczak
f3cbfd93e1 Returning a copy instead of a view (#356)
* Returning a copy instead of a view
* Making logs and tags thread-safe

fixed #355

* Changes following code review
2016-07-28 11:04:28 +02:00
Marcin Grzejszczak
8dbb6e36e4 Fixed missing default Feign.Builder
with this fix if someone is not using Feign he gets the default traced Feign.Builder. Thanks to this no more exceptions should be seen in terms of closing the wrong span.

fixes #350
2016-07-22 18:40:30 +02:00
Marcin Grzejszczak
e28ddc0e72 Migrated to new SpringBootTest
fixes #328
2016-07-19 23:35:30 +02:00
Marcin Grzejszczak
8de8f60c2f Disabling Hystrix for a Feign test 2016-07-19 10:19:32 +02:00
Premanand Chandrasekaran
ee80b301e8 Fix for inability to provide custom implementation of AsyncClientHttpRequestFactory (#342) 2016-07-19 10:13:18 +02:00
Marcin Grzejszczak
4a6a556af0 Added tests and fix docs for AsyncRestTemplate
fixes #334
2016-07-15 16:26:21 +02:00
Steve Oakey
bf3780536b Added patterns to @GlobalChannelInterceptor (#337)
Makes use of property place holders to set the patterns attribute of the
@GlobalChannelInterceptor annotation used for the
TraceChannelInterceptor. As supported by the annotation, only simple
patterns are supported.

Added the Spring configuration metadata for spring.sleuth.integration
properties.

Fixes gh-323
2016-07-15 08:21:03 +02:00
Marcin Grzejszczak
8d87ed4ceb Fixed the port 2016-07-14 23:45:02 +02:00
Marcin Grzejszczak
a6dd902231 Added additional javadoc information for #332 2016-07-14 13:49:11 +02:00
Marcin Grzejszczak
9d3ecca72b Fixed missing wrapping of ExecutorService
with this change the missing methods in ExecutorService are wrapped with LocalComponentTraceCallable. We are wrapping only those callables that have not already been wrapped. Kudos to @PranayPS for finding the issue and proposing a solution.

Fixes #333
2016-07-14 12:59:52 +02:00
Marcin Grzejszczak
3ac3d41bad Fix headers in messaging (#335)
* Fix headers in messaging

with this change the span related headers are changed to be compatible with messaging specs. The change is backwards compatible so we accept the old ones as input, and as output we're producing both new and old headers.

fixes #332
2016-07-14 12:06:39 +02:00
Marcin Grzejszczak
795b7c8e81 Randomized port for a test 2016-07-12 14:20:54 +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
81f70ff071 Removed sending the tracing information back in the response (#329)
fixes #327
2016-07-11 13:21:31 +02:00
Adrian Cole
a7aca7562a Updates to Zipkin 1.3 and rounds up Span duration to one when < 1μ (#326)
Duration of 0 is confusing to plot and can be misinterpreted as null.

See https://github.com/openzipkin/zipkin/issues/1174
See https://github.com/openzipkin/zipkin/releases/tag/1.3.0
2016-07-10 12:08:36 +08:00
Marcin Grzejszczak
bfce279d52 Re-added missing server side span (#322)
* Re-added missing server side span

with this change

- HandlerInterceptor is responsible for wrapping requests in spans
- added Sring Data REST instrumentation
- added Zuul instrumentation
- it will not wrap error controller related requests with spans
- tests have been changed to ensure that ALWAYS there is at least one span on the server side (that way it will show up in Zipkin)
- "fallback" mechanism has been added that if a HandlerInterceptor hasn't been used then we are forcing creation of a Span at the server side

fixes #321
(cherry picked from commit 4f1ef52e6c)
2016-07-07 11:03:33 +02:00
Marcin Grzejszczak
48d46b07bb Added RibbonCommand instrumentation (#318)
with this change RibbonRequestCustomizers are created for
- Netflix HttpClient
- OkHttp client
- Apache HttpClient

those customizers know how to inject span into the given context. Also a wrapper over a RibbonCommandFactory bean gets created that injects http trace keys to the given span

fixes #313
2016-06-30 13:02:31 +02:00
Marcin Grzejszczak
61e70deff5 Fixed the hacks for Feign 2016-06-30 11:48:54 +02:00
Marcin Grzejszczak
6bc4a9862b Fixed not clearing spans on messaging exception
with this change we're closing spans on afterSendCompletion and not afterPost thus even if an exception is thrown we will close the span

    fixes #319
2016-06-30 11:21:27 +02:00
Marcin Grzejszczak
6b5fa63553 Exposes getAccumulatedMicros for more precise Span duration (#317)
Formerly, `Span.getAccumulatedMillis()` worked, but could returns
    imprecise measurements, particularly local spans. This changes the
    internals of Span to keep track of a start tick. Using this, it can
    return a more precise `Span.getAccumulatedMicros()`.

    To ensure this precision isn't lost in serialization, this adds a
    json field `durationMicros`, which is only set when the span is stopped.
    This is set instead of start tick because `System.nanoTime()` is JVM
    specific and so cannot be used across the network. `durationMicros` uses
    null instead of zero comparisons because nano time can be negative.

    Fixes #312

    Fixed integration tests to use ZipkinRule
    Introduce assertj assertions (#315)

    * Introduce assertJ assertions in some tests
    * Fix code formatting to be inline with Spring rules
2016-06-29 10:44:00 +02:00
Spencer Gibb
43a8bcfe2e Pass empty collections rather than null. 2016-06-27 14:46:27 -06:00
Marcin Grzejszczak
32450358bf Introduce assertj assertions (#315)
* Introduce assertJ assertions in some tests
    * Fix code formatting to be inline with Spring rules
2016-06-25 10:29:28 +02:00
Marcin Grzejszczak
e4e36d42b7 Fixed issues with aspects 2016-06-24 02:04:40 +02:00
Marcin Grzejszczak
9242ccec06 Updated aspects with SpanNameUtil 2016-06-24 02:01:39 +02:00
Marcin Grzejszczak
7a4dcf6f05 Fixed the aspect for controllers 2016-06-24 01:50:37 +02:00
Marcin Grzejszczak
7ea2859583 Merge branch '1.0.x' 2016-06-23 14:45:43 +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
187c58aceb Fixed the issue with Zuul and error code 2016-06-23 11:26:41 +02:00
Marcin Grzejszczak
31a0bd885f Added connection factory to rest template for tests 2016-06-23 11:26:41 +02:00
Marcin Grzejszczak
0d6f27f43a Throwing exception when tracing is malformed (#308)
with this change we will throw an IllegalArgumentException when the malformed tracing data are sent. In TraceFilter we're catching it and sending back 400 response. In case of messaging the exception gets propagated

fixed #306

* Changes following review

* Changes following review
2016-06-22 16:39:33 +02:00
Marcin Grzejszczak
be735659b6 Wrong span / trace ids dont blow up the app
with this change we're trying to retrieve the value of span / trace id from a header but we don't propagate the exception if that value is invalid. Instead we generate a new random value. It's better not to break the application and break the trace (if by any chance it's been corrupt).

Fixed #306
2016-06-22 16:39:23 +02:00
Marcin Grzejszczak
b7b8b30c21 Fixing tests for Jenkins 2016-06-22 16:39:10 +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
117a5e8347 Throwing exception when tracing is malformed (#308)
with this change we will throw an IllegalArgumentException when the malformed tracing data are sent. In TraceFilter we're catching it and sending back 400 response. In case of messaging the exception gets propagated

fixed #306

* Changes following review

* Changes following review
2016-06-22 14:09:12 +02:00
Marcin Grzejszczak
6bea07af1e Wrong span / trace ids dont blow up the app
with this change we're trying to retrieve the value of span / trace id from a header but we don't propagate the exception if that value is invalid. Instead we generate a new random value. It's better not to break the application and break the trace (if by any chance it's been corrupt).

Fixed #306
2016-06-22 01:14:53 +02:00
Marcin Grzejszczak
d35a6eb017 Fixing tests for Jenkins 2016-06-22 00:24:09 +02:00
Marcin Grzejszczak
72714118d5 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-21 23:54:53 +02:00
Marcin Grzejszczak
be6165e69c Fixed the issue with Zuul and error code 2016-06-17 10:23:47 +02:00
Marcin Grzejszczak
ea076ce944 Added verification for lack of response status code
With this change when there is no http response status code an exception is not thrown and the tags are not set for http.status_code

    fixes #304
2016-06-15 13:09:24 +02:00
Marcin Grzejszczak
78dc17fc45 Added verification for lack of response status code
With this change when there is no http response status code an exception is not thrown and the tags are not set for http.status_code

fixes #304
2016-06-15 13:07:42 +02:00