Skip to content
This repository has been archived by the owner on Jul 1, 2022. It is now read-only.

Commit

Permalink
Define some classes internal
Browse files Browse the repository at this point in the history
Moved everything into internal packages, except for a few selected classes.
Most of the interfaces were moved to the SPI package.

Signed-off-by: Juraci Paixão Kröhling <juraci@kroehling.de>
  • Loading branch information
jpkrohling committed Jul 4, 2018
1 parent 46b64d5 commit dfb9d8b
Show file tree
Hide file tree
Showing 156 changed files with 590 additions and 482 deletions.
55 changes: 30 additions & 25 deletions jaeger-core/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,26 +19,36 @@ sending data to a backend, like [`io.jaegertracing:jaeger-thrift`](../jaeger-thr

### Production

Tracer can be created via `io.jaegertracing.JaegerTracer.Builder` or `io.jaegertracing.Configuration`.
For production it is recommended to use both classes with default values.

`Tracer.Builder` example:
A tracer instance can be obtained via the `io.jaegertracing.Configuration` object. In the general
case, the most appropriate way is to get a tracer that is configured based on environment variables, like:

```java
Tracer tracer = new Tracer.Builder("myServiceName").build()
Tracer tracer = Configuration.fromEnv().getTracer();
```

`Configuration` holds only primitive values and it is designed to be used with configuration
files or when configuration is provided in environmental variables.
If a more complex customization is required, the builder pattern can be used, like:

```java
Configuration config = new Configuration("myServiceName")
.withReporter(...); // optional if you want to get metrics about tracer behavior
CodecConfiguration codecConfiguration = new CodecConfiguration()
.withCodec(Builtin.HTTP_HEADERS, codec1)
.withCodec(Builtin.HTTP_HEADERS, codec2);

Configuration configuration = new Configuration("foo")
.withCodec(codecConfiguration);

Tracer tracer = config.getTracer();
Tracer tracer = configuration.getTracer();
```

The `config` objects lazily builds and configures Jaeger Tracer. Multiple calls to `getTracer()` return the same instance.
Multiple calls to `Configuration#getTracer()` result in the same tracer instance.

For more advanced cases, direct access to `io.jaegertracing.internal.JaegerTracer.Builder` might
be required. Note that this class is not part of the public API and its usage should be avoided.

A tracer instance can be obtained from `JaegerTracer.Builder` like:

```java
Tracer tracer = new JaegerTracer.Builder("myServiceName").build()
```

##### B3 propagation
Jaeger Tracer can also work in the environment where B3 propagation is used. This is mostly related
Expand All @@ -50,23 +60,18 @@ uses `baggage-` prefix.
Example configuration:
```java
b3Codec = new B3TextMapCodec();
tracer = new Tracer.Builder(serviceName)
tracer = new JaegerTracer.Builder(serviceName)
.registerInjector(Format.Builtin.HTTP_HEADERS, b3Codec)
.registerExtractor(Format.Builtin.HTTP_HEADERS, b3Codec)
...
```

#### Configuration via Environment

It is also possible to obtain a `io.jaegertracing.Configuration` object configured using properties specified
as environment variables or system properties. A value specified as a system property will override a value
specified as an environment variable for the same property name.
When obtaining a tracer instance using the `io.jaegertracing.Configuration#fromEnv()` method, values specified
via system properties (`-DJAEGER_SERVICE_NAME=foo`) will override values specified via environment variables.

```java
Configuration config = Configuration.fromEnv();
```

The property names are:
The following property names are available:

Property | Required | Description
--- | --- | ---
Expand Down Expand Up @@ -107,7 +112,7 @@ More information about using the `TracerResolver` can be found [here](../jaeger-

#### Reporting internal metrics via Micrometer

The Jaeger Java Client collects internal metrics and is able to report them via [Micrometer](http://micrometer.io).
The Jaeger Java Client collects *internal* metrics and is able to report them via [Micrometer](http://micrometer.io).
To accomplish that, include the artifact `io.jaegertracing:jaeger-micrometer` as a dependency to your project. The
integration should be done automatically via the service loader.

Expand All @@ -117,9 +122,9 @@ If you prefer a manual configuration, it can be done with a code similar to this
MicrometerMetricsFactory metricsReporter = new MicrometerMetricsFactory();
Configuration configuration = new Configuration("myServiceName");
Tracer tracer = configuration
.getTracerBuilder()
.withMetrics(new io.jaegertracing.metrics.Metrics(metricsReporter))
.build();
.getTracerBuilder()
.withMetricsFactory(metricsReporter)
.build();
```

### Development
Expand All @@ -130,7 +135,7 @@ spans in memory:
```java
Reporter reporter = new InMemoryReporter();
Sampler sampler = new ConstSampler(true);
Tracer tracer = new Tracer.Builder(serviceName)
Tracer tracer = new JaegerTracer.Builder(serviceName)
.withReporter(reporter)
.withSampler(sampler)
.build();
Expand Down
42 changes: 21 additions & 21 deletions jaeger-core/src/main/java/io/jaegertracing/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,27 @@

package io.jaegertracing;

import io.jaegertracing.metrics.Metrics;
import io.jaegertracing.metrics.MetricsFactory;
import io.jaegertracing.metrics.NoopMetricsFactory;
import io.jaegertracing.propagation.B3TextMapCodec;
import io.jaegertracing.propagation.Codec;
import io.jaegertracing.propagation.CompositeCodec;
import io.jaegertracing.propagation.TextMapCodec;
import io.jaegertracing.reporters.CompositeReporter;
import io.jaegertracing.reporters.LoggingReporter;
import io.jaegertracing.reporters.RemoteReporter;
import io.jaegertracing.reporters.Reporter;
import io.jaegertracing.samplers.ConstSampler;
import io.jaegertracing.samplers.HttpSamplingManager;
import io.jaegertracing.samplers.ProbabilisticSampler;
import io.jaegertracing.samplers.RateLimitingSampler;
import io.jaegertracing.samplers.RemoteControlledSampler;
import io.jaegertracing.samplers.Sampler;
import io.jaegertracing.senders.Sender;
import io.jaegertracing.senders.SenderFactory;
import io.jaegertracing.senders.SenderResolver;
import io.opentracing.Tracer;
import io.jaegertracing.internal.JaegerTracer;
import io.jaegertracing.internal.metrics.Metrics;
import io.jaegertracing.internal.metrics.NoopMetricsFactory;
import io.jaegertracing.internal.propagation.B3TextMapCodec;
import io.jaegertracing.internal.propagation.CompositeCodec;
import io.jaegertracing.internal.propagation.TextMapCodec;
import io.jaegertracing.internal.reporters.CompositeReporter;
import io.jaegertracing.internal.reporters.LoggingReporter;
import io.jaegertracing.internal.reporters.RemoteReporter;
import io.jaegertracing.internal.samplers.ConstSampler;
import io.jaegertracing.internal.samplers.HttpSamplingManager;
import io.jaegertracing.internal.samplers.ProbabilisticSampler;
import io.jaegertracing.internal.samplers.RateLimitingSampler;
import io.jaegertracing.internal.samplers.RemoteControlledSampler;
import io.jaegertracing.internal.senders.SenderResolver;
import io.jaegertracing.spi.Codec;
import io.jaegertracing.spi.MetricsFactory;
import io.jaegertracing.spi.Reporter;
import io.jaegertracing.spi.Sampler;
import io.jaegertracing.spi.Sender;
import io.jaegertracing.spi.SenderFactory;
import io.opentracing.propagation.Format;
import io.opentracing.propagation.TextMap;
import java.text.NumberFormat;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing;
package io.jaegertracing.internal;

public class Constants {
// TODO these should be configurable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing;
package io.jaegertracing.internal;

import io.opentracing.Span;
import io.opentracing.log.Fields;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
* the License.
*/

package io.jaegertracing;
package io.jaegertracing.internal;

import io.jaegertracing.exceptions.EmptyTracerStateStringException;
import io.jaegertracing.exceptions.MalformedTracerStateStringException;
import io.jaegertracing.internal.exceptions.EmptyTracerStateStringException;
import io.jaegertracing.internal.exceptions.MalformedTracerStateStringException;
import io.opentracing.SpanContext;
import java.math.BigInteger;
import java.util.Collections;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,28 +12,28 @@
* the License.
*/

package io.jaegertracing;

import io.jaegertracing.baggage.BaggageRestrictionManager;
import io.jaegertracing.baggage.BaggageSetter;
import io.jaegertracing.baggage.DefaultBaggageRestrictionManager;
import io.jaegertracing.exceptions.EmptyIpException;
import io.jaegertracing.exceptions.NotFourOctetsException;
import io.jaegertracing.exceptions.UnsupportedFormatException;
import io.jaegertracing.metrics.Metrics;
import io.jaegertracing.metrics.MetricsFactory;
import io.jaegertracing.metrics.NoopMetricsFactory;
import io.jaegertracing.propagation.Extractor;
import io.jaegertracing.propagation.Injector;
import io.jaegertracing.propagation.TextMapCodec;
import io.jaegertracing.reporters.RemoteReporter;
import io.jaegertracing.reporters.Reporter;
import io.jaegertracing.samplers.RemoteControlledSampler;
import io.jaegertracing.samplers.Sampler;
import io.jaegertracing.samplers.SamplingStatus;
import io.jaegertracing.utils.Clock;
import io.jaegertracing.utils.SystemClock;
import io.jaegertracing.utils.Utils;
package io.jaegertracing.internal;

import io.jaegertracing.internal.baggage.BaggageSetter;
import io.jaegertracing.internal.baggage.DefaultBaggageRestrictionManager;
import io.jaegertracing.internal.exceptions.EmptyIpException;
import io.jaegertracing.internal.exceptions.NotFourOctetsException;
import io.jaegertracing.internal.exceptions.UnsupportedFormatException;
import io.jaegertracing.internal.metrics.Metrics;
import io.jaegertracing.internal.metrics.NoopMetricsFactory;
import io.jaegertracing.internal.propagation.TextMapCodec;
import io.jaegertracing.internal.reporters.RemoteReporter;
import io.jaegertracing.internal.samplers.RemoteControlledSampler;
import io.jaegertracing.internal.samplers.SamplingStatus;
import io.jaegertracing.internal.utils.Clock;
import io.jaegertracing.internal.utils.SystemClock;
import io.jaegertracing.internal.utils.Utils;
import io.jaegertracing.spi.BaggageRestrictionManager;
import io.jaegertracing.spi.Extractor;
import io.jaegertracing.spi.Injector;
import io.jaegertracing.spi.MetricsFactory;
import io.jaegertracing.spi.Reporter;
import io.jaegertracing.spi.Sampler;
import io.opentracing.References;
import io.opentracing.Scope;
import io.opentracing.ScopeManager;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing;
package io.jaegertracing.internal;

import java.util.Map;
import lombok.Getter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
* the License.
*/

package io.jaegertracing;
package io.jaegertracing.internal;

import io.jaegertracing.propagation.Extractor;
import io.jaegertracing.propagation.Injector;
import io.jaegertracing.spi.Extractor;
import io.jaegertracing.spi.Injector;
import io.opentracing.propagation.Format;
import java.util.HashMap;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing;
package io.jaegertracing.internal;

import lombok.Value;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@
* the License.
*/

package io.jaegertracing.baggage;
package io.jaegertracing.internal.baggage;

import io.jaegertracing.JaegerSpan;
import io.jaegertracing.JaegerSpanContext;
import io.jaegertracing.metrics.Metrics;
import io.jaegertracing.internal.JaegerSpan;
import io.jaegertracing.internal.JaegerSpanContext;
import io.jaegertracing.internal.metrics.Metrics;
import io.jaegertracing.spi.BaggageRestrictionManager;
import java.util.HashMap;
import java.util.Map;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,9 @@
* the License.
*/

package io.jaegertracing.baggage;
package io.jaegertracing.internal.baggage;

import io.jaegertracing.spi.BaggageRestrictionManager;

/**
* DefaultBaggageRestrictionManager is a manager that returns a {@link Restriction}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,16 @@
* the License.
*/

package io.jaegertracing.baggage;
package io.jaegertracing.internal.baggage;

import static io.jaegertracing.utils.Http.makeGetRequest;
import static io.jaegertracing.internal.utils.Http.makeGetRequest;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;
import io.jaegertracing.baggage.http.BaggageRestrictionResponse;
import io.jaegertracing.exceptions.BaggageRestrictionManagerException;
import io.jaegertracing.internal.baggage.http.BaggageRestrictionResponse;
import io.jaegertracing.internal.exceptions.BaggageRestrictionManagerException;
import io.jaegertracing.spi.BaggageRestrictionManagerProxy;
import java.io.IOException;
import java.lang.reflect.Type;
import java.net.URLEncoder;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,13 @@
* the License.
*/

package io.jaegertracing.baggage;
package io.jaegertracing.internal.baggage;

import io.jaegertracing.baggage.http.BaggageRestrictionResponse;
import io.jaegertracing.exceptions.BaggageRestrictionManagerException;
import io.jaegertracing.metrics.Metrics;
import io.jaegertracing.internal.baggage.http.BaggageRestrictionResponse;
import io.jaegertracing.internal.exceptions.BaggageRestrictionManagerException;
import io.jaegertracing.internal.metrics.Metrics;
import io.jaegertracing.spi.BaggageRestrictionManager;
import io.jaegertracing.spi.BaggageRestrictionManagerProxy;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing.baggage;
package io.jaegertracing.internal.baggage;

import lombok.Value;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing.baggage.http;
package io.jaegertracing.internal.baggage.http;

import lombok.Value;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing.utils;
package io.jaegertracing.internal.utils;

/**
* A small abstraction around system clock that aims to provide microsecond precision with the best
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing.utils;
package io.jaegertracing.internal.utils;

/**
* Default implementation of a clock that delegates its calls to the system clock. The
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing.exceptions;
package io.jaegertracing.internal.exceptions;

import java.io.IOException;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* the License.
*/

package io.jaegertracing.exceptions;
package io.jaegertracing.internal.exceptions;

public class EmptyIpException extends RuntimeException {
public EmptyIpException() {
Expand Down
Loading

0 comments on commit dfb9d8b

Please sign in to comment.