Author Archives: Matthias

Adding the Git Revision to a Docker Image

Spring Boot makes it quite easy to find the Git revision of a running application. You add a Gradle plugin and the revision is added to the Actuator’s info endpoint. What it doesn’t do though is publish the Git revision … Continue reading

Posted in java | Tagged , | Leave a comment

File Name Too Long

When trying to build the Spring Boot source code, I ran into a strange problem: The Gradle build terminated with several “File name too long” exceptions. I knew that the ext4 filesystem I was using has limits – 4064 characters … Continue reading

Posted in linux | Tagged , | 1 Comment

Testing Alertmanager

When a Prometheus alerting rule fires, the Prometheus server sends a notification to the Alertmanager, which is then responsible for processing that alert further, i.e. by routing it to an appropriate alerting channel (e-mail, Slack, …). In order to test … Continue reading

Posted in shell | Tagged , | Leave a comment

Playing with WebAuthn

On the internet today, our online accounts are exposed to a lot of risks. Leaked passwords from break-ins at major Internet properties or phishing attacks have lead to many account breaches. In order to protect my high-value accounts, I have … Continue reading

Posted in best practices | Tagged , | 2 Comments

Using Kubectl Printers and Plugins

Even though we have plenty of metrics and dashboards at work, I use the kubectl command line tool a lot for looking at resources and for troubleshooting. Because the defaults don’t always display the information that I need, I often … Continue reading

Posted in tools | Tagged , | Leave a comment

Monitoring Log Statements in Go

Good monitoring and alerting are essential for running services in production. As a Java developer, I’m a bit spoiled by my platform of choice, Spring Boot 2. Thanks to Micrometer it provides out of the box instrumentation for HTTP requests, … Continue reading

Posted in go, Uncategorized | Tagged , , | Leave a comment

Additional Workspaces in Gnome

I use Gnome on Ubuntu 18.04 with static workspaces and switch between them using keyboard shortcuts – for example, ALT+1 takes me to workspace one. Unfortunately, using the graphical settings editor, I was only able to assign keyboard shortcuts to … Continue reading

Posted in misc | Tagged | 1 Comment

Retries Can Kill You

In a large-scale distributed system, it’s inevitable that some requests will fail. Even if your collaborating systems work perfectly, sooner or later you will experience temporary network issues and other intermittent errors. That’s why a lot of people try to … Continue reading

Posted in best practices | Tagged , , | Leave a comment