aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart-vcs/src/driver
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-23 23:52:13 +0900
committernsfisis <nsfisis@gmail.com>2026-02-23 23:52:13 +0900
commit2622fa3089d1df249276083d157e43b080a59100 (patch)
tree43bc31546fd3c81e13e5385cbf5cac493e045691 /crates/mozart-vcs/src/driver
parentd6e0c6d34449224ac3687daf551a0acfd15cee32 (diff)
downloadphp-mozart-2622fa3089d1df249276083d157e43b080a59100.tar.gz
php-mozart-2622fa3089d1df249276083d157e43b080a59100.tar.zst
php-mozart-2622fa3089d1df249276083d157e43b080a59100.zip
feat(tracing): instrument network requests with tracing spans
Add #[tracing::instrument] and debug logs to all HTTP-calling functions in mozart-registry and mozart-vcs for request-level observability (URL, status code, cache hits, download size). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart-vcs/src/driver')
-rw-r--r--crates/mozart-vcs/src/driver/bitbucket.rs4
-rw-r--r--crates/mozart-vcs/src/driver/forgejo.rs3
-rw-r--r--crates/mozart-vcs/src/driver/github.rs4
-rw-r--r--crates/mozart-vcs/src/driver/gitlab.rs3
4 files changed, 14 insertions, 0 deletions
diff --git a/crates/mozart-vcs/src/driver/bitbucket.rs b/crates/mozart-vcs/src/driver/bitbucket.rs
index dc7d2cf..d47987d 100644
--- a/crates/mozart-vcs/src/driver/bitbucket.rs
+++ b/crates/mozart-vcs/src/driver/bitbucket.rs
@@ -62,6 +62,7 @@ impl BitbucketDriver {
)
}
+ #[tracing::instrument(skip(self))]
async fn api_get(&self, path: &str) -> Result<serde_json::Value> {
let url = self.api_url(path);
let mut req = self
@@ -76,6 +77,7 @@ impl BitbucketDriver {
}
let response = req.send().await?;
+ tracing::debug!(status = %response.status(), %url, "Bitbucket API response");
if !response.status().is_success() {
bail!(
"Bitbucket API request to {} failed: {}",
@@ -86,6 +88,7 @@ impl BitbucketDriver {
Ok(response.json().await?)
}
+ #[tracing::instrument(skip(self))]
async fn api_get_paginated(&self, path: &str) -> Result<Vec<serde_json::Value>> {
let mut items = Vec::new();
let mut next_url = Some(self.api_url(path));
@@ -101,6 +104,7 @@ impl BitbucketDriver {
req = req.header(AUTHORIZATION, format!("Basic {key}:{secret}"));
}
let response = req.send().await?;
+ tracing::debug!(status = %response.status(), %url, "Bitbucket API paginated response");
if !response.status().is_success() {
break;
}
diff --git a/crates/mozart-vcs/src/driver/forgejo.rs b/crates/mozart-vcs/src/driver/forgejo.rs
index 0447422..ec2ca14 100644
--- a/crates/mozart-vcs/src/driver/forgejo.rs
+++ b/crates/mozart-vcs/src/driver/forgejo.rs
@@ -76,6 +76,7 @@ impl ForgejoDriver {
)
}
+ #[tracing::instrument(skip(self))]
async fn api_get(&self, path: &str) -> Result<serde_json::Value> {
let url = self.api_url(path);
let mut req = self
@@ -87,6 +88,7 @@ impl ForgejoDriver {
req = req.header(AUTHORIZATION, format!("token {token}"));
}
let response = req.send().await?;
+ tracing::debug!(status = %response.status(), %url, "Forgejo API response");
if !response.status().is_success() {
bail!(
"Forgejo API request to {} failed: {}",
@@ -97,6 +99,7 @@ impl ForgejoDriver {
Ok(response.json().await?)
}
+ #[tracing::instrument(skip(self))]
async fn api_get_paginated(&self, path: &str) -> Result<Vec<serde_json::Value>> {
let mut items = Vec::new();
let mut page = 1;
diff --git a/crates/mozart-vcs/src/driver/github.rs b/crates/mozart-vcs/src/driver/github.rs
index 724cb35..c47c2fe 100644
--- a/crates/mozart-vcs/src/driver/github.rs
+++ b/crates/mozart-vcs/src/driver/github.rs
@@ -65,6 +65,7 @@ impl GitHubDriver {
)
}
+ #[tracing::instrument(skip(self))]
async fn api_get(&self, path: &str) -> Result<serde_json::Value> {
let url = self.api_url(path);
let mut req = self
@@ -78,6 +79,7 @@ impl GitHubDriver {
}
let response = req.send().await?;
+ tracing::debug!(status = %response.status(), %url, "GitHub API response");
if !response.status().is_success() {
bail!(
"GitHub API request to {} failed with status {}",
@@ -88,6 +90,7 @@ impl GitHubDriver {
Ok(response.json().await?)
}
+ #[tracing::instrument(skip(self))]
async fn api_get_paginated(&self, path: &str) -> Result<Vec<serde_json::Value>> {
let mut items = Vec::new();
let mut page = 1;
@@ -107,6 +110,7 @@ impl GitHubDriver {
}
let response = req.send().await?;
+ tracing::debug!(status = %response.status(), %url, "GitHub API paginated response");
if !response.status().is_success() {
bail!("GitHub API paginated request failed: {}", response.status());
}
diff --git a/crates/mozart-vcs/src/driver/gitlab.rs b/crates/mozart-vcs/src/driver/gitlab.rs
index 7b1a93b..f96c078 100644
--- a/crates/mozart-vcs/src/driver/gitlab.rs
+++ b/crates/mozart-vcs/src/driver/gitlab.rs
@@ -80,6 +80,7 @@ impl GitLabDriver {
)
}
+ #[tracing::instrument(skip(self))]
async fn api_get(&self, path: &str) -> Result<serde_json::Value> {
let url = self.api_url(path);
let mut req = self
@@ -93,6 +94,7 @@ impl GitLabDriver {
}
let response = req.send().await?;
+ tracing::debug!(status = %response.status(), %url, "GitLab API response");
if !response.status().is_success() {
bail!(
"GitLab API request to {} failed with status {}",
@@ -103,6 +105,7 @@ impl GitLabDriver {
Ok(response.json().await?)
}
+ #[tracing::instrument(skip(self))]
async fn api_get_paginated(&self, path: &str) -> Result<Vec<serde_json::Value>> {
let mut items = Vec::new();
let mut page = 1;