Commit Graph

238 Commits

Author SHA1 Message Date
Marcin Grzejszczak
754c8ce96d [#191] Added ServerAddress annotation
* if a span contains a CS or CR (or any other client related annotation) then SA is passed from the Endpoint service name

fixes #191
2016-03-01 16:35:57 +01:00
Marcin Grzejszczak
6c2c87ab3c [#191] Added local component if a span doesn't have any Zipkin constants
fixes #191
2016-03-01 13:45:58 +01:00
Adrian Cole
51b542e34b Updates to latest zipkin, adding spring.zipkin.compression.enabled flag
This updates to latest zipkin, adding a flag to gzip spans before
posting them. Note this is set to false by default as it requires servers
to also be latest. We can flip the default once we can assume that.

Ex. `spring.zipkin.compression.enabled = true`
2016-02-25 21:11:58 +08:00
Marcin Grzejszczak
3000a4f37d [#69] Added javadocs
fixes #69
2016-02-25 11:23:23 +01:00
Adrian Cole
be1b986bec Refactors HTTP SpanReporter tests to use ZipkinRule
This replaces direct usage of MockWebServer with ZipkinRule.
2016-02-24 14:14:19 +08:00
Marcin Grzejszczak
2ce9b085dd Merge pull request #172 from spring-cloud/issues_#160_removed_loggers
[#160] Removed unnecessary Slf4j loggers
2016-02-18 13:50:05 +01:00
Marcin Grzejszczak
c0620c410c [#160] Removed unnecessary Slf4j loggers
fixes #160
2016-02-18 11:23:09 +01:00
Adrian Cole
075a373127 Updates to zipkin 0.5.3
This includes updates to the latest zipkin-web image and zipkin-java
dependency.

zipkin-web's notable as it does a lot more in javascript, ex it no
longer does server-side mustache template rendering. It also makes one
less call to the services endpoint when rendering the search page.

zipkin-java's in-memory span store is now in the core jar and also can
render the dependency tree. This means it is now feature-parity with
mysql (but still merely a test span-store). zipkin-java also now tests
that it can run without optional dependencies.
2016-02-18 15:31:51 +08:00
Marcin Grzejszczak
8333c31c99 [#158] Removing span name
fixes #158
2016-02-16 08:28:22 +01:00
Adrian Cole
cdbb74c029 Updates to zipkin-java 0.5
This includes better dependency aggregation than before. For example,
you no longer need mysql to view the dependency graph, as the in-memory
server supports aggregation now. Also, if you log "ca" on a root span,
the associated service will show on the dependency graph on the far
left. This allows you to show uninstrumented clients of note. Similarly,
if you log "sa" on a leaf node, the destination will show on the far
right. You'd use "sa" for uninstrumented services like databases, auth
servers or cloud apis.

Note: 0.5.2 uses spring boot 1.3.2
2016-02-12 12:46:41 +08:00
Marcin Grzejszczak
ee8d7a54c7 Delomboking 2016-02-10 19:09:20 +01:00
Marcin Grzejszczak
1b0c8dfee5 [#146] Introduced SpanName
- Added aspect to provide better naming for @Async

fixes #146
2016-02-09 15:25:36 +01:00
Dave Syer
bc48a0094e Revert to snapshots 2016-02-05 10:02:47 +00:00
Dave Syer
203d9cc4f2 Update to 1.1.0.M5 2016-02-05 09:56:38 +00:00
Dave Syer
9bfe364518 SamplerConfiguration -> SamplerProperties
Plus tidy up docs a bit
2016-02-02 16:15:35 +00:00
Dave Syer
70b18054e1 Add Span to Sampler method params
Also allows us to actually create a PercentageBasedSampler (I
don't think anyone tried it before) without resorting to
lazy beans and proxies.

Another freature added here is a default percentage sampler
if we know that spans need to be exported (zipkin or stream
is present).

Fixes gh-138
2016-02-01 17:00:00 +00:00
Dave Syer
78365fe3c3 Fix test that fails because we asert a duration 2016-01-28 12:04:56 +00:00
Dave Syer
0c5c984e4a Use accumulated millisecs instead of computing span duration 2016-01-26 13:53:44 +00:00
Adrian Cole
ef7e70dde3 Prefers the word event when adding to a Span's timeline
Span.logs are really timestamped events. This clarifies the naming and
documentation around that.
2016-01-25 11:24:07 +01:00
Adrian Cole
763d2d027c Updates to latest zipkin, which encourages new http tags 2016-01-25 10:51:05 +01:00
Adrian Cole
9417110e90 Changes http key delimiter to dot and adds size keys 2016-01-23 17:28:12 +01:00
Marcin Grzejszczak
301c6b230a [#99] Basic Health Metrics
Changes following review
    - Reusing CounterService to automatically profit from Dropwizard if present
    - NoOp is the default impl for SpanReporterService
    - SpanReporterService has configurable metric names (it's enough to change the
    name to 'meter.a.b.c' to profit from Dropwizard's meters)

    Fixes gh-99
2016-01-21 15:55:26 +01:00
Marcin Grzejszczak
7b6a533498 Fixed checkstyle issues 2016-01-20 12:36:38 +01:00
Marcin Grzejszczak
d5b523d021 Converted MilliSpan to Span. Removed the interface 2016-01-20 10:52:02 +01:00
Marcin Grzejszczak
797ca4f50c Removed Trace 2016-01-20 10:50:43 +01:00
Adrian Cole
9bcab5b0c6 Updates to zipkin-java 0.4.3 2016-01-20 12:22:18 +08:00
Marcin Grzejszczak
6b88e97b9c TraceManager -> Tracer; startSpan -> startTrace 2016-01-19 09:02:09 +01:00
Marcin Grzejszczak
82ed9f78a1 [#106] Converted UUID to Long
- Changed Random instantiation to a shared Random
- Changed the name of the converter
- Changed generator into random
- Span id is now non-nullable.
    - it gets generated in the http filter if it's not there
    - it's generated in the spring-integration channels if it wasn't set
2016-01-18 14:38:09 +01:00
Adrian Cole
a3af9de4dd Makes it possible to supply an https zipkin endpoint 2016-01-14 22:31:06 +08:00
Adrian Cole
779b32b363 Introduces HttpZipkinSpanReporter
Brave's span collector, which turned out to not be a great tool for
direct use. Brave internally creates spans before sending to its
collector, so validation is implicit. The flip side of this is using the
collector directly does not validate spans. This means it is easy to
send invalid ones, for example missing span names. The problem is more
difficult as the data is in binary (thrift).

This introduces HttpZipkinSpanReporter, which validates via zipkin-java
classes before sending on the wire. Moreover, this sends in json to make
debugging problems easier.

This does not fully remove the Brave dependency, as further work is
needed. Particularly, Brave is indirectly referenced in other code.

See https://github.com/openzipkin/zipkin-java/issues/68
See #98 (Reporter is an OpenTracing term)
2016-01-14 12:41:59 +01:00
Adrian Cole
425123df86 Updates to zipkin-java 0.4.1, particularly docker images
Zipkin 0.4.1 obviates some duplication of configuration. It is also the
first version that's published as a docker image.

By switching to the published image of zipkin-java, we can be more
consistent, as `spring-cloud-sleuth-zipkin-stream` is derived from that,
not the scala query service.
2016-01-14 11:06:19 +08:00
Dave Syer
368d1ccae7 Rename some of the core API concepts
E.g. annotation -> tag, timelineAnnotation -> log

See gh-98
2016-01-12 17:39:58 +00:00
Marcin Grzejszczak
33fda076ad Updated with Adrian's changes 2016-01-12 16:28:21 +01:00
Adrian Cole
84d2706a57 Updates to latest zipkin and brave, removing Scribe dependency
Recent versions of zipkin and brave operate with http instead of scribe.
This changes the implementation accordingly, as well adds a sampler to
the POST endpoint.

A notable impact is that we no longer require a collector process, as
the zipkin server's POST endpoint is a collector.
2016-01-12 21:58:48 +08:00
Marcin Grzejszczak
877f401231 Unified test naming 2016-01-11 17:52:16 +01:00
Marcin Grzejszczak
9a8dc17d8c [#89] Initial approach to the integration tests
- Fixed the tests
- Updated surefire
- Added integration tests (for the moment ignored)
- Fixed wrong surefire setup
2016-01-08 19:09:37 +01:00
Marcin Grzejszczak
334bc7fdf7 Avoiding NPE in DiscoveryClientEndpointLocator 2015-12-30 16:35:57 +01:00
Adrian Cole
1991bb40c9 Merge pull request #74 from spring-cloud/zipkin-bump
Bumps to latest zipkin and hints about JAVA_OPTS in docker
2015-12-30 09:11:34 +08:00
Adrian Cole
b6e9a8bcac Bumps to latest zipkin and hints about JAVA_OPTS in docker 2015-12-29 17:54:17 +08:00
Adrian Cole
e3669417dd Fixes missing zipkin service name and polishes span converters.
Missing service name:

Zipkin service names were logged as null, which is invalid and led to
them showing up as "unknown" in the zipkin ui. This was due to a wiring
bug, and a special-case, which this change fixes.

The special-case was when a sleuth span had no annotations. Since zipkin
service names are attached to annotations, they are only queryable when
annotations exist. When there are no annotations, we add the "lc"
binary annotation, which makes that span attached to the correct service
in zipkin.

Polishing:

Zipkin timestamps were not always set as microseconds. This fixes that.

The de-facto label in zipkin for unknown service is "unknown". This
fixes the code, which formerly fell back to "application".

This also removes complexity in assigning timestamp and duration as we
no longer need to make pseudo-annotations "acquire" and "release".

Finally, this adds tests about above consistently to both scs-zipkin and
scs-zipkin-stream.
2015-12-29 17:10:16 +08:00
Dave Syer
ff3c39e497 Revert to snapshots 2015-12-23 09:22:21 +00:00
Dave Syer
3b0ff4b4c5 Update to 1.0.0.M4 2015-12-23 09:12:22 +00:00
Dave Syer
c11e530560 Add exportable to Span and use it to determine if data are exported
If the flag is set then annotations are collected and the data are exported
in zipkin or stream. If not you still get the correlation ids, so a purely
log-oriented solution will always have useful data on all requests.
2015-12-22 11:19:24 +00:00
Marcin Grzejszczak
8469a4e425 [#73] Added Fallback for enpoint locating. FIxes #73 2015-12-17 18:00:40 +01:00
Adrian Cole
1ec5d4f636 Cleans up unused brave refs and consolidates to zipkin docker 1.26.0 2015-12-16 11:11:09 +08:00
Dave Syer
ffa97c1f20 Big refactor of sleuth core API
Instrumentation should be able to get by with only 2
interfaces: TraceManager and TraceAccessor (the former is
not needed if you aren't starting a new Span). No explicit
access to thread locals or manipulation of thread context
is required (except locally where necessary).

A Span is enclosed by a Trace (actually a view of the complete
Trace that would be constructed remotely).
2015-12-01 14:06:04 +00:00
Adrian Cole
87ff492f2d Updates to latest zipkin/brave
Zipkin now has Span.timestamp/duration, so no more need for
"aquire/release".

This also corrects the host/endpoint logged for timeline annotations, as
it should always be the local process.
2015-11-19 11:16:59 -08:00
Dave Syer
7d3668b23f Revert to snapshots 2015-11-17 12:36:46 +00:00
Dave Syer
576424a514 Update to 1.0.0.M3 2015-11-17 12:34:31 +00:00
Dave Syer
d9bf984e5f Add spring-cloud-sleuth-stream 2015-10-12 11:09:08 +01:00