Let the layers tell the story
Images are built layer by layer, like a glacier. Firn is the core sample through them, so you can read the whole history at once.
Spot it in passing
Every build arrives as layers you can read at a glance, so a slow instruction is something you notice while skimming, not something you dig out over an afternoon once it has already cost you a release.
Keep the cache honest
Each miss points at the instruction that invalidated it, and hit rate is tracked run over run. A fix is visible as the trend bending, and the next regression shows up long before anyone files a slow build.
Date the slowdown
Thirty-second builds that quietly became two minutes. Every run is another layer, so the history reads like a core sample. You can put a date on the change and see what it has cost since.
Flake or fault
The same Dockerfile across many runs separates what fails sometimes from what fails every time. A runner killed mid-build still reports the spans it emitted, so an out-of-memory kill is a reading, not a gap.
Built by the maintainers of kaniko.
We built Firn to improve the builder. Now you can use it to improve your builds.