
What it is
Source: This site’s own code, for the rebuild. Date: Helloworld Travel, January to June 2026; the rebuild, this build of the site. Scope: What LogLens is and how it was used. The rebuild below shares no code with the production tool and runs on logs generated at build time. Not shown: The production tool, its logs and the size of its effect on incidents (the employer’s).
LogLens is a high-performance parser for Nginx and HAProxy logs, which I built at Helloworld Travel. Shipped I built it for request correlation: following one request through both logs.
What it does
- Parsing. It turns raw Nginx and HAProxy log lines into structured records.
- Request correlation. It reads a request’s HAProxy line and Nginx line as one thread.
- Shorter incidents. It reduced the time to detect and to resolve production incidents. The size of the reduction is the employer’s. Reported
How it is built
LogLens has a Web Worker architecture. The rebuild on this page is a clean-room TypeScript version that shares no code with it. A Web Worker parses the sample and a canvas draws the two logs as lanes. The sample is one synthetic hour of 200,000 lines, with no real traffic. Built
Stack. Web Workers
Where it stands
The team at Helloworld adopted LogLens for daily use. Shipped The tool and its logs are the employer’s, so the rebuild below is what can be shown here.
My part
I built LogLens as Technical Business Analyst and Product Engineer in Helloworld’s Wholesale Business Systems team. Shipped
Each mark is a request placed by time and latency. Hold or tap a mark to pick a request and follow it across both lanes; the arrow keys step through the rows, Shift with an arrow key steps 250 rows at a time. The picked request is read out under the lanes and listed in a table below the stage.
LogLens
Nginx and HAProxy logs, parsed in your browser
Not parsed yet
The sample is parsed in a background thread in your browser as soon as this stage is in view.
Hold or tap a mark to pick one request and follow it across both lanes.
- lines a second
- 0
- lines parsed
- 0
- requests in both layers
- 0
- status 500 and above
- 0
| Layer | Time | Request | Status | Latency | Request id |
|---|
Clean-room re-implementation on synthetic logs generated at build time. The production tool is Helloworld’s. The meter is your machine’s speed, measured now.
Claim
At Helloworld I built LogLens, a high-performance tool that parses Nginx and HAProxy logs and lets an engineer follow one request across both. The team adopted it for daily use. It reduced the time to detect and the time to resolve production incidents; those deltas are the employer’s and are not shown here. Built
What runs below is a clean-room re-implementation on synthetic logs; the production tool is Helloworld’s. The sample is generated at build time, so nothing in it is real traffic. The meter is your machine’s speed, measured now, not a benchmark of the production tool.
Method
Source: This page’s code. Date: This build. Scope: How the instrument on this page works. It is not a description of the production tool’s internals.
Architecture. The page hands the sample to a Web Worker so the parse never blocks scrolling. The worker reads the sample line by line, recognises the two formats, and sends parsed rows back to the page, which keeps a lines-per-second meter running while it does.
Drawing. A canvas draws two lanes, Nginx on the left and HAProxy on the right. Holding on the stage picks the request id under the pointer and draws its correlation thread across the lanes, which is the whole point of the tool: one request, both sides, one line. On touch the lanes stack vertically with a 44 px scrubber.
What the production tool does that this cannot. Parse Helloworld’s real Nginx and HAProxy logs, for a team that adopted it for daily use. None of that is here, and this instrument measures none of it.
Benchmark note. The meter is measured in your browser each time the sample is parsed; different machines give different numbers. It is on the page because a parser’s claim is only honest with its throughput on the table, and it is a figure about this page on your machine, not about my work.
Raw
Source: This page. Date: Generated at build time. Scope: A synthetic sample in Nginx and HAProxy formats. No real traffic, hosts or users.
Every parsed row in the instrument sits on top of the line it came from. Select a row and the raw line appears beneath it, exactly as the parser received it, so a parse you doubt can be checked against its source. The instrument’s copy button copies the sample’s raw lines, so you can run them through anything else.
Screenshots of the production tool would go here, and only with the employer’s permission.
