aiway_protocol/gateway/
request_log.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Default, Clone, Serialize, Deserialize)]
5pub struct RequestLog {
6 pub request_id: String,
8 pub client_ip: String,
10 #[serde(skip_serializing_if = "Option::is_none")]
12 pub client_country: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub client_province: Option<String>,
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub client_city: Option<String>,
19 #[serde(skip_serializing_if = "Option::is_none")]
21 pub host: Option<String>,
22 pub method: String,
24 pub path: String,
26 #[serde(skip_serializing_if = "Option::is_none")]
27 pub origin: Option<String>,
28 #[serde(skip_serializing_if = "Option::is_none")]
30 pub user_agent: Option<String>,
31 #[serde(skip_serializing_if = "Option::is_none")]
33 pub referer: Option<String>,
34 pub request_parts: Option<String>,
36 pub request_time: i64,
38 pub response_time: i64,
40 pub elapsed: i64,
42 pub status_code: Option<u16>,
44 #[serde(skip_serializing_if = "Option::is_none")]
46 pub content_type: Option<String>,
47 #[serde(skip_serializing_if = "Option::is_none")]
49 pub response_size: Option<usize>,
50 #[serde(skip_serializing_if = "Option::is_none")]
52 pub response_parts: Option<String>,
53 pub node_address: String,
55}