Interview with founder Tom Wilkie at GDG Devfest Ukraine
on Oct 14, 2017
I recently gave a talk at PromCon 2017 in Munich about what we’ve learnt running Cortex, our open source horizontally scalable Prometheus implementation, for over a year. This blog post is a write up of that talk for those who couldn’t attend. There was a lot in the talk, so I’ve split the write up into three posts.
For those who can’t bear to wait, here the video:
At Kausal, we’re making it as easy as possible for developers to understand their applications’ behavior. To that end, we want writing PromQL expressions to be as fast and painless as possible by adding intelligent autocompletion for metric names, labels names, labels values and aggregation by-clauses. Kausal’s clever query editor is built on Slate.js, a rich editing framework. Its syntax highlighting is powered by Prism.js.
Since Prism does not come with PromQL syntax rules we had to write our own to get proper highlighting for PromQL queries. Prometheus metric names present a difficulty as they are not known upfront. This post shows how we added a new syntax to Prism, with dynamically loaded keywords.
What better way to start a blog than a post about blog headers. Our blog (and website) is built with Hugo, a static website generator. This post shows how we configured the post layout to display nicely formatted headers with the author’s avatar.
Posts in Hugo usually go in the content/post
directory.
Since these are blog posts (or a “section” in Hugo terms), we renamed content/post
to content/blog
.
Don’t forget to set pluralizeListTitles = false
in config.toml
, otherwise you end up with the page title “Blogs”.
Next we installed the Tachyons theme, to have a minimal CSS framework. Unfortunately the theme comes with an outdated version. If you place a new version of Tachyons in the theme, you run into trouble: The layout partials rely on the outdated class names. We did it anyway, and simply modified all layout classes to use the latest ones, mostly so we can rely on the latest Tachyons documentation.