Add server timing support

This commit is contained in:
2024-08-11 11:31:52 +08:00
parent 695eed54ad
commit 10eeeaf1ac
4 changed files with 41 additions and 3 deletions

View File

@@ -59,6 +59,8 @@ function handle_auth(req: Request, ctx: FreshContext) {
export async function handler(req: Request, ctx: FreshContext) {
const m = get_task_manager();
const enable_server_timing = m.cfg.enable_server_timing;
const start = enable_server_timing ? Date.now() : 0;
if (!(handle_auth(req, ctx))) {
const headers: HeadersInit = {};
const origin = req.headers.get("origin");
@@ -67,6 +69,10 @@ export async function handler(req: Request, ctx: FreshContext) {
headers["Access-Control-Allow-Origin"] = origin;
if (c) headers["Access-Control-Allow-Credentials"] = "true";
}
if (enable_server_timing) {
const end = Date.now();
headers["Server-Timing"] = `api;dur=${end - start}`;
}
return return_error(401, "Unauthorized", 401, headers);
}
const res = await ctx.next();
@@ -86,6 +92,10 @@ export async function handler(req: Request, ctx: FreshContext) {
if (c) headers.set("Access-Control-Allow-Credentials", "true");
headers.set("Access-Control-Allow-Private-Network", "true");
}
if (enable_server_timing) {
const end = Date.now();
headers.append("Server-Timing", `api;dur=${end - start}`);
}
return new Response(null, { status: 204, headers });
} else {
if (res.status === 101) return res;
@@ -118,6 +128,10 @@ export async function handler(req: Request, ctx: FreshContext) {
}
}
}
if (enable_server_timing) {
const end = Date.now();
headers.append("Server-Timing", `api;dur=${end - start}`);
}
return new Response(res.body, {
status: res.status,
headers: headers,

View File

@@ -12,6 +12,9 @@ export const handler: Handlers = {
}
const tokens = ctx.params.token.split(",");
const m = get_task_manager();
const enable_server_timing = m.cfg.enable_server_timing;
const start = enable_server_timing ? Date.now() : 0;
const headers: HeadersInit = {};
const data: EhFiles = {};
for (const token of tokens) {
data[token] = m.db.get_files(token).map((d) => {
@@ -22,6 +25,10 @@ export const handler: Handlers = {
return d;
});
}
return return_data(data);
if (enable_server_timing) {
const end = Date.now();
headers["Server-Timing"] = `db;dur=${end - start}`;
}
return return_data(data, 200, headers);
},
};