Another way to do easy configuration for lots of Prometheus Blackbox checks

Early on in our use of Prometheus, I wrote up a scheme for easyconfiguration of lots of Blackbox checks where I encoded the name of the Blackbox module to use in the names of the targets youconfigured, and then extracted them with relabeling. The resultgave you target names that looked like:

 - ssh_banner,somehost:22 - http_2xx,https://somewhere/url

This encodes the Blackbox module before the comma and the actualBlackbox target after it (you can use any


Some limitations of wifi MAC address randomization

In a comment on my entry on an Android-based gadget with aggressivewifi MAC randomization , Jukka wrote:

The DHCP issues notwithstanding, I applaud this kind of MACrandomization. Easy to do manually, of course, but I haven't realizedthat also off-the-shelf products are doing it. Good for them:so-called WiFi tracking is nowadays rampant in public spaces. They'reeven combining this tracking with facial recognition and whatnot; cf.

I sure hope that your university


The sorts of email attachments that we get these days have become boring

In the past, I've written various entries about odd email attachmenttypes that we've seen, such as the .ace that was actually a ziparchive , the extravagant malware , and the zip attachment with everything . I haven't written any lately, andthere's a reason for that. I still keep an eye on the logs for oursystem for logging this information and on whatviruses and malware we reject, but for quite a while there justhasn't been anything all that interesting


How I'm dealing with my Python indentation problem in GNU Emacs

The current (cultural) standard for indentation in Python is fourspace indent levels and indenting only with spaces, never tabs;this is what GNU Emacs' python mode defaults to and what YAPF and other code formatters use. Our new and updated Python 3 code is written in this official standard, as is some relatively recentPython 2 code. However, I spent a very long time writing Pythoncode using 8-space indent levels and tab-based indentation, whichmeans that I have a great deal of existing Python


ZFS is not a universal filesystem that is always good for all workloads

Every so often, people show up on various ZFS mailing lists withproblems where ZFS is performing not just a bit worse than otherfilesystems or the raw disks, but a lot worse. Often although notalways, these people are using raidz on hard disks and trying todo random IO, which doesn't work very well because of various ZFSdecisions . When this happens, whatevertheir configuration and workload, the people who are trying out ZFSare surprised, and this surprise is reasonable. Most filesystemstoday are generally


A wifi MAC address randomization surprise in a new Android gadget

I recently picked up a new Android-based gadget and discovered, tomy unpleasant surprise, that it has what I can best describe as"unusually aggressive" wireless MAC address randomization. The mostbasic form of MAC randomization is to randomize the MAC addressthat you use before you're connected to a wireless network, whichprevents people from re-identifying your device as you move around.To be more thorough you can then use a different MAC per wirelessnetwork (SSID), so that people can't


Allowing some Alias directives to override global Redirects in Apache

When I wrote Apache, Let's Encrypt, and site-wide reverse proxiesand HTTP redirections , I confidentlyasserted that there was no way to override a Redirect for justsome URLs, so that you could Alias the /.well-known/acme-challenge/URL path off to somewhere while still redirecting the entire siteto somewhere else. It turns out that there is a way of doing thisunder some circumstances, and these circumstances are useful forcommon Let's Encrypt configurations.

The magic trick is


A lesson of (alert) scale we learned from a power failure

Starting last November, we moved over to a new metrics, monitoring,and alerting system based around Prometheus .Prometheus's Alertmanager allows you to group alerts together invarious ways, but what it supports is not ideal for us and once the dust settled we decided thatthe best we could do was to group our alerts by host. In practice,hosts are both what we maintain and usually what breaks. And usuallytheir problems are independent of each other.

Then we had a power failure and our DNS servers failed


Text UIs and the problem of discoverability

After setting up GNU Emacs to use LSP for Go and Python , I've been digging into whatI can do through lsp-mode by doing things like finding out keybindings and reading up onfeatures. One of the questions I wound up asking myself was if Iwas ever going to use various of these features, or whether they'dsuffer the same fate as a bunch of Go programs and Emacs packagesI had installed for similar purposes but then never used, such as gorename (which is directly supported by


Apache, Let's Encrypt, and site-wide reverse proxies and HTTP redirections

Back in the days before Let's Encrypt, life was simple if you hadan entire virtual host that wanted to be redirected somewhere(perhaps from its HTTP version to its HTTPS one) or served througha reverse proxy ( which is our solution to various traditionalproblems with a shared webserver ), since bothof these were single directives in Apache. Then along came Let'sEncrypt, where the simplest and easiest way to authenticate yourcontrol over a website is through their HTTP challenge, whichrequires specially handling random