Go Micro-Benchmarking & Efficiency Assessment
Practical guide to reliable microbenchmarks in Go, avoiding noise traps, and analyzing multi-dimensional benchmark results with benchstat.
Practical guide to reliable microbenchmarks in Go, avoiding noise traps, and analyzing multi-dimensional benchmark results with benchstat.
Deep dive into the Prometheus Remote Write 2.0 protocol specification: string interning, native histograms, metadata, and bandwidth reductions.
Overview of major new capabilities in Prometheus 3.0: UTF-8 support, native histograms, Remote Write 2.0, new UI, and OpenTelemetry interoperability.
Production lessons from operating managed Prometheus collection and querying across thousands of GKE clusters at Google Cloud scale.
How to use Go's runtime/metrics package (GC cycles, heap goal, goroutine scheduling latency, CPU limit) to diagnose production bottlenecks before profiling.
Key technical and community takeaways from six years of scaling Prometheus metrics globally with Thanos.
CNCF TAG Observability annual review, emerging telemetry standards, and observability patterns for AI/ML workloads.
Comparing Kubernetes operator patterns for Prometheus and hands-on ContribFest scaling techniques for high-cardinality clusters.
How Created Timestamps solve missing counter reset detection and rate() accuracy in Prometheus and OpenTelemetry.
Using isolated Kubernetes environments (`e2e`), Prometheus metrics, and continuous profiles to validate end-to-end system efficiency.
Governance, maintainer burnout prevention, mentoring pipelines, and growing a multi-company CNCF Incubating project.
The pragmatic TFBO (Test, Fix, Benchmark, Optimize) workflow from the O'Reilly Efficient Go book applied to real Go codebases.
Exploring vectorized and distributed execution engines for PromQL to speed up high-cardinality analytical queries.
Connecting metrics, traces, and profiles via OpenMetrics exemplars across Thanos, Prometheus, Jaeger, and Parca.
Architectural trade-offs between object-storage block shipping and remote-write sharding, and how Cortex and Thanos joined forces on shared components.
Live demonstration of evolving standalone Prometheus servers into a globally federated, long-term storage setup with Thanos Sidecar, Store, and Compactor.
When my son was born last April, I had ambitious learning plans for the upcoming 5w paternity leave. As you can imagine, with two kids, life quickly verified this …
A few years back I have been exploring solutions for the in-process gRPC pattern in Go, for the Thanos project . Recently, a friend and a Thanos maintainer Filip …
Go’s built-in micro-benchmarking framework is extremely useful and widely known. Sill, not many developers are aware of the additional, yet essential, benchstat tool …
TL;DR: I am super excited to announce an exact topic of our book we write together with O’Reilly publisher. “Efficient Go” will consist of 10 chapters! The book is …
Hello back! 👋🏽 Curious how your last weeks looked like, mine were a bit busy: My daughter’s 1st birthday, then she started daycare adaption with the weekly spread …
Hello Everyone! 👋 Through the recent years in open source and in my role as the Principal Software Engineer at Red Hat, I had the opportunity to do a lot of work …
NOTE: I wrote this article for the CNCF TAG (previously SIG) Observability Whitepaper about Observability , so you will see some of this write up there. The …
TL;DR: Recently we introduced extended Go Style Guide for the Thanos project , a high scale open-source distributed metric system where, with our large community, we …
Writing software documentation is hard. Maintaining it is even more challenging in both closed and open-source worlds. You are probably familiar with the disdain …
In this post, I would like to share what, in my honest opinion, a “perfect” maintainer of an open source software should do. Yes, no one ever will be perfect: we all …
EDIT (2020.12.13): From Go 1.16, Go on Linux moves back to using MADV_DONTNEED when releasing memory. However, this blog post still applies in terms of how to …
Available on Improbable blog here .
“Something ends,” Geralt said with difficulty. “Something ends, Dandelion .” “Not at all,” the poet shot back seriously. “Something begins.” – Andrzej Sapkowski; …
I would never have believed anyone telling me that such a moment would happen in my life. Yet it happened–my book was released this week! 🎉 It is one of the things …
After ~1100h of work, my Efficient Go book was sent to production. 😱 Thanks to all who helped me in this journey! With the publish date around November-December …
See bigger version of the above demo as .gif here In this blog post, I would like to introduce bingo , a simple and efficient CLI (Command Line Interface) Tool , I …
TL;DR: In March 2020, we established the official CNCF’s Special Interest Group (SIG) for Observability . Last week, the TOC vote for the first Tech Lead for this …
TL;DR In my free time I wrote a simple but powerful, open source Go library flagarize to register your flags from Go struct tags! Please try it, share feedback and …
During Summer of 2020, on top of our full-time work, on-call rotations, open source project’s work, preparing conference talks and ☕ we had extra duties: 75% of the …