Skip to content

Commit

Permalink
Merge pull request quarkusio#8581 from Ladicek/fix-jaeger-metrics-in-…
Browse files Browse the repository at this point in the history
…native

fix Jaeger metrics initialization
  • Loading branch information
geoand authored Apr 15, 2020
2 parents 91ad128 + 4bab9db commit fe07f6e
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ void setupTracer(JaegerDeploymentRecorder jdr, JaegerBuildTimeConfig buildTimeCo
if (buildTimeConfig.enabled) {
boolean metricsEnabled = capabilities.isCapabilityPresent(Capabilities.METRICS);

jdr.registerTracer(jaeger, appConfig, metricsEnabled);
if (metricsEnabled) {
jdr.registerTracerWithMetrics(jaeger, appConfig);
} else {
jdr.registerTracerWithoutMetrics(jaeger, appConfig);
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

import org.jboss.logging.Logger;

import io.jaegertracing.internal.metrics.NoopMetricsFactory;
import io.jaegertracing.spi.MetricsFactory;
import io.opentracing.util.GlobalTracer;
import io.quarkus.runtime.ApplicationConfig;
import io.quarkus.runtime.annotations.Recorder;
Expand All @@ -15,7 +17,15 @@ public class JaegerDeploymentRecorder {
private static final Optional UNKNOWN_SERVICE_NAME = Optional.of("quarkus/unknown");
private static final QuarkusJaegerTracer quarkusTracer = new QuarkusJaegerTracer();

synchronized public void registerTracer(JaegerConfig jaeger, ApplicationConfig appConfig, boolean metricsEnabled) {
synchronized public void registerTracerWithoutMetrics(JaegerConfig jaeger, ApplicationConfig appConfig) {
registerTracer(jaeger, appConfig, new NoopMetricsFactory());
}

synchronized public void registerTracerWithMetrics(JaegerConfig jaeger, ApplicationConfig appConfig) {
registerTracer(jaeger, appConfig, new QuarkusJaegerMetricsFactory());
}

private void registerTracer(JaegerConfig jaeger, ApplicationConfig appConfig, MetricsFactory metricsFactory) {
if (!jaeger.serviceName.isPresent()) {
if (appConfig.name.isPresent()) {
jaeger.serviceName = appConfig.name;
Expand All @@ -24,7 +34,7 @@ synchronized public void registerTracer(JaegerConfig jaeger, ApplicationConfig a
}
}
initTracerConfig(jaeger);
quarkusTracer.setMetricsEnabled(metricsEnabled);
quarkusTracer.setMetricsFactory(metricsFactory);
quarkusTracer.reset();
// register Quarkus tracer to GlobalTracer.
// Usually the tracer will be registered only here, although consumers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import io.jaegertracing.Configuration;
import io.jaegertracing.internal.JaegerTracer;
import io.jaegertracing.internal.metrics.NoopMetricsFactory;
import io.jaegertracing.spi.MetricsFactory;
import io.opentracing.ScopeManager;
import io.opentracing.Span;
Expand All @@ -16,14 +15,14 @@ public class QuarkusJaegerTracer implements Tracer {
private volatile JaegerTracer tracer;

private boolean logTraceContext;
private boolean metricsEnabled;
private MetricsFactory metricsFactory;

void setLogTraceContext(boolean logTraceContext) {
this.logTraceContext = logTraceContext;
}

void setMetricsEnabled(boolean metricsEnabled) {
this.metricsEnabled = metricsEnabled;
void setMetricsFactory(MetricsFactory metricsFactory) {
this.metricsFactory = metricsFactory;
}

@Override
Expand All @@ -42,9 +41,6 @@ private Tracer tracer() {
if (tracer == null) {
synchronized (this) {
if (tracer == null) {
MetricsFactory metricsFactory = metricsEnabled
? new QuarkusJaegerMetricsFactory()
: new NoopMetricsFactory();
tracer = Configuration.fromEnv()
.withMetricsFactory(metricsFactory)
.getTracerBuilder()
Expand Down

0 comments on commit fe07f6e

Please sign in to comment.