Which labels will Prometheus send to Alertmanager?

Like many users of Prometheus, at work we use labels with AlertManager's routing to make sure the right people get paged when something goes wrong. Prometheus allows you to provide their labels via a number of sources (if I missed any, please reach out and let me know!):

Read More...
Posted on 2025-06-19

Using git-describe output for version pinning

The fact that tj-actions/changed-files was compromised is kind of old news at this point, but I had an insight the other day about this problem and its remediation that I haven't seen mentioned yet.

Read More...
Posted on 2025-04-12

Prometheus Vector Operations Are Not Associative

I was working on a PromQL query at work to find disk usage on Kubernetes control plane nodes - the first step was to identify those nodes:

Read More...
Posted on 2025-03-29

Restic Snapshot Groups, AKA "Why isn't restic forgetting my snapshots?"

I use restic to manage backups on my machines, and not too long ago I ran into some surprising behavior that I thought I'd share.

Read More...
Posted on 2025-03-23

Use GOTOOLCHAIN to run older versions of the Go toolchain

I've been working through Mastering Distributed Tracing to learn more about (you guessed it) tracing. The book is from 2019, and while I've been assured that its contents are still sufficiently up-to-date, the Go-based code examples are a bit dated; namely, they use dep for dependency management, rather than the new(er) built-in module system. dep seems like a fine tool that had its time, but seeing as I'm used to Go modules, and I don't really want to learn an obsolete tool just for some book exercises, I created a Go module for the exercises and started converting the Gopkg.toml/Gopkg.lock files by hand.

Read More...
Posted on 2025-02-16