Alek's Blog
Blog post cover image

AWFFull 4.0.0 — Modernising a 2008 Web Log Analyser

AWFFull 4.0.0 brings a long-overdue overhaul to a C-based web server log analyser forked from Webalizer: PCRE2 replaces EOL libpcre, libmaxminddb replaces the deprecated GeoIP .dat format, new ASN statistics show traffic by network operator, and optional Intel Hyperscan, mimalloc, and XXH3 deliver measurable performance gains on large logs. The release also adds a full GitLab CI/CD pipeline, .deb/.rpm packages, a multi-stage container image, updated browser and bot detection lists, and 100%-complete translations for 6 languages.

AWFFull 4.0.0 — Modernising a 2008 Web Log Analyser
Blog post cover image

AWFFull in the Cloud: Shipping Logs to Object Storage and Running in Containers

A practical guide to shipping web server access logs to AWS S3 or Azure Blob Storage using Fluent Bit, Vector, or Filebeat/Logstash — including persistent buffering, retry configuration, concurrent write safety, and log loss prevention. Covers running AWFFull as a stateless container against object storage logs and serving the generated reports as a static website.

AWFFull in the Cloud: Shipping Logs to Object Storage and Running in Containers
Diagram: OpenShift Route and Router directing client requests to a specific pod via a session cookie for sticky sessions, bypassing the Service

Session stickiness in OpenShift

How OpenShift and Kubernetes handle session stickiness via HAProxy cookie-based routing.

Session stickiness in OpenShift
Blog post cover image

Building a native file upload handler for Caddy v2

How I built caddyv2-upload, a native file upload handler for Caddy v2 written in Go — the problem it solves, and how it works.

Building a native file upload handler for Caddy v2
Rust programming language logo

loadgen-rs (Short): Results, Quick Start, and Tool Choice

A short version of the loadgen-rs article: what it does, benchmark highlights vs h2load, when to choose which tool, and how to start quickly in single-node and distributed mode.

loadgen-rs (Short): Results, Quick Start, and Tool Choice
Rust programming language logo

loadgen-rs: An HTTP Benchmark Client in Rust

How I built an HTTP benchmark client in Rust that supports HTTP/1.1, HTTP/2, and HTTP/3 — machine-readable output, distributed multi-node mode, Terraform/Ansible cloud deployment, and what CPU profiling revealed about the performance ceiling.

loadgen-rs: An HTTP Benchmark Client in Rust