mirror of
https://github.com/openai/codex.git
synced 2026-10-31 19:28:49 +00:00
Add optional process metrics sampling for code-mode hosts (#57841)
## What changed - Add `GetProcessMetrics` and provider sampling APIs for process ID, start time, cumulative CPU time, and resident memory, exposed through `ThreadManager` without creating a thread or session. - Distinguish unsupported collection, a locally absent host, and sampling failures. Process-owned providers never start or replace a host when sampling. - Bound gRPC sampling to one second without retries or explicit connection resets. Run optional collectors on a detached worker with at most one collection in flight, so stalled collection cannot block the HTTP/2 driver or runtime shutdown. ## Testing Add coverage for snapshots, collector errors and panics, deadlines, overload, and shutdown with a stuck collector. Extend lifecycle tests to check that sampling preserves session state and keepalive behavior without starting or restarting local hosts. GitOrigin-RevId: eeafe275891d0464636f28a29345a87aed1a12dc
This commit is contained in:
@@ -715,6 +715,18 @@ impl ThreadManager {
|
||||
self
|
||||
}
|
||||
|
||||
/// Samples host metrics without creating a Codex thread or code-mode session.
|
||||
/// Process-owned providers observe existing children; custom providers retain
|
||||
/// their transport's connection policy.
|
||||
pub async fn sample_code_mode_process_metrics(
|
||||
&self,
|
||||
) -> Result<codex_code_mode::CodeModeProcessMetricsSample, String> {
|
||||
self.state
|
||||
.code_mode_session_provider
|
||||
.sample_process_metrics()
|
||||
.await
|
||||
}
|
||||
|
||||
/// Replaces the process-wide provider before this manager is shared with threads.
|
||||
pub fn with_code_mode_session_provider(
|
||||
mut self,
|
||||
|
||||
Reference in New Issue
Block a user