Skip to content

Commit 145fe46

Browse files
committed
feat: write request_id to clickhouse stats
1 parent 5bcf13b commit 145fe46

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

crates/http-service/src/lib.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ where
166166
let request_id = remote_traceparent(&req);
167167
async move {
168168
self_
169-
.handle_request(req)
169+
.handle_request(&request_id, req)
170170
.instrument(tracing::info_span!("http_handler", request_id))
171171
.await
172172
}
@@ -179,6 +179,7 @@ where
179179
/// handle HTTP request.
180180
async fn handle_request<B>(
181181
&self,
182+
request_id: &str,
182183
mut request: Request<B>,
183184
) -> Result<Response<BoxBody<Bytes, hyper::Error>>>
184185
where
@@ -289,6 +290,7 @@ where
289290
billing_plan: cfg.plan.to_string(),
290291
time_elapsed: time_elapsed.as_micros() as u64,
291292
memory_used: memory_used.as_u64(),
293+
request_id: request_id.to_string(),
292294
..Default::default()
293295
};
294296
self.context.write_stats(stat_row).await;
@@ -372,12 +374,13 @@ where
372374
billing_plan: cfg.plan.to_string(),
373375
time_elapsed: time_elapsed.as_micros() as u64,
374376
memory_used: 0,
377+
request_id: request_id.to_string(),
375378
..Default::default()
376379
};
377380
self.context.write_stats(stat_row).await;
378381
}
379382
#[cfg(not(feature = "stats"))]
380-
tracing::debug!(?fail_reason, "stats");
383+
tracing::debug!(?fail_reason, request_id, "stats");
381384

382385
#[cfg(feature = "metrics")]
383386
metrics::metrics(fail_reason);
@@ -399,7 +402,7 @@ fn remote_traceparent(req: &Request<hyper::body::Incoming>) -> String {
399402
req.headers()
400403
.get(TRACEPARENT)
401404
.and_then(|v| v.to_str().ok())
402-
.map(|s| s.to_owned())
405+
.map(|s| s.to_string())
403406
.unwrap_or(nanoid::nanoid!())
404407
}
405408

@@ -709,7 +712,7 @@ mod tests {
709712
let http_service: HttpService<TestContext> =
710713
assert_ok!(ServiceBuilder::new(context).build());
711714

712-
let res = assert_ok!(http_service.handle_request(req).await);
715+
let res = assert_ok!(http_service.handle_request("1",req).await);
713716
assert_eq!(StatusCode::OK, res.status());
714717
let headers = res.headers();
715718
assert_eq!(4, headers.len());
@@ -758,7 +761,7 @@ mod tests {
758761
let http_service: HttpService<TestContext> =
759762
assert_ok!(ServiceBuilder::new(context).build());
760763

761-
let res = assert_ok!(http_service.handle_request(req).await);
764+
let res = assert_ok!(http_service.handle_request("2", req).await);
762765
assert_eq!(FASTEDGE_EXECUTION_TIMEOUT, res.status());
763766
let headers = res.headers();
764767
assert_eq!(3, headers.len());
@@ -806,7 +809,7 @@ mod tests {
806809
let http_service: HttpService<TestContext> =
807810
assert_ok!(ServiceBuilder::new(context).build());
808811

809-
let res = assert_ok!(http_service.handle_request(req).await);
812+
let res = assert_ok!(http_service.handle_request("3",req).await);
810813
assert_eq!(FASTEDGE_OUT_OF_MEMORY, res.status());
811814
let headers = res.headers();
812815
assert_eq!(3, headers.len());
@@ -839,7 +842,7 @@ mod tests {
839842

840843
let http_service: HttpService<TestContext> =
841844
assert_ok!(ServiceBuilder::new(context).build());
842-
let res = assert_ok!(http_service.handle_request(req).await);
845+
let res = assert_ok!(http_service.handle_request("4", req).await);
843846
assert_eq!(StatusCode::NOT_FOUND, res.status());
844847
assert_eq!(0, res.headers().len());
845848
}
@@ -865,7 +868,7 @@ mod tests {
865868

866869
let http_service: HttpService<TestContext> =
867870
assert_ok!(ServiceBuilder::new(context).build());
868-
let res = assert_ok!(http_service.handle_request(req).await);
871+
let res = assert_ok!(http_service.handle_request("5", req).await);
869872
assert_eq!(StatusCode::NOT_FOUND, res.status());
870873
assert_eq!(0, res.headers().len());
871874
}
@@ -891,7 +894,7 @@ mod tests {
891894

892895
let http_service: HttpService<TestContext> =
893896
assert_ok!(ServiceBuilder::new(context).build());
894-
let res = assert_ok!(http_service.handle_request(req).await);
897+
let res = assert_ok!(http_service.handle_request("6", req).await);
895898
assert_eq!(StatusCode::TOO_MANY_REQUESTS, res.status());
896899
assert_eq!(0, res.headers().len());
897900
}
@@ -917,7 +920,7 @@ mod tests {
917920

918921
let http_service: HttpService<TestContext> =
919922
assert_ok!(ServiceBuilder::new(context).build());
920-
let res = assert_ok!(http_service.handle_request(req).await);
923+
let res = assert_ok!(http_service.handle_request("7", req).await);
921924
assert_eq!(StatusCode::NOT_ACCEPTABLE, res.status());
922925
assert_eq!(0, res.headers().len());
923926
}

crates/runtime/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ impl Default for WasmConfig {
207207
pooling_allocation_config.max_memories_per_module(1);
208208

209209
// allow for up to 128MiB of linear memory. Wasm pages are 64k
210-
pooling_allocation_config.memory_pages(256 * (MB as u64) / (64 * 1024));
210+
pooling_allocation_config.memory_pages(128 * (MB as u64) / (64 * 1024));
211211

212212
// Core wasm programs have 1 table
213213
pooling_allocation_config.max_tables_per_module(1);

crates/runtime/src/util/stats.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ pub struct StatRow {
1717
pub memory_used: u64,
1818
pub pop: String,
1919
pub region: String,
20+
pub request_id: String,
2021
}
2122

2223
#[cfg(not(feature = "stats"))]

0 commit comments

Comments
 (0)