override protected final def clientId()

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
    }
  }