srctree

Gregory Mullen parent bc00c754 e81bc201
add rss to stats

inlinesplit
src/builtin-html/verse-stats.html added: 33, removed: 20, total 13
@@ -20,7 +20,8 @@
<th>Time</th>
<th>IP Address</th>
<th>URI</th>
<th>Size</th>
<th>Page Size</th>
<th>RSS</th>
<th>μseconds</th>
<th>User Agent</th>
</tr>
@@ -30,7 +31,8 @@
<td><Time type="usize" /></td>
<td><IpAddress /></td>
<td><Uri /></td>
<td><Size type="usize" /> </td>
<td><PageSize type="usize" /> </td>
<td><Rss type="usize" /> </td>
<td><Us type="usize" /></td>
<td><With VerseUserAgent><Name /> <Version type="?usize" /></With></td>
</tr>
 
src/http.zig added: 33, removed: 20, total 13
@@ -98,9 +98,11 @@ pub fn once(http: *HTTP, sconn: net.Server.Connection) !void {
if (srvr.stats) |*stats| {
stats.log(.{
.addr = req.remote_addr,
.page_size = 0,
.rss = arena.queryCapacity(),
.ua = req.user_agent,
.uri = req.uri,
.us = lap / 1000,
.ua = req.user_agent,
});
}
}
 
src/stats.zig added: 33, removed: 20, total 13
@@ -46,13 +46,14 @@ pub const Stats = struct {
};
 
pub const Line = struct {
number: usize,
time: u64,
addr: Addr,
size: usize,
number: usize,
page_size: usize,
rss: usize,
time: u64,
ua: ?UserAgent,
uri: Uri,
us: usize,
ua: ?UserAgent,
 
pub const Size = 2048;
// These are different because I haven't finalized the expected type
@@ -62,19 +63,22 @@ pub const Stats = struct {
pub const empty: Line = .{
.addr = .{},
.number = 0,
.size = 0,
.page_size = 0,
.rss = 0,
.time = 0,
.uri = .{},
.ua = null,
.uri = .{},
.us = 0,
};
};
 
pub const Data = struct {
addr: []const u8,
page_size: usize,
rss: usize,
ua: ?UserAgent,
uri: []const u8,
us: u64,
ua: ?UserAgent,
};
 
pub fn init(threaded: bool) Stats {
@@ -94,10 +98,11 @@ pub const Stats = struct {
stats.rows[stats.count % stats.rows.len] = .{
.addr = Line.Addr.fromSlice(data.addr[0..@min(data.addr.len, Line.Size)]) catch unreachable,
.number = stats.count,
.size = 0,
.page_size = data.page_size,
.rss = data.rss,
.time = @intCast(std.time.timestamp()),
.uri = Line.Uri.fromSlice(data.uri[0..@min(data.uri.len, Line.Size)]) catch unreachable,
.ua = data.ua,
.uri = Line.Uri.fromSlice(data.uri[0..@min(data.uri.len, Line.Size)]) catch unreachable,
.us = data.us,
};
stats.count += 1;
@@ -138,11 +143,12 @@ pub const Endpoint = struct {
.{
.ip_address = "",
.number = 0,
.size = 0,
.page_size = 0,
.rss = 0,
.time = 0,
.uri = "null",
.verse_user_agent = null,
.us = 0,
.verse_user_agent = null,
},
);
var count: usize = 0;
@@ -185,7 +191,8 @@ pub const Endpoint = struct {
data[i] = .{
.ip_address = if (include_ip) src.addr.slice() else "[redacted]",
.number = src.number,
.size = src.size,
.rss = src.rss,
.page_size = src.page_size,
.time = src.time,
.uri = src.uri.slice(),
.verse_user_agent = ua orelse .{
 
src/zwsgi.zig added: 33, removed: 20, total 13
@@ -122,9 +122,11 @@ pub fn once(z: *const zWSGI, acpt: net.Server.Connection) !void {
if (srvr.stats) |*stats| {
stats.log(.{
.addr = request.remote_addr,
.page_size = 0,
.rss = arena.queryCapacity(),
.ua = request.user_agent,
.uri = request.uri,
.us = lap,
.ua = request.user_agent,
});
}
}