Commit Graph

168 Commits

Author SHA1 Message Date
Marcin Grzejszczak
e027d4cfb5 Making the branch 1.5.0 boot compatible
fixes #499
2017-01-23 12:37:55 +01:00
Adrian Cole
a396a09603 Updates to latest zipkin 1.19 (#495)
Most changes are not very interesting to sleuth, though the server is
quite a lot better with UI fixes galore. For sleuth mainly, small api
unaffecting glitch fixes around the Span.Builder.
2017-01-19 20:17:24 +08:00
Marcin Grzejszczak
49e92443fb Going back to snapshots 2017-01-12 13:03:16 +01:00
Marcin Grzejszczak
7dd5a26802 Bumped versions before release 2017-01-12 12:28:53 +01:00
Marcin Grzejszczak
4d7def0362 Merge branch '1.0.x' into 1.1.x 2017-01-11 12:32:09 +01:00
Marcin Grzejszczak
a559c11bcd Due to possible performance problems when DiscoveryClient gives nonexistent DNS name as local address Local endpoint is created from server properties by default.
Local Ip determined from spring.commons InetUtils.
    To enable local endpoint resolution via service discovery, DiscoveryClient must be present and 'spring.zipkin.service.locator.discovery' should be set to true.
    FallbackHavingEndpointLocator was caching and recreating EndpointLocator in the same time - removed the caching part.

    Fixes gh-403
2017-01-11 12:31:18 +01:00
Marcin Grzejszczak
863ba87f5f Going back to snapshots 2017-01-09 17:02:20 +01:00
Marcin Grzejszczak
e4546afd49 Bumping versions before release 2017-01-09 16:22:49 +01:00
Marcin Grzejszczak
2097acb486 Adding the spring.instance_id tag
without this tag it's impossible to discern from which server was the given span originated
    with this change we're adding a tag in which we're passing the instance id value. The value can be taken either from Cloud Foundry or from a concatanation of some local properties like instance_id / application name / application port etc.

    fixes #369
2017-01-03 14:21:32 +01:00
Marcin Grzejszczak
9d8b2a279f Adding the spring.instance_id tag
without this tag it's impossible to discern from which server was the given span originated
    with this change we're adding a tag in which we're passing the instance id value. The value can be taken either from Cloud Foundry or from a concatanation of some local properties like instance_id / application name / application port etc.

    fixes #369
2017-01-03 14:20:56 +01:00
Marcin Grzejszczak
e117531d75 Added property for overriding the service name in Zipkin
without this only either service discovery service id / spring.application.name can be chosen as a service name for zipkin
    with this change you can pass spring.zipkin.service.name property to change override that both for HTTP and Stream collectors

    fixes #324
2017-01-02 10:18:48 +01:00
Marcin Grzejszczak
e982c4df80 Added property for overriding the service name in Zipkin
without this only either service discovery service id / spring.application.name can be chosen as a service name for zipkin
    with this change you can pass spring.zipkin.service.name property to change override that both for HTTP and Stream collectors

    fixes #324
2017-01-02 10:18:20 +01:00
Marcin Grzejszczak
cd6a25ac1a Adding SA only if peer tag is present
without this change Zipkin doesn't properly visualize the span on the server side.
with this change we're setting SA only if peer tag is set.

fixes #481
2016-12-19 13:26:19 +01:00
Marcin Grzejszczak
ad700ea664 Adding SA only if peer tag is present
without this change Zipkin doesn't properly visualize the span on the server side.
with this change we're setting SA only if peer tag is set.

fixes #481
2016-12-19 13:26:04 +01: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
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
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
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
Adrian Cole
81d5361561 Ensures Span.timestamp/duration are not reported on remote spans (#443)
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.
2016-11-07 06:58:08 -08:00
Marcin Grzejszczak
7e84459f64 Added 1.1.x version 2016-11-02 14:11:05 +01: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
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
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
Adrian Cole
6e61c21728 Updates to adjust for reporter metrics drift (#411) 2016-09-19 22:15:51 +08: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
Marcin Grzejszczak
8a32f02f9f Going back to SNAPSHOTs 2016-09-08 23:29:24 +02:00
Marcin Grzejszczak
2e4c59b3c6 Bumping versions before release 2016-09-08 22:45:02 +02:00
Marcin Grzejszczak
9e01d77431 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:25:12 +02:00
Marcin Grzejszczak
ef2445090d Going back to SNAPSHOTs 2016-09-08 18:20:57 +02:00
Marcin Grzejszczak
877b80b70e Bumping versions before release 2016-09-08 17:37:08 +02:00
Marcin Grzejszczak
cd17b35ea3 Going back to Snapshots 2016-08-22 13:20:14 +02:00
Marcin Grzejszczak
995371fc0d Bumping versions before release 2016-08-22 12:39:30 +02:00
Marcin Grzejszczak
2bad78ee4b Going back to snapshots after release 2016-08-19 15:06:37 +02:00
Marcin Grzejszczak
f56779e255 Bumping versions before release 2016-08-19 14:26:49 +02:00
Marcin Grzejszczak
1b348abbde 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:25:34 +02:00
Marcin Grzejszczak
fdea5d6bac Wraped debug logs with conditional 2016-08-17 13:59:01 +02:00
Marcin Grzejszczak
e0fbcfe7c6 Polish 2016-08-10 17:33:44 +02:00
Marcin Grzejszczak
9c0fe65649 Updating the duration setting (#360)
* Updating the duration setting

fixes #349
2016-07-29 23:36:29 +02:00
Marcin Grzejszczak
84723e8ad7 Going back to Snapshots 2016-07-25 11:58:27 +02:00
Marcin Grzejszczak
b73786f95a Bumping versions before release 2016-07-25 10:39:44 +02:00
Marcin Grzejszczak
66d11435e8 Update to SNAPSHOT 2016-07-07 17:39:17 +02:00
Marcin Grzejszczak
cb027db522 Update SNAPSHOT to 1.0.3.RELEASE 2016-07-07 17:25:30 +02:00
Spencer Gibb
fbefa81d52 Update to SNAPSHOT 2016-06-30 17:30:59 -06:00
Spencer Gibb
54c9e45d09 Update SNAPSHOT to 1.0.2.RELEASE 2016-06-30 17:06:56 -06:00
Adrian Cole
c2ab0d59cf 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
2016-06-29 10:42:02 +02:00