Boring Observability

@boring-o11y.bsky.social

Developing the best background job management for Laravel. Check out https://boring-observability.dev/skyline

Requizon 1.0 is out, now with alerts. Find out if a given request is consistently failing or it’s an intermittent failure. Get alerts when APIs are down, even if the provider do not expose status page. Check the error response of a failed request. boring-observability.dev/requizon

Requizon — a dashboard for your Laravel app's outbound HTTP

Requizon records every HTTP call your Laravel app makes out, with its duration, status, failure and redacted params, in your own database.

boring-observability.dev

I just answered to Claude, which asked “should I do A or B”, yes. I was curious what would happen. It didn’t provide the usual options where you have to choose, it was plain English question in the chat. So I typed yes and the reply came: “I took that as the first option”. Fair enough 🤷‍♂️

While working on our new monitoring tool for Redis, we noticed quite big keys occupying half of the available cache memory. Turns out to be the full page cache, containing raw, uncompressed HTML. Full write up and how we’ve fix it - boring-observability.dev/blog/laravel...

Laravel Full-Page Cache: Compressing Redis Entries — Skyline

Full-page cache entries in Redis can reach megabytes. Compare predis and phpredis, enable phpredis zstd compression, or compress in a serializer on predis.

boring-observability.dev

Thanks to the stranded unique lock alert in Skyline, found a real bug in production. Turns out if Laravel job’s handle method modifies properties used in the uniqueid, the uniqueid used at dispatch to acquire and at complete to release the lock might end up being different and lock is not released

Bild

Cache and background job queues have different persistence needs. But Redis settings apply for the entire instance, not for individual dbs. That’s why it’s best to keep separate instance for background jobs from the one used for cache

It’s hard to keep up with all the changes in Laravel, across all of its components. So we extracted the ones that affect the background jobs. Perhaps we need to classify the entire changelog based on which subsystem is affected. But if useful for anyone - boring-observability.dev/laravel/queu...

Laravel 13 Queue & Job Changelog — Skyline

Every change to Laravel 13 queues, jobs, workers and batches, collected from the framework's own history with notes on what matters.

boring-observability.dev

Grafana’s MCP is the best way to allow AI agent to diagnose issues with your infrastructure without giving it direct access to the servers (e.g. stays read only). Assuming you already have Prometheus/Grafana setup

For years, Laravel Horizon shipped with a single notification - and it’s a quite noisy one. So we were left with building alerts with Grafana - and Skyline extended what data is available for that. But now we’re bringing notifications where they belong. Skyline 1.5 will ship with build-in alerting

You shouldn't need a monthly APM bill just to see which API call timed out. That's the problem I wanted to solve with Requizon. It lets you see every outgoing request by simply installing the package. Recording is automatic. No agent. No subscription. requizon.boring-observability.dev

Requizon — a dashboard for your Laravel app's outbound HTTP

Requizon records every HTTP call your Laravel app makes out, with its duration, status, failure and redacted params, in your own database.

requizon.boring-observability.dev

No amount of vibe coding can replace using your own product in production. Seeing the rough edges, the functionality you realise you miss only after an incident. That’s what makes our products different - used in production, at scale, every single day, improving them week after week.