mirror of
https://github.com/astral-sh/uv.git
synced 2025-08-04 19:08:04 +00:00
Better tracing span (#513)
This will help us get better insight into what is happening and how long it takes. I'm particularly interested in how long the different source dist steps take (download, extract, build step(s)), to make better decisions about their caching, which i want to report through tracing. Example output: ```console $ RUST_LOG=puffin=info cargo run --bin puffin -q -- pip-compile -v --no-cache scripts/requirements/all-kinds.in > /dev/null puffin_distribution::source_dist::download_source_dist filename="werkzeug-3.0.1.tar.gz", source_dist=werkzeug @ff1904eb5e/werkzeug-3.0.1.tar.gz
puffin_dispatch::build_source source_dist="werkzeug @ff1904eb5e/werkzeug-3.0.1.tar.gz
", subdirectory=None puffin_build::extract_archive sdist="werkzeug-3.0.1.tar.gz" puffin_dispatch::resolve requirements="flit-core <4" puffin_dispatch::install requirements="flit-core ==3.9.0", venv="/tmp/.tmpgZAEAh/.venv" puffin_build::get_requires_for_build_wheel name="build_wheel", python_version=3.12 puffin_build::build package_id="werkzeug @ff1904eb5e/werkzeug-3.0.1.tar.gz
" puffin_build::run_python_script name="build_wheel", python_version=3.12 puffin_dispatch::build_source source_dist="pydantic-extra-types @ git+https://github.com/pydantic/pydantic-extra-types.git@843b753e9e8cb74e83cac55598719b39a4d5ef1f", subdirectory=None puffin_dispatch::resolve requirements="hatchling" puffin_dispatch::install requirements="hatchling ==1.18.0, trove-classifiers ==2023.11.22, editables ==0.5, pathspec ==0.11.2, pluggy ==1.3.0, packaging ==23.2", venv="/tmp/.tmpJjweUn/.venv" puffin_build::get_requires_for_build_wheel name="build_wheel", python_version=3.12 puffin_build::build package_id="pydantic-extra-types @ git+https://github.com/pydantic/pydantic-extra-types.git@843b753e9e8cb74e83cac55598719b39a4d5ef1f" puffin_build::run_python_script name="build_wheel", python_version=3.12 puffin_distribution::source_dist::download_source_dist filename="django-allauth-0.51.0.tar.gz", source_dist=django-allauth==0.51.0 puffin_dispatch::build_source source_dist="django-allauth==0.51.0", subdirectory=None puffin_build::extract_archive sdist="django-allauth-0.51.0.tar.gz" puffin_dispatch::resolve requirements="wheel, setuptools, pip" puffin_dispatch::install requirements="setuptools ==69.0.2, pip ==23.3.1, wheel ==0.42.0", venv="/tmp/.tmplSZisu/.venv" puffin_build::build package_id="django-allauth==0.51.0" Resolved 35 packages in 11.71s ```
This commit is contained in:
parent
46c26108df
commit
2539f00952
5 changed files with 46 additions and 16 deletions
|
@ -14,7 +14,7 @@ use tempfile::TempDir;
|
|||
use thiserror::Error;
|
||||
use tokio::task::JoinError;
|
||||
use tokio_util::compat::FuturesAsyncReadCompatExt;
|
||||
use tracing::debug;
|
||||
use tracing::{debug, info_span};
|
||||
use url::Url;
|
||||
use zip::ZipArchive;
|
||||
|
||||
|
@ -242,7 +242,10 @@ impl<'a, T: BuildContext> SourceDistCachedBuilder<'a, T> {
|
|||
.reporter
|
||||
.as_ref()
|
||||
.map(|reporter| reporter.on_build_start(source_dist));
|
||||
let span =
|
||||
info_span!("download_source_dist", filename = filename, source_dist = %source_dist);
|
||||
let (temp_dir, sdist_file) = self.download_source_dist_url(response, filename).await?;
|
||||
drop(span);
|
||||
|
||||
let download = SourceDistDownload {
|
||||
dist: source_dist.clone(),
|
||||
|
@ -315,7 +318,10 @@ impl<'a, T: BuildContext> SourceDistCachedBuilder<'a, T> {
|
|||
.send()
|
||||
.await
|
||||
.map_err(puffin_client::Error::RequestMiddlewareError)?;
|
||||
let span =
|
||||
info_span!("download_source_dist", filename = filename, source_dist = %source_dist);
|
||||
let (temp_dir, sdist_file) = self.download_source_dist_url(response, filename).await?;
|
||||
drop(span);
|
||||
let (_wheel_dir, disk_filename, wheel_filename, metadata) = self
|
||||
.build_source_dist(source_dist, temp_dir, &sdist_file, subdirectory)
|
||||
.await
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue