in inject/inject-thrift-client/src/main/scala/com/twitter/inject/thrift/modules/DarkTrafficFilterModuleTrait.scala [25:72]
override protected final def clientId(injector: Injector): ClientId = ClientId(clientIdFlag())
override protected def initialClientConfiguration(
injector: Injector,
client: ThriftMux.Client,
statsReceiver: StatsReceiver
): ThriftMux.Client =
super.initialClientConfiguration(injector, client, statsReceiver).withPerEndpointStats
/** Name of dark service client for use in metrics. */
def label: String = "service"
def dest: String = destFlag()
/**
* Forward the dark request after the service has processed the request
* instead of concurrently.
*/
protected def forwardAfterService: Boolean = true
override protected final def scopeStatsReceiver(
injector: Injector,
statsReceiver: StatsReceiver
): StatsReceiver = statsReceiver.scope("clnt", "dark_traffic_filter")
protected def newFilter(
dest: String,
client: ThriftMux.Client,
injector: Injector,
stats: StatsReceiver
): Filter.TypeAgnostic
@Provides
@Singleton
@DarkTrafficFilterType
def providesDarkTrafficFilter(
injector: Injector,
statsReceiver: StatsReceiver
): Filter.TypeAgnostic = {
destFlag.get match {
case Some(dest) if dest.nonEmpty =>
val client = newClient(injector, statsReceiver)
newFilter(dest, client, injector, statsReceiver)
case _ =>
Filter.TypeAgnostic.Identity
}
}