From a3a97f3ea97201ff32ebb4868dbcd13b3c095230 Mon Sep 17 00:00:00 2001 From: jif-oai Date: Tue, 20 Jan 2026 13:01:55 +0000 Subject: [PATCH] feat: record timer with additional tags (#9529) --- codex-rs/otel/src/metrics/timer.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/codex-rs/otel/src/metrics/timer.rs b/codex-rs/otel/src/metrics/timer.rs index 6c85f413b..86712f6a0 100644 --- a/codex-rs/otel/src/metrics/timer.rs +++ b/codex-rs/otel/src/metrics/timer.rs @@ -12,7 +12,7 @@ pub struct Timer { impl Drop for Timer { fn drop(&mut self) { - if let Err(e) = self.record() { + if let Err(e) = self.record(&[]) { tracing::error!("metrics client error: {}", e); } } @@ -31,12 +31,10 @@ impl Timer { } } - pub fn record(&self) -> Result<()> { - let tags = self - .tags - .iter() - .map(|(k, v)| (k.as_str(), v.as_str())) - .collect::>(); + pub fn record(&self, additional_tags: &[(&str, &str)]) -> Result<()> { + let mut tags = Vec::with_capacity(self.tags.len() + additional_tags.len()); + tags.extend(additional_tags); + tags.extend(self.tags.iter().map(|(k, v)| (k.as_str(), v.as_str()))); self.client .record_duration(&self.name, self.start_time.elapsed(), &tags) }