mirror of
https://github.com/openai/codex.git
synced 2026-11-05 20:10:33 +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:
@@ -223,6 +223,16 @@ pub trait CodeModeSessionProvider: Send + Sync {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Observes a host without starting a session. Process-owned providers must
|
||||
/// not start or replace a host. Network providers may connect or reconnect
|
||||
/// according to their transport policy. Sampling failures and cancellation
|
||||
/// must not explicitly reset the shared execution connection.
|
||||
fn sample_process_metrics(
|
||||
&self,
|
||||
) -> CodeModeSessionResultFuture<'_, crate::CodeModeProcessMetricsSample> {
|
||||
Box::pin(async { Ok(crate::CodeModeProcessMetricsSample::Unsupported) })
|
||||
}
|
||||
|
||||
fn create_session(&self) -> CodeModeSessionProviderFuture<'_>;
|
||||
|
||||
/// Creates a session whose cells share the supplied execution limits.
|
||||
|
||||
Reference in New Issue
Block a user