diff options
Diffstat (limited to 'crates/phone-opus/src/mcp/telemetry.rs')
| -rw-r--r-- | crates/phone-opus/src/mcp/telemetry.rs | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/crates/phone-opus/src/mcp/telemetry.rs b/crates/phone-opus/src/mcp/telemetry.rs index 8df0009..5b91d78 100644 --- a/crates/phone-opus/src/mcp/telemetry.rs +++ b/crates/phone-opus/src/mcp/telemetry.rs @@ -84,11 +84,7 @@ impl ServerTelemetry { self.totals.success_count += 1; let entry = self.methods.entry(operation.to_owned()).or_default(); entry.success_count += 1; - entry.total_latency_ms = entry - .total_latency_ms - .saturating_add(u128::from(latency_ms)); - entry.max_latency_ms = entry.max_latency_ms.max(latency_ms); - entry.last_latency_ms = Some(latency_ms); + record_latency_sample(entry, latency_ms); entry.last_error = None; } @@ -123,11 +119,7 @@ impl ServerTelemetry { } else { entry.response_error_count += 1; } - entry.total_latency_ms = entry - .total_latency_ms - .saturating_add(u128::from(latency_ms)); - entry.max_latency_ms = entry.max_latency_ms.max(latency_ms); - entry.last_latency_ms = Some(latency_ms); + record_latency_sample(entry, latency_ms); entry.last_error = Some(fault.message().to_owned()); } @@ -211,6 +203,14 @@ impl ServerTelemetry { } } +fn record_latency_sample(stats: &mut MethodStats, latency_ms: u64) { + stats.total_latency_ms = stats + .total_latency_ms + .saturating_add(u128::from(latency_ms)); + stats.max_latency_ms = stats.max_latency_ms.max(latency_ms); + stats.last_latency_ms = Some(latency_ms); +} + fn average_latency_ms(stats: &MethodStats) -> u64 { if stats.request_count == 0 { return 0; |