The Mechanics of Metrics, at DevNexus
A reframing of the metrics talk, with a much more detailed look at how emitted metrics are aggregated by PromQL / Grafana dashboards.
I quite like this one, to be honest.
A reframing of the metrics talk, with a much more detailed look at how emitted metrics are aggregated by PromQL / Grafana dashboards.
I quite like this one, to be honest.
A longer form of Metrics for the Win! recorded for J4K, which occurred in October of 2020.
I was asked, based solely on the abstract for my 2020 DevNexus talk, if I would be interested in writing an article on the topic. I agreed. The resulting article was published in Germina, in the September 2020 issue of Java Magazin, with “Dungeons and Dragons” as the title. I have a lovely hard-copy in my office.
The English version has also now been published at JaxEnter, “Monsters in combat: exploring application metrics with D&D”.
I hope you enjoy it.
A fully online recorded talk, sliding in at just 30 minutes, for JConf in the fall of 2020.
All done!
Building on the previous post, here is a summary of what I had to do to collapse two sites (one a date-oriented blog, and the other an outline-based gitbook) into a single site.
This won't be a super chatty post. We have two websites for Game On! (our microservices text adventure): a jekyll-based markdown blog and a legacy-gitbook-based asciidoc book. For various reason, I want to combine them,and I woukd rather not spend gobs of time converting between markdown and asciidoc.
To keep things quick: I knew I wanted a static site generator, and I've used hugo before and found it fast, straight-forward and unconfusing. So in my mind, I'd already picked hugo.
I love scripts! I treat them as my extended memory. Blog posts used to do this, but life and children have eaten up the capacity I used to have for writing.
But I thought I would share my latest script for the lazy (which I have now duplicated several times. I know, I know. WET, DRY. I can't be bothered). This script iterates over all of the git repositories in a sub-directory (where I have several related ones), fetches everything, fast-forwards if it can, and otherwise tries to rebase on the upstream branch if there is one that matches.
There is an extra case statement at the bottom as I inevitably extend this to do more things specific to this group of projects. This kind of approach grew out of the scripts written for Game On!, which still work well, and do their extra duty reminding me what on earth I was doing the last time I worked on it.
Two things collided in my brain this year ahead of SpringOne: Preparing a new talk from scratch covering the Micrometer (and the related Spring implementation), and learning everything I needed to know to be a Dungeon Master for my 10-year-old son and his friends.
Thanks to a brilliant suggestion from a friend, these two things collided in the talk, too. Which lightened the mental load (or at least reduced the amount of full stack swapping going on).
Github repository: ebullient/monster-combat with Spring Boot 2, WebFlux, and Micrometer
A gulp build unhelpfully finished with:
(node:12030) UnhandledPromiseRejectionWarning: null
(node:12030) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:12030) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
I needed to change both my gulpfile and my IDE to be able to follow what was happening.
This is my first attempt at talking about what is going on with Cloud Native applications these days. Given at IndexConf in San Francisco.