mononoke/lfs_server: add request id to logger

Summary: This adds the request_id to our request slog logger. This is nicer because it lets us tie logs for a given request together.

Reviewed By: HarveyHunt

Differential Revision: D17526490

fbshipit-source-id: c6a57828a097f96b0e752373b98a1ea834009f95
This commit is contained in:
Thomas Orozco 2019-09-23 07:56:36 -07:00 committed by Facebook Github Bot
parent 7afc953929
commit af0ed3ca9f

View File

@ -15,11 +15,11 @@ use futures_util::{
compat::{Future01CompatExt, Stream01CompatExt},
TryStreamExt,
};
use gotham::state::{FromState, State};
use gotham::state::{request_id, FromState, State};
use gotham_derive::StateData;
use http::uri::{Authority, Parts, PathAndQuery, Scheme, Uri};
use hyper::{Body, Request};
use slog::Logger;
use slog::{o, Logger};
use blobrepo::BlobRepo;
use context::CoreContext;
@ -73,19 +73,27 @@ impl LfsServerContext {
})
}
pub fn request(&self, repository: String) -> Result<RepositoryRequestContext, Error> {
pub fn request(
&self,
repository: String,
request_id: &str,
) -> Result<RepositoryRequestContext, Error> {
let inner = self.inner.lock().expect("poisoned lock");
match inner.repositories.get(&repository) {
Some(repo) => Ok(RepositoryRequestContext {
ctx: CoreContext::new_with_logger(self.fb, inner.logger.clone()),
repo: repo.clone(),
uri_builder: UriBuilder {
repository,
server: inner.server.clone(),
},
client: inner.client.clone(),
}),
Some(repo) => {
let logger = inner.logger.new(o!("request_id" => request_id.to_string()));
Ok(RepositoryRequestContext {
ctx: CoreContext::new_with_logger(self.fb, logger),
repo: repo.clone(),
uri_builder: UriBuilder {
repository,
server: inner.server.clone(),
},
client: inner.client.clone(),
})
}
None => Err(ErrorKind::RepositoryDoesNotExist(repository).into()),
}
}
@ -110,7 +118,7 @@ impl RepositoryRequestContext {
}
let lfs_ctx = LfsServerContext::borrow_from(&state);
lfs_ctx.request(repository)
lfs_ctx.request(repository, request_id(&state))
}
pub async fn dispatch(&self, request: Request<Body>) -> Result<Body, Error> {