mirror of
https://github.com/openai/codex.git
synced 2026-11-07 20:30: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:
@@ -20,7 +20,7 @@ use tonic::transport::server::Connected;
|
||||
|
||||
use crate::GrpcCodeModeHost;
|
||||
|
||||
pub(crate) async fn run() -> Result<()> {
|
||||
pub(crate) async fn run(host: GrpcCodeModeHost) -> Result<()> {
|
||||
let closed = CancellationToken::new();
|
||||
let connection = StdioConnection {
|
||||
io: tokio::io::join(tokio::io::stdin(), tokio::io::stdout()),
|
||||
@@ -31,7 +31,7 @@ pub(crate) async fn run() -> Result<()> {
|
||||
.chain(futures::stream::pending());
|
||||
let server = Server::builder()
|
||||
.add_service(
|
||||
CodeModeHostServer::new(GrpcCodeModeHost::new())
|
||||
CodeModeHostServer::new(host)
|
||||
.max_decoding_message_size(MAX_FRAME_BYTES)
|
||||
.max_encoding_message_size(MAX_FRAME_BYTES),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user