Skip to main content

vtcode_core/tools/registry/
metrics_facade.rs

1//! Metrics-related accessors for ToolRegistry.
2
3use super::ToolRegistry;
4
5impl ToolRegistry {
6    /// Return the shared metrics collector for this registry instance.
7    pub fn metrics_collector(&self) -> std::sync::Arc<crate::metrics::MetricsCollector> {
8        self.metrics.clone()
9    }
10
11    /// Get total tool calls made in current session (for observability).
12    pub fn tool_call_count(&self) -> u64 {
13        self.tool_call_counter
14            .load(std::sync::atomic::Ordering::Relaxed)
15    }
16
17    /// Get total PTY poll iterations (for CPU monitoring).
18    pub fn pty_poll_count(&self) -> u64 {
19        self.pty_poll_counter
20            .load(std::sync::atomic::Ordering::Relaxed)
21    }
22
23    /// Increment tool call counter (should be called by tool executors).
24    #[expect(dead_code)]
25    pub(crate) fn increment_tool_calls(&self) {
26        self.tool_call_counter
27            .fetch_add(1, std::sync::atomic::Ordering::Relaxed);
28    }
29
30    /// Increment PTY poll counter (called by PTY polling loop).
31    #[expect(dead_code)]
32    pub(crate) fn increment_pty_polls(&self) {
33        self.pty_poll_counter
34            .fetch_add(1, std::sync::atomic::Ordering::Relaxed);
35    }
36}