Skip to content

Commit c779ae5

Browse files
committed
Log all requests and when they finish
I hope that having this log will make it easier to track down the sporadic requests that cause the server to go down.
1 parent ea40740 commit c779ae5

File tree

6 files changed

+489
-45
lines changed

6 files changed

+489
-45
lines changed

ui/Cargo.lock

+101
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ui/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ openssl-probe = "0.1.2"
2121
orchestrator = { path = "../compiler/base/orchestrator" }
2222
prometheus = "0.13.0"
2323
regex = "1.0.0"
24+
rusqlite = { version = "0.30.0", default-features = false, features = ["bundled"] }
2425
serde = { version = "1.0", features = ["rc"] }
2526
serde_derive = "1.0"
2627
serde_json = "1.0"

ui/src/main.rs

+23-7
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const DEFAULT_PORT: u16 = 5000;
1717
mod env;
1818
mod gist;
1919
mod metrics;
20+
mod request_database;
2021
mod sandbox;
2122
mod server_axum;
2223

@@ -43,6 +44,7 @@ struct Config {
4344
gh_token: Option<String>,
4445
metrics_token: Option<String>,
4546
feature_flags: FeatureFlags,
47+
request_db_path: Option<PathBuf>,
4648
port: u16,
4749
root: PathBuf,
4850
}
@@ -98,12 +100,15 @@ impl Config {
98100

99101
let feature_flags = FeatureFlags {};
100102

103+
let request_db_path = env::var_os("PLAYGROUND_REQUEST_DATABASE").map(Into::into);
104+
101105
Self {
102106
address,
103107
cors_enabled,
104108
gh_token,
105109
metrics_token,
106110
feature_flags,
111+
request_db_path,
107112
port,
108113
root,
109114
}
@@ -129,6 +134,17 @@ impl Config {
129134
GhToken::new(&self.gh_token)
130135
}
131136

137+
fn request_database(&self) -> request_database::Database {
138+
use request_database::Database;
139+
140+
let request_db = match &self.request_db_path {
141+
Some(path) => Database::initialize(path),
142+
None => Database::initialize_memory(),
143+
};
144+
145+
request_db.expect("Unable to open request log database")
146+
}
147+
132148
fn server_socket_addr(&self) -> SocketAddr {
133149
let address = self.address.parse().expect("Invalid address");
134150
SocketAddr::new(address, self.port)
@@ -293,7 +309,7 @@ struct ErrorJson {
293309
error: String,
294310
}
295311

296-
#[derive(Debug, Clone, Deserialize)]
312+
#[derive(Debug, Clone, Serialize, Deserialize)]
297313
struct CompileRequest {
298314
target: String,
299315
#[serde(rename = "assemblyFlavor")]
@@ -324,7 +340,7 @@ struct CompileResponse {
324340
stderr: String,
325341
}
326342

327-
#[derive(Debug, Clone, Deserialize)]
343+
#[derive(Debug, Clone, Serialize, Deserialize)]
328344
struct ExecuteRequest {
329345
channel: String,
330346
mode: String,
@@ -347,7 +363,7 @@ struct ExecuteResponse {
347363
stderr: String,
348364
}
349365

350-
#[derive(Debug, Clone, Deserialize)]
366+
#[derive(Debug, Clone, Serialize, Deserialize)]
351367
struct FormatRequest {
352368
#[serde(default)]
353369
channel: Option<String>,
@@ -366,7 +382,7 @@ struct FormatResponse {
366382
stderr: String,
367383
}
368384

369-
#[derive(Debug, Clone, Deserialize)]
385+
#[derive(Debug, Clone, Serialize, Deserialize)]
370386
struct ClippyRequest {
371387
#[serde(default)]
372388
channel: Option<String>,
@@ -385,7 +401,7 @@ struct ClippyResponse {
385401
stderr: String,
386402
}
387403

388-
#[derive(Debug, Clone, Deserialize)]
404+
#[derive(Debug, Clone, Serialize, Deserialize)]
389405
struct MiriRequest {
390406
code: String,
391407
#[serde(default)]
@@ -400,7 +416,7 @@ struct MiriResponse {
400416
stderr: String,
401417
}
402418

403-
#[derive(Debug, Clone, Deserialize)]
419+
#[derive(Debug, Clone, Serialize, Deserialize)]
404420
struct MacroExpansionRequest {
405421
code: String,
406422
#[serde(default)]
@@ -462,7 +478,7 @@ struct MetaGistResponse {
462478
code: String,
463479
}
464480

465-
#[derive(Debug, Clone, Deserialize)]
481+
#[derive(Debug, Clone, Serialize, Deserialize)]
466482
struct EvaluateRequest {
467483
version: String,
468484
optimize: String,

0 commit comments

Comments
 (0)