mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
feat(usage): record request origin metadata (#362)
Record client IP and User-Agent in usage request_metadata for local execution requests without adding schema, API, or table fields. References #357 and supersedes #358. Co-authored-by: RWDai <27391645+RWDai@users.noreply.github.com>
This commit is contained in:
@@ -49,7 +49,10 @@ use crate::handlers::shared::{
|
||||
local_proxy_route_requires_buffered_body, request_enables_control_execute,
|
||||
should_strip_forwarded_provider_credential_header, should_strip_forwarded_trusted_admin_header,
|
||||
};
|
||||
use crate::headers::{extract_or_generate_trace_id, should_skip_request_header};
|
||||
use crate::headers::{
|
||||
extract_or_generate_trace_id, request_origin_from_headers_and_remote_addr,
|
||||
should_skip_request_header,
|
||||
};
|
||||
use crate::router::RequestAdmissionError;
|
||||
use crate::{
|
||||
AppState, FrontdoorUserRpmOutcome, GatewayError, GatewayFallbackMetricKind,
|
||||
@@ -707,7 +710,13 @@ pub(crate) async fn proxy_request(
|
||||
)) => return Err(GatewayError::Internal(message)),
|
||||
};
|
||||
let request_admission_ms = started_at.elapsed().as_millis() as u64;
|
||||
let (parts, body) = request.into_parts();
|
||||
let (mut parts, body) = request.into_parts();
|
||||
parts
|
||||
.extensions
|
||||
.insert(request_origin_from_headers_and_remote_addr(
|
||||
&parts.headers,
|
||||
&remote_addr,
|
||||
));
|
||||
let trace_id = extract_or_generate_trace_id(&parts.headers);
|
||||
state.clear_local_execution_runtime_miss_diagnostic(&trace_id);
|
||||
if request_hits_execution_loop_guard(&parts) {
|
||||
|
||||
Reference in New Issue
Block a user