Commit Graph

29 Commits

Author SHA1 Message Date
Marcin Grzejszczak
6e306e594d Abstract tracer implementations via an API (#1757)
Spring Cloud Sleuth currently is an autoconfiguration over Brave. It also consists of various instrumentation mechanisms for libraries that are not supported by Brave (e.g. Spring Cloud Circuitbreaker).

We would like to abstract Brave so that Spring Cloud Sleuth becomes an autoconfiguration for any tracer implementation that is compatible with Spring Cloud Sleuth. That way Spring Cloud Sleuth in its core module would consist of an API and various tracer implementations would implement that API which would also allow automatic instrumentation of libraries that are supported by Spring Cloud Sleuth.

## OpenTelemetry Support

Thanks to doing this abstraction we are able to support new tracer implementations, not only Brave. We've decided to add support for the OpenTelemetry SDK as the second one. If in the future if we decide to add new tracers then it will be just a matter of adding a new module that bridges to the Spring Cloud Sleuth one. Thanks to abstraction of tests as well we will be easily able to plug that tracer mechanism into our current suite of tests.
2020-10-23 08:50:23 +02:00
buildmaster
f6608cd27f Going back to snapshots 2020-10-03 14:19:22 +00:00
buildmaster
bc5668b96d Update SNAPSHOT to 3.0.0-M4 2020-10-03 14:18:00 +00:00
buildmaster
dca561e4e8 Going back to snapshots 2020-07-23 18:49:08 +00:00
buildmaster
f352801918 Update SNAPSHOT to 3.0.0-M3 2020-07-23 18:47:48 +00:00
Marcin Grzejszczak
bd149ce4a7 Improvement with Reactor instrumentation
- adds Spring Cloud Function instrumentation
- adds Operators to manually provide instrumentation for Fluxes
- introduces Manual instrumentation mode for Reactor

TODO: Documentation (will add it soon)

related gh-1684
2020-07-21 19:06:55 +02:00
buildmaster
93ea0d6b00 Going back to snapshots 2020-05-29 19:03:35 +00:00
buildmaster
640faa7c30 Update SNAPSHOT to 3.0.0-M2 2020-05-29 19:02:42 +00:00
buildmaster
d41d75a3eb Bumping versions 2020-04-17 14:53:39 +00:00
buildmaster
08a575141d Going back to snapshots 2020-04-09 22:48:15 +00:00
buildmaster
66b540f0b9 Update SNAPSHOT to 3.0.0.M1 2020-04-09 22:47:21 +00:00
Marcin Grzejszczak
3813cf9dd4 Removes modules in maintenance more.
Zuul, ribbon and hystrix
2020-02-12 11:03:04 +01:00
Adrian Cole
8866b84906 Cleanups of build including upgrade of Brave (#1530)
In efforts to dig deep into benchmarks, I noticed we were a bit out of
date on Brave. Then, noticed some other artifacts could be bumped
safely. Finally, a find/replace on http/https was over zealous and
tripped up XML.

One change to test expectations and Brave is explained here:
https://github.com/openzipkin/brave/blob/master/instrumentation/RATIONALE.md#calling-spanfinish-while-the-context-is-in-scope
2020-01-21 09:44:08 +01:00
buildmaster
1c4a3da588 Bumping versions to 2.2.2.BUILD-SNAPSHOT after release 2019-12-20 13:48:43 +00:00
buildmaster
ac6dff3407 Going back to snapshots 2019-12-20 13:48:43 +00:00
buildmaster
c71d6ff0e2 Update SNAPSHOT to 2.2.1.RELEASE 2019-12-20 13:46:45 +00:00
buildmaster
9ca94951ec Bumping versions to 2.2.1.BUILD-SNAPSHOT after release 2019-11-26 10:35:52 +00:00
buildmaster
830f300ca9 Going back to snapshots 2019-11-26 10:35:52 +00:00
buildmaster
312f87cd23 Update SNAPSHOT to 2.2.0.RELEASE 2019-11-26 10:34:27 +00:00
buildmaster
99ebccf97c Going back to snapshots 2019-11-10 00:19:36 +00:00
buildmaster
10e6f9a705 Update SNAPSHOT to 2.2.0.RC2 2019-11-10 00:18:38 +00:00
buildmaster
b4b597872f Going back to snapshots 2019-10-24 21:05:59 +00:00
buildmaster
d972a87338 Update SNAPSHOT to 2.2.0.RC1 2019-10-24 21:05:02 +00:00
buildmaster
9361cf2017 Going back to snapshots 2019-10-03 20:06:35 +00:00
buildmaster
365a1c60f0 Update SNAPSHOT to 2.2.0.M3 2019-10-03 20:05:37 +00:00
Adrian Cole
be5fa04118 Updates to latest Sampling infrastructure (#1456)
* Updates to latest Sampling infrastructure

Brave recently switched to an interface model for higher level sampling
like HTTP. So, `HttpSampler` -> `SamplingFunction<HttpRequest>`. Don't
worry because `HttpSampler` was retrofitted as a `SamplingFunction`.

This change moves to the higher interface, avoiding deprecated methods
and such. More interestingly, this weaves in support for `RpcTracing`,
which *finally* introduces RPC sampling the same way. Specifically, this
adds `SamplingFunction<RpcRequest>` under the same conventions as HTTP.

Most immediately, this can be used here in gRPC and Dubbo, as
autoconfiguration exists. It also works with any autoconfiguration that
isn't here, such as Armeria.

Ex. Here's a sampler that traces 100 "GetUserToken" requests per second. This
doesn't start new traces for requests to the health check service. Other
requests will use a global rate provided by the tracing component.

```java
import static brave.rpc.RpcRequestMatchers.methodEquals;
import static brave.rpc.RpcRequestMatchers.serviceEquals;
import static brave.sampler.Matchers.and;

--snip--
@Bean(name = ServerSampler.NAME)
SamplerFunction<RpcRequest> myRpcSampler() {
  Matcher<RpcRequest> userAuth = and(
      serviceEquals("users.UserService"),
      methodEquals("GetUserToken")
  );
  return RpcRuleSampler.newBuilder()
      .putRule(serviceEquals("grpc.health.v1.Health"), Sampler.NEVER_SAMPLE)
      .putRule(userAuth, RateLimitingSampler.create(100)).build();
}
```
2019-10-03 12:21:56 +02:00
buildmaster
40a5333e56 Going back to snapshots 2019-08-14 15:47:10 +00:00
buildmaster
4884f0f78c Update SNAPSHOT to 2.2.0.M2 2019-08-14 15:45:31 +00:00
Marcin Grzejszczak
e6b78d267f Migrates tests to separate modules (#1395)
fixes #1394
2019-07-08 13:36:20 +02:00