Merge branch 'pr-599'

This commit is contained in:
fawney19
2026-05-29 02:46:07 +08:00
12 changed files with 273 additions and 37 deletions
@@ -810,11 +810,11 @@ pub(crate) async fn maybe_build_local_internal_proxy_response_impl(
node_id: node_id.clone(),
heartbeat_interval: payload.heartbeat_interval,
active_connections: payload.active_connections,
total_requests_delta: payload.total_requests,
total_requests_delta: payload.window_total_requests.or(payload.total_requests),
avg_latency_ms: payload.avg_latency_ms,
failed_requests_delta: payload.failed_requests,
dns_failures_delta: payload.dns_failures,
stream_errors_delta: payload.stream_errors,
failed_requests_delta: payload.window_failed_requests.or(payload.failed_requests),
dns_failures_delta: payload.window_dns_failures.or(payload.dns_failures),
stream_errors_delta: payload.window_stream_errors.or(payload.stream_errors),
proxy_metadata: payload.proxy_metadata,
proxy_version: payload.proxy_version,
};
@@ -402,10 +402,16 @@ pub(crate) fn parse_internal_tunnel_heartbeat_request(
.is_some_and(|value| !(5..=600).contains(&value))
|| payload.active_connections.is_some_and(|value| value < 0)
|| payload.total_requests.is_some_and(|value| value < 0)
|| payload.window_total_requests.is_some_and(|value| value < 0)
|| payload.avg_latency_ms.is_some_and(|value| value < 0.0)
|| payload.failed_requests.is_some_and(|value| value < 0)
|| payload
.window_failed_requests
.is_some_and(|value| value < 0)
|| payload.dns_failures.is_some_and(|value| value < 0)
|| payload.window_dns_failures.is_some_and(|value| value < 0)
|| payload.stream_errors.is_some_and(|value| value < 0)
|| payload.window_stream_errors.is_some_and(|value| value < 0)
|| payload
.proxy_version
.as_deref()
@@ -12,14 +12,22 @@ pub(crate) struct InternalTunnelHeartbeatRequest {
#[serde(default)]
pub(crate) total_requests: Option<i64>,
#[serde(default)]
pub(crate) window_total_requests: Option<i64>,
#[serde(default)]
pub(crate) avg_latency_ms: Option<f64>,
#[serde(default)]
pub(crate) failed_requests: Option<i64>,
#[serde(default)]
pub(crate) window_failed_requests: Option<i64>,
#[serde(default)]
pub(crate) dns_failures: Option<i64>,
#[serde(default)]
pub(crate) window_dns_failures: Option<i64>,
#[serde(default)]
pub(crate) stream_errors: Option<i64>,
#[serde(default)]
pub(crate) window_stream_errors: Option<i64>,
#[serde(default)]
pub(crate) proxy_metadata: Option<serde_json::Value>,
#[serde(default)]
pub(crate) proxy_version: Option<String>,