Skip to content

Commit

Permalink
Let indy client be able to use existed TraceManager for unified traci…
Browse files Browse the repository at this point in the history
…ng context
  • Loading branch information
ligangty committed Sep 6, 2023
1 parent e96b240 commit cb42c3a
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 11 deletions.
10 changes: 10 additions & 0 deletions core-java/src/main/java/org/commonjava/indy/client/core/Indy.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.commonjava.indy.inject.IndyVersioningProvider;
import org.commonjava.indy.model.core.io.IndyObjectMapper;
import org.commonjava.indy.stats.IndyVersioning;
import org.commonjava.o11yphant.trace.TraceManager;
import org.commonjava.o11yphant.trace.TracerConfiguration;
import org.commonjava.util.jhttpc.auth.PasswordManager;
import org.commonjava.util.jhttpc.model.SiteConfig;
Expand Down Expand Up @@ -214,6 +215,8 @@ public static final class Builder

private TracerConfiguration existedTraceConfig;

private TraceManager existedTraceManager;

private Builder()
{
}
Expand Down Expand Up @@ -255,6 +258,12 @@ public Builder setExistedTraceConfig( TracerConfiguration existedTraceConfig )
return this;
}

public Builder setExistedTraceManager( TraceManager traceManager )
{
this.existedTraceManager = traceManager;
return this;
}

public Builder setAuthenticator( IndyClientAuthenticator authenticator )
{
this.authenticator = authenticator;
Expand Down Expand Up @@ -283,6 +292,7 @@ public Indy build()
.setLocation( this.location )
.setPasswordManager( this.passwordManager )
.setExistedTraceConfig( this.existedTraceConfig )
.setExistedTraceManager( this.existedTraceManager )
.setMdcCopyMappings( this.mdcCopyMappings )
.setObjectMapper( this.objectMapper )
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import org.commonjava.indy.model.core.ArtifactStore;
import org.commonjava.indy.model.core.io.IndyObjectMapper;
import org.commonjava.o11yphant.jhttpc.SpanningHttpFactory;
import org.commonjava.o11yphant.trace.TraceManager;
import org.commonjava.o11yphant.trace.TracerConfiguration;
import org.commonjava.util.jhttpc.HttpFactory;
import org.commonjava.util.jhttpc.HttpFactoryIfc;
Expand Down Expand Up @@ -167,6 +168,8 @@ public static final class Builder

private TracerConfiguration existedTraceConfig;

private TraceManager existedTraceManager;

private Map<String, String> mdcCopyMappings;

private Builder()
Expand Down Expand Up @@ -209,6 +212,11 @@ public Builder setExistedTraceConfig( TracerConfiguration existedTraceConfig )
return this;
}

public Builder setExistedTraceManager( TraceManager traceManager )
{
this.existedTraceManager = traceManager;
return this;
}

public Builder setMdcCopyMappings( Map<String, String> mdcCopyMappings )
{
Expand Down Expand Up @@ -250,7 +258,11 @@ public IndyClientHttp build()
}

ClientMetricManager metricManager;
if ( this.existedTraceConfig != null )
if ( this.existedTraceManager != null )
{
metricManager = new ClientMetricManager( this.existedTraceManager );
}
else if ( this.existedTraceConfig != null )
{
metricManager = new ClientMetricManager( this.existedTraceConfig );
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@

import static org.apache.commons.lang3.StringUtils.isBlank;

@SuppressWarnings( { "rawtypes", "unused" } )
@SuppressWarnings( { "unused" } )
public class ClientMetricManager
{

Expand All @@ -55,11 +55,23 @@ public ClientMetricManager()

public ClientMetricManager( SiteConfig siteConfig )
{
this.configuration = buildConfig( siteConfig );
buildConfig( siteConfig );
buildTraceManager();
}

public ClientMetricManager( TracerConfiguration existedTraceConfig )
{
buildTraceConfig( existedTraceConfig );
buildTraceManager();
}

public ClientMetricManager( TraceManager traceManager )
{
buildTraceConfig( traceManager.getConfig() );
this.traceManager = traceManager;
}

private void buildTraceConfig( TracerConfiguration existedTraceConfig )
{
this.configuration = new ClientTracerConfiguration();
this.configuration.setEnabled( existedTraceConfig.isEnabled() );
Expand All @@ -75,7 +87,6 @@ public ClientMetricManager( TracerConfiguration existedTraceConfig )
this.configuration.setGrpcHeaders( existedOtelConfig.getGrpcHeaders() );
this.configuration.setGrpcResources( existedOtelConfig.getResources() );
}
buildTraceManager();
}

private void buildTraceManager()
Expand All @@ -89,7 +100,7 @@ private void buildTraceManager()
}
this.traceManager = new TraceManager( plugin, new SpanFieldsDecorator(
Collections.singletonList( new ClientGoldenSignalsSpanFieldsInjector( metricSet ) ) ),
configuration );
configuration );
}
}

Expand All @@ -101,12 +112,11 @@ public ClientMetrics register( HttpUriRequest request )
return new ClientMetrics( configuration.isEnabled(), request, functions, metricSet );
}

private ClientTracerConfiguration buildConfig( SiteConfig siteConfig )
private void buildConfig( SiteConfig siteConfig )
{
ClientTracerConfiguration config = new ClientTracerConfiguration();
config.setEnabled( siteConfig.isMetricEnabled() );
config.setBaseSampleRate( siteConfig.getBaseSampleRate() );
return config;
this.configuration = new ClientTracerConfiguration();
this.configuration.setEnabled( siteConfig.isMetricEnabled() );
this.configuration.setBaseSampleRate( siteConfig.getBaseSampleRate() );
}

private String getEndpointName( String method, String pathInfo )
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
<jhttpcVersion>1.12</jhttpcVersion>
<atlasVersion>1.1.1</atlasVersion>

<o11yphantVersion>1.9</o11yphantVersion>
<o11yphantVersion>1.9.1-SNAPSHOT</o11yphantVersion>
<httpclientVersion>4.5.9</httpclientVersion>
<slf4jVersion>1.7.36</slf4jVersion>
<commonsioVersion>2.11.0</commonsioVersion>
Expand Down

0 comments on commit cb42c3a

Please sign in to comment.