the-algorithm/src/java/com/twitter/search/earlybird_root/filters/RequestContextToEarlybirdRequestFilter.java
twitter-team ef4c5eb65e Twitter Recommendation Algorithm
Please note we have force-pushed a new initial commit in order to remove some publicly-available Twitter user information. Note that this process may be required in the future.
2023-03-31 17:36:31 -05:00

34 lines
1.2 KiB
Java

package com.twitter.search.earlybird_root.filters;
import java.util.concurrent.TimeUnit;
import com.twitter.finagle.Filter;
import com.twitter.finagle.Service;
import com.twitter.search.common.metrics.SearchTimerStats;
import com.twitter.search.earlybird.thrift.EarlybirdRequest;
import com.twitter.search.earlybird.thrift.EarlybirdResponse;
import com.twitter.search.earlybird_root.common.EarlybirdRequestContext;
import com.twitter.util.Future;
/**
* A filter for transforming a RequestContext to an EarlybirdRequest.
*/
public class RequestContextToEarlybirdRequestFilter extends
Filter<EarlybirdRequestContext, EarlybirdResponse, EarlybirdRequest, EarlybirdResponse> {
private static final SearchTimerStats REQUEST_CONTEXT_TRIP_TIME =
SearchTimerStats.export("request_context_trip_time", TimeUnit.MILLISECONDS, false,
true);
@Override
public Future<EarlybirdResponse> apply(
EarlybirdRequestContext requestContext,
Service<EarlybirdRequest, EarlybirdResponse> service) {
long tripTime = System.currentTimeMillis() - requestContext.getCreatedTimeMillis();
REQUEST_CONTEXT_TRIP_TIME.timerIncrement(tripTime);
return service.apply(requestContext.getRequest());
}
}