Skip to content

Commit ec83d01

Browse files
author
twitter-team
committed
Remove stats collection code measuring how often Tweets from specific user groups are served
1 parent 64e7548 commit ec83d01

File tree

5 files changed

+3
-66
lines changed

5 files changed

+3
-66
lines changed

home-mixer/server/src/main/scala/com/twitter/home_mixer/functional_component/decorator/HomeTweetTypePredicates.scala

+1-24
Original file line numberDiff line numberDiff line change
@@ -220,30 +220,7 @@ object HomeTweetTypePredicates {
220220
_.getOrElse(ConversationModule2DisplayedTweetsFeature, false)),
221221
("conversation_module_has_gap", _.getOrElse(ConversationModuleHasGapFeature, false)),
222222
("served_in_recap_tweet_candidate_module_injection", _ => false),
223-
("served_in_threaded_conversation_module", _ => false),
224-
(
225-
"author_is_elon",
226-
candidate =>
227-
candidate
228-
.getOrElse(AuthorIdFeature, None).contains(candidate.getOrElse(DDGStatsElonFeature, 0L))),
229-
(
230-
"author_is_power_user",
231-
candidate =>
232-
candidate
233-
.getOrElse(AuthorIdFeature, None)
234-
.exists(candidate.getOrElse(DDGStatsVitsFeature, Set.empty[Long]).contains)),
235-
(
236-
"author_is_democrat",
237-
candidate =>
238-
candidate
239-
.getOrElse(AuthorIdFeature, None)
240-
.exists(candidate.getOrElse(DDGStatsDemocratsFeature, Set.empty[Long]).contains)),
241-
(
242-
"author_is_republican",
243-
candidate =>
244-
candidate
245-
.getOrElse(AuthorIdFeature, None)
246-
.exists(candidate.getOrElse(DDGStatsRepublicansFeature, Set.empty[Long]).contains)),
223+
("served_in_threaded_conversation_module", _ => false)
247224
)
248225

249226
val PredicateMap = CandidatePredicates.toMap

home-mixer/server/src/main/scala/com/twitter/home_mixer/functional_component/feature_hydrator/RequestQueryFeatureHydrator.scala

+1-23
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
package com.twitter.home_mixer.functional_component.feature_hydrator
22

3-
import com.twitter.config.yaml.YamlMap
43
import com.twitter.finagle.tracing.Annotation.BinaryAnnotation
54
import com.twitter.finagle.tracing.ForwardAnnotation
65
import com.twitter.home_mixer.model.HomeFeatures._
76
import com.twitter.home_mixer.model.request.DeviceContext.RequestContext
87
import com.twitter.home_mixer.model.request.HasDeviceContext
9-
import com.twitter.home_mixer.param.HomeMixerInjectionNames.DDGStatsAuthors
108
import com.twitter.joinkey.context.RequestJoinKeyContext
119
import com.twitter.product_mixer.component_library.model.cursor.UrtOrderedCursor
1210
import com.twitter.product_mixer.core.feature.Feature
@@ -24,22 +22,16 @@ import com.twitter.snowflake.id.SnowflakeId
2422
import com.twitter.stitch.Stitch
2523
import java.util.UUID
2624
import javax.inject.Inject
27-
import javax.inject.Named
2825
import javax.inject.Singleton
2926

3027
@Singleton
3128
class RequestQueryFeatureHydrator[
3229
Query <: PipelineQuery with HasPipelineCursor[UrtOrderedCursor] with HasDeviceContext] @Inject() (
33-
@Named(DDGStatsAuthors) ddgStatsAuthors: YamlMap)
34-
extends QueryFeatureHydrator[Query] {
30+
) extends QueryFeatureHydrator[Query] {
3531

3632
override val features: Set[Feature[_, _]] = Set(
3733
AccountAgeFeature,
3834
ClientIdFeature,
39-
DDGStatsDemocratsFeature,
40-
DDGStatsRepublicansFeature,
41-
DDGStatsElonFeature,
42-
DDGStatsVitsFeature,
4335
DeviceLanguageFeature,
4436
GetInitialFeature,
4537
GetMiddleFeature,
@@ -59,10 +51,6 @@ class RequestQueryFeatureHydrator[
5951
override val identifier: FeatureHydratorIdentifier = FeatureHydratorIdentifier("Request")
6052

6153
private val DarkRequestAnnotation = "clnt/has_dark_request"
62-
private val Democrats = "democrats"
63-
private val Republicans = "republicans"
64-
private val Elon = "elon"
65-
private val Vits = "vits"
6654

6755
// Convert Language code to ISO 639-3 format
6856
private def getLanguageISOFormatByCode(languageCode: String): String =
@@ -83,16 +71,6 @@ class RequestQueryFeatureHydrator[
8371
val featureMap = FeatureMapBuilder()
8472
.add(AccountAgeFeature, query.getOptionalUserId.flatMap(SnowflakeId.timeFromIdOpt))
8573
.add(ClientIdFeature, query.clientContext.appId)
86-
/**
87-
* These author ID lists are used purely for metrics collection. We track how often we are
88-
* serving Tweets from these authors and how often their tweets are being impressed by users.
89-
* This helps us validate in our A/B experimentation platform that we do not ship changes
90-
* that negatively impacts one group over others.
91-
*/
92-
.add(DDGStatsDemocratsFeature, ddgStatsAuthors.longSeq(Democrats).toSet)
93-
.add(DDGStatsRepublicansFeature, ddgStatsAuthors.longSeq(Republicans).toSet)
94-
.add(DDGStatsVitsFeature, ddgStatsAuthors.longSeq(Vits).toSet)
95-
.add(DDGStatsElonFeature, ddgStatsAuthors.longValue(Elon))
9674
.add(DeviceLanguageFeature, query.getLanguageCode.map(getLanguageISOFormatByCode))
9775
.add(
9876
GetInitialFeature,

home-mixer/server/src/main/scala/com/twitter/home_mixer/model/HomeFeatures.scala

-4
Original file line numberDiff line numberDiff line change
@@ -176,10 +176,6 @@ object HomeFeatures {
176176
override def personalDataTypes: Set[pd.PersonalDataType] = Set(pd.PersonalDataType.ClientType)
177177
}
178178
object CachedScoredTweetsFeature extends Feature[PipelineQuery, Seq[hmt.CachedScoredTweet]]
179-
object DDGStatsElonFeature extends Feature[PipelineQuery, Long]
180-
object DDGStatsVitsFeature extends Feature[PipelineQuery, Set[Long]]
181-
object DDGStatsDemocratsFeature extends Feature[PipelineQuery, Set[Long]]
182-
object DDGStatsRepublicansFeature extends Feature[PipelineQuery, Set[Long]]
183179
object DeviceLanguageFeature extends Feature[PipelineQuery, Option[String]]
184180
object DismissInfoFeature
185181
extends FeatureWithDefaultOnFailure[PipelineQuery, Map[st.SuggestType, Option[DismissInfo]]] {
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,5 @@
11
package com.twitter.home_mixer.module
22

3-
import com.google.inject.Provides
4-
import com.twitter.config.yaml.YamlMap
5-
import com.twitter.home_mixer.param.HomeMixerInjectionNames.DDGStatsAuthors
63
import com.twitter.inject.TwitterModule
7-
import javax.inject.Named
8-
import javax.inject.Singleton
94

10-
object HomeMixerResourcesModule extends TwitterModule {
11-
12-
private val AuthorsFile = "/config/authors.yml"
13-
14-
@Provides
15-
@Singleton
16-
@Named(DDGStatsAuthors)
17-
def providesDDGStatsAuthors(): YamlMap = YamlMap.load(AuthorsFile)
18-
}
5+
object HomeMixerResourcesModule extends TwitterModule {}

home-mixer/server/src/main/scala/com/twitter/home_mixer/param/HomeMixerInjectionNames.scala

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ object HomeMixerInjectionNames {
44
final val AuthorFeatureRepository = "AuthorFeatureRepository"
55
final val CandidateFeaturesScribeEventPublisher = "CandidateFeaturesScribeEventPublisher"
66
final val CommonFeaturesScribeEventPublisher = "CommonFeaturesScribeEventPublisher"
7-
final val DDGStatsAuthors = "DDGStatsAuthors"
87
final val EarlybirdRepository = "EarlybirdRepository"
98
final val EngagementsReceivedByAuthorCache = "EngagementsReceivedByAuthorCache"
109
final val GraphTwoHopRepository = "GraphTwoHopRepository"

0 commit comments

Comments
 (0)