<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Observability on Nicole van der Hoeven</title><link>https://nicolevanderhoeven.com/tags/observability/</link><description>Recent content in Observability on Nicole van der Hoeven</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Nicole van der Hoeven</copyright><lastBuildDate>Thu, 05 Nov 2026 18:00:00 +0000</lastBuildDate><atom:link href="https://nicolevanderhoeven.com/tags/observability/index.xml" rel="self" type="application/rss+xml"/><item><title>Spice Runner</title><link>https://nicolevanderhoeven.com/projects/spice-runner/</link><pubDate>Wed, 05 Nov 2025 00:00:00 +0000</pubDate><guid>https://nicolevanderhoeven.com/projects/spice-runner/</guid><description>&lt;p&gt;&lt;strong&gt;Spice Runner&lt;/strong&gt; is a browser-based endless runner. Think of the &amp;ldquo;unable to connect&amp;rdquo; dinosaur game in Chrome, except you are a Fremen running across the sands of Arrakis, jumping sandworms and Harkonnen ornithopters. It&amp;rsquo;s the demo app for my talk &lt;a href="https://nicolevanderhoeven.com/blog/20251105-the-spice-must-flow/"&gt;&lt;em&gt;The Spice Must Flow: The Fremen Guide to Sustainable Observability&lt;/em&gt;&lt;/a&gt;, and it exists to make one point: even a simple, throwaway game generates a surprising amount of telemetry, and that telemetry has real financial and environmental costs.&lt;/p&gt;
&lt;p&gt;The Fremen live on a planet that is rich in spice and poor in water, and they thrive by wasting nothing. Our systems are rich in telemetry and poor in budget, and in carbon. Spice Runner is a small, playable version of that problem: a real app, with real players, running on real infrastructure that scales up and down with them while I watch what it costs.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/projects/spice-runner-gameplay.gif" alt="Spice Runner gameplay: a Fremen runner jumps sandworms as an ornithopter flies overhead" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="what-it-demonstrates"&gt;What it demonstrates&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Real user monitoring with &lt;a href="https://grafana.com/oss/faro/"&gt;Grafana Faro&lt;/a&gt;.&lt;/strong&gt; Game sessions, game starts, scores, collisions, restarts, and game overs are all sent as custom events, so the dashboard shows how people actually play.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A leaderboard that&amp;rsquo;s instrumented end to end.&lt;/strong&gt; A Go API backed by PostgreSQL and Redis serves a public top-10 leaderboard. It&amp;rsquo;s instrumented with OpenTelemetry for traces and custom metrics, so a score can be followed from the browser through the API to the database and the cache.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metrics, logs, and traces on Kubernetes.&lt;/strong&gt; Prometheus, Grafana Loki, and Grafana Tempo run in the cluster, with Grafana Alloy as the collector and Grafana for dashboards. Telemetry is also sent to Grafana Cloud.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autoscaling that follows the players.&lt;/strong&gt; &lt;a href="https://keda.sh/"&gt;KEDA&lt;/a&gt; scales the game&amp;rsquo;s pods on HTTP request rate, CPU, and memory, and the GKE Cluster Autoscaler adds and removes nodes behind them. Production settings keep at least one pod running and cap it at 20, with a separate demo profile that is far more eager for live demonstrations.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Energy monitoring with &lt;a href="https://sustainable-computing.io/"&gt;Kepler&lt;/a&gt;.&lt;/strong&gt; Power and energy use are tracked per workload, so &amp;ldquo;what does this cost the planet?&amp;rdquo; is a query rather than a guess.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Load testing with &lt;a href="https://k6.io"&gt;k6&lt;/a&gt;.&lt;/strong&gt; k6 drives load against the leaderboard API and, with a browser script, plays the game to keep the dashboard populated.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-dashboard"&gt;The dashboard&lt;/h2&gt;
&lt;p&gt;The live dashboard on Grafana Play shows real player data as it happens. The dashboard is also entirely AI-generated: it was built with &lt;a href="https://grafana.com/docs/grafana-cloud/machine-learning/assistant/"&gt;Grafana Assistant&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://nicole.to/spicedashboard"&gt;Open the live dashboard&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id="architecture"&gt;Architecture&lt;/h2&gt;
&lt;p&gt;The app has two layers. The first is the game and its leaderboard: a vanilla JavaScript game served by Nginx, with a Go leaderboard API backed by PostgreSQL and Redis. The second is the observability stack: Faro instruments the browser, and the Nginx exporter, Alloy, Loki, Tempo, and Prometheus cover the backend. Everything runs on Google Kubernetes Engine, with persistent volumes so telemetry survives pod restarts, and autoscalers at both the pod and node level.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/projects/spice-runner-architecture.png" alt="Spice Runner architecture: the game and leaderboard, the observability stack, and the autoscalers" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="the-talk"&gt;The talk&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;The Spice Must Flow&lt;/em&gt; uses Dune as its framing. It covers the hidden environmental and financial costs of an observability stack, how hard it is to measure the cost of ephemeral resources on Kubernetes, how to use KEDA to right-size resources when you don&amp;rsquo;t know what the right size is, and the most effective thing you can do to cut cost: deleting the telemetry you don&amp;rsquo;t need.&lt;/p&gt;
&lt;p&gt;I first gave it at &lt;a href="https://oredev.org/"&gt;Øredev 2025&lt;/a&gt; in Malmö, Sweden. You can read the &lt;a href="https://nicolevanderhoeven.com/blog/20251105-the-spice-must-flow/"&gt;write-up and abstract&lt;/a&gt; and see the &lt;a href="https://nicole.to/spiceslides"&gt;slides&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="run-it-yourself"&gt;Run it yourself&lt;/h2&gt;
&lt;p&gt;Everything you need to deploy it on your own GKE cluster, including the Kubernetes manifests, the dashboards, and the load tests, is in the &lt;a href="https://github.com/nicolevanderhoeven/spice-runner"&gt;GitHub repository&lt;/a&gt;. Its README has a quick start.&lt;/p&gt;</description></item><item><title>The Defiant Jazz Incident</title><link>https://nicolevanderhoeven.com/projects/defiant-jazz/</link><pubDate>Fri, 30 Oct 2026 00:00:00 +0000</pubDate><guid>https://nicolevanderhoeven.com/projects/defiant-jazz/</guid><description>&lt;p&gt;&lt;strong&gt;The Defiant Jazz Incident&lt;/strong&gt; is a murder mystery you solve with observability tools. It&amp;rsquo;s set on the Sleep Floor at Kipsake, a company that rents your sleep: at night, its Dreamers sleep in pods while their sleepwalking selves work the floor. During the Cocoa Hour, the floor&amp;rsquo;s middle-of-the-night holiday party, the power goes out for five minutes. When it comes back, the night supervisor is dead in the elevator.&lt;/p&gt;
&lt;p&gt;Kipsake recorded everything it could: badges, doors, chat, sleep rings, power, microphones, cameras, sleep bands, and personnel records. Your job is to work out who did it, and the only way to do that is through the telemetry.&lt;/p&gt;
&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;
&lt;p&gt;The case file is a set of logs, metrics, and traces. A loader sends them to &lt;a href="https://grafana.com/oss/loki/"&gt;Grafana Loki&lt;/a&gt;, Prometheus or Mimir, and &lt;a href="https://grafana.com/oss/tempo/"&gt;Grafana Tempo&lt;/a&gt;, either in Grafana Cloud or in a local Docker stack, and you investigate from there with whatever you like: Grafana itself, Grafana Assistant, an MCP server, &lt;code&gt;gcx&lt;/code&gt;, or the AI agent of your choice. The data is deliberately messy. Some devices lose clock sync during the outage, some records arrive late, and not everyone on the Sleep Floor remembers what their body did.&lt;/p&gt;
&lt;p&gt;The game itself comes in two forms. A terminal version is for demos and playtests: you watch the testimonies and choose what to investigate, while an AI that only sees the telemetry answers your questions. A web version is made to embed in a Grafana dashboard panel right next to the data.&lt;/p&gt;
&lt;h2 id="why-a-murder-mystery"&gt;Why a murder mystery?&lt;/h2&gt;
&lt;p&gt;Investigating an incident is investigating an incident, whether the victim is a production service or a night supervisor. You start with a vague report, a pile of signals that don&amp;rsquo;t quite agree, and a clock that can&amp;rsquo;t be fully trusted, and you have to build a timeline you can defend. A case with a known answer is a safe way to practice that, to compare how different tools and AI agents cope with it, and to see how good a question you have to ask before the data answers.&lt;/p&gt;
&lt;h2 id="no-spoilers"&gt;No spoilers&lt;/h2&gt;
&lt;p&gt;The repository keeps the solution in clearly marked files, and the README tells you which ones to avoid if you want to play. This page deliberately says nothing about who did it.&lt;/p&gt;
&lt;h2 id="try-it"&gt;Try it&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://github.com/nicolevanderhoeven/defiantjazz"&gt;repository&lt;/a&gt; has everything: the case brief, the telemetry, the loader, and both versions of the game.&lt;/p&gt;</description></item><item><title>obsidian-grafana</title><link>https://nicolevanderhoeven.com/projects/obsidian-grafana/</link><pubDate>Mon, 13 Oct 2025 00:00:00 +0000</pubDate><guid>https://nicolevanderhoeven.com/projects/obsidian-grafana/</guid><description>&lt;p&gt;&lt;strong&gt;obsidian-grafana&lt;/strong&gt; turns an &lt;a href="https://obsidian.md"&gt;Obsidian&lt;/a&gt; vault into time-series data and dashboards. I work at Grafana Labs, helping people monitor their systems with open source tools, and at some point I realized I could use the same tools to monitor my personal knowledge management system. It&amp;rsquo;s a nerdy and totally unnecessary setup, and I enjoy it a lot. I mention it in my post on &lt;a href="https://nicolevanderhoeven.com/blog/20251013-how-i-use-visuals-in-my-pkm/"&gt;how I use visuals in my PKM&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The screenshot above was made by running the repo&amp;rsquo;s own Grafana setup on a copy of the posts from this website.&lt;/p&gt;
&lt;h2 id="how-it-works"&gt;How it works&lt;/h2&gt;
&lt;p&gt;A Python script reads the Markdown files in your vault and extracts metadata: word, line, and character counts, file size, frontmatter fields, tags, wikilinks, and timestamps. It runs every five minutes and has two paths:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A log path for history.&lt;/strong&gt; Only the notes that changed since the last run are written, as structured JSON, to a log file. Grafana Alloy tails that file and forwards it to Loki, with tags and frontmatter fields as labels, so you can see how your notes change over time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A metrics path for the current state.&lt;/strong&gt; A metrics exporter exposes totals such as note count, word count, unique tags, and wikilinks, and Prometheus scrapes them.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Grafana ties the two together with pre-configured dashboards: an overview, a time series dashboard for individual notes, a relationships dashboard for wikilinks, a dashboard of frontmatter types, and a word cloud of your most used words. Everything runs in Docker Compose.&lt;/p&gt;
&lt;h2 id="what-its-useful-for"&gt;What it&amp;rsquo;s useful for&lt;/h2&gt;
&lt;p&gt;Understanding your writing habits and how your vault grows, checking how consistently your notes are tagged, finding the notes that everything links to, and keeping an eye on notes with a given frontmatter status or priority. The README also covers installing the Grafana Assistant plugin into the local Grafana.&lt;/p&gt;
&lt;h2 id="try-it"&gt;Try it&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://github.com/nicolevanderhoeven/obsidian-grafana"&gt;repository&lt;/a&gt; has a quick start. You&amp;rsquo;ll need Docker and Python 3, and a vault to point it at.&lt;/p&gt;</description></item><item><title>Asimov</title><link>https://nicolevanderhoeven.com/projects/asimov/</link><pubDate>Wed, 02 Apr 2025 00:00:00 +0000</pubDate><guid>https://nicolevanderhoeven.com/projects/asimov/</guid><description>&lt;p&gt;&lt;strong&gt;Asimov&lt;/strong&gt; is the companion project to my talk &lt;em&gt;Asimov&amp;rsquo;s Zeroth Law of Robotics&lt;/em&gt;. It&amp;rsquo;s an AI app built to be observed and tested: &lt;strong&gt;The Silent Enterprise&lt;/strong&gt;, a single-player Star Trek text adventure. You play Data, and Claude is the game master. Every model call, dice roll, and turn shows up as telemetry in a Grafana that you can run on your own machine or in Grafana Cloud, and a k6 test suite, some of it judged by Claude, checks whether the AI follows the rules.&lt;/p&gt;
&lt;p&gt;The game master has some known flaws, kept on purpose. It sometimes narrates a rescue that didn&amp;rsquo;t happen, or &amp;ldquo;destroys&amp;rdquo; a drone that&amp;rsquo;s still standing. The point of the demo is catching those flaws with telemetry, tests, and online evaluators.&lt;/p&gt;
&lt;h2 id="the-idea"&gt;The idea&lt;/h2&gt;
&lt;p&gt;Isaac Asimov&amp;rsquo;s three Laws of Robotics govern how robots behave. The talk argues for a law that comes before all of them: a robot must be observable, and, in its newest version, testable. AI systems fail differently from traditional software. There&amp;rsquo;s no single correct output to assert against, a response can be fluent and completely wrong, and models drift. You can&amp;rsquo;t test what you can&amp;rsquo;t see, and you can&amp;rsquo;t trust what you can&amp;rsquo;t test.&lt;/p&gt;
&lt;h2 id="whats-in-it"&gt;What&amp;rsquo;s in it&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The game.&lt;/strong&gt; A Go program with a command-line interface and an HTTP API. The game engine owns the rules and the state. Claude interprets the player&amp;rsquo;s input, makes the game master&amp;rsquo;s own rolls through a tool, and narrates, so a narration that contradicts the saved state is a defect that can be caught.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Telemetry.&lt;/strong&gt; Traces, metrics, and logs go over OpenTelemetry to a local Grafana stack (Tempo, Prometheus, and Loki, with the game&amp;rsquo;s dashboard already loaded) or to Grafana Cloud. Generations can also go to Grafana Cloud&amp;rsquo;s Agent Observability, where online evaluators judge a sample of them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tests.&lt;/strong&gt; A k6 suite with code checks, LLM judges, dice-trajectory evals, and whole playthroughs. All of it can run for free against a mock game master and judge.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No account needed to start.&lt;/strong&gt; You can play offline with no API key, and see the local monitoring stack with one command and Docker.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The screenshot above is the game&amp;rsquo;s local Grafana dashboard.&lt;/p&gt;
&lt;h2 id="the-talks"&gt;The talks&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve given the talk, in several versions, at KubeCon Europe 2025, Dutch Cloud Native Day 2025, Newcrafts 2025, ExpoQA Madrid 2026, and HUSTEF 2026. The write-ups are linked below. The earlier talks used a Python and Flask version of the app, which has since been rewritten in Go.&lt;/p&gt;
&lt;h2 id="try-it"&gt;Try it&lt;/h2&gt;
&lt;p&gt;The &lt;a href="https://github.com/nicolevanderhoeven/asimov"&gt;repository&lt;/a&gt; has a quick start for playing offline, a Docker-only path, and release binaries for Windows, macOS, and Linux.&lt;/p&gt;</description></item><item><title>Build Apps on Your Data with Grafana Pages (The Context Window #07)</title><link>https://nicolevanderhoeven.com/blog/20261105-context-window-07-grafana-pages/</link><pubDate>Thu, 05 Nov 2026 18:00:00 +0000</pubDate><guid>https://nicolevanderhoeven.com/blog/20261105-context-window-07-grafana-pages/</guid><description>&lt;p&gt;My favourite announcement out of ObservabilityCON was &lt;a href="https://grafana.com/"&gt;Grafana Pages&lt;/a&gt; — a way to build a live, interactive data app right from your Grafana instance, with just prompts and no code. In this episode of &lt;em&gt;The Context Window&lt;/em&gt; — Grafana&amp;rsquo;s livestream series on AI in observability — I&amp;rsquo;m joined by my co-host &lt;strong&gt;Tiffany Clifford&lt;/strong&gt; and by &lt;strong&gt;Stephanie&lt;/strong&gt; and &lt;strong&gt;Tom&lt;/strong&gt; from Grafana&amp;rsquo;s AI department, who built Pages (it started as a hackathon project to give &lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;Grafana Assistant&lt;/a&gt; a proper Linux sandbox, and turned into something much bigger). We dig into what Pages actually is, build one live from a prompt, and get into the stuff I find genuinely delightful about it: a page is still &lt;em&gt;real&lt;/em&gt; Grafana — same data sources, same RBAC, same production-ready panels — it&amp;rsquo;s just no longer you arranging things on a grid. We also cover personal data Pages (my sleep-vs-flight tracker, Stephanie&amp;rsquo;s StairMaster world tour), Pages vs dashboards, how it all works under the hood (React in a locked-down iframe, served from a micro-VM sandbox), and the current limitations and roadmap.&lt;/p&gt;
&lt;p&gt;Fun fact dropped mid-stream: the ObservabilityCON keynote itself was a Grafana Page. So was this presentation.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/TjzXIMfLSTg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="what-grafana-pages-is"&gt;What Grafana Pages is&lt;/h2&gt;
&lt;p&gt;As Tom put it, a Page is &amp;ldquo;all of Grafana, minus the panel grid.&amp;rdquo; It&amp;rsquo;s the same data sources, the same RBAC, the same underlying panels and visualization libraries — but instead of you arranging panels on a grid (or Assistant trying to squeeze your intent into what a dashboard can represent), you unlock Assistant and let it do the thing modern models are genuinely good at: writing code and building a website. You keep everything that makes Grafana production- and enterprise-ready, carefully worked out over nine years, and you add interactive, tailored, &lt;em&gt;pretty&lt;/em&gt; ways to look at your data.&lt;/p&gt;
&lt;p&gt;It builds on the Grafana-managed sandboxes announced in the same release — the same underlying layer of Linux compute for AI agents that also powers auto-remediation and investigations.&lt;/p&gt;
&lt;h2 id="seeing-it-on-grafana-play"&gt;Seeing it on Grafana Play&lt;/h2&gt;
&lt;p&gt;The fastest way to understand Pages is to go poke at it on &lt;a href="https://play.grafana.org/"&gt;Grafana Play&lt;/a&gt; — no login, no Cloud account needed. Stephanie showed a few:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An &lt;strong&gt;observability-survey quiz game&lt;/strong&gt; in comic-book style, pulling real data already on Play — built from &lt;em&gt;one&lt;/em&gt; prompt (&amp;ldquo;make it higher-lower, comic-book style&amp;rdquo;).&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;quarterly-review&lt;/strong&gt; page, fully interactive with drill-downs by region and customer sentiment — also one prompt, with &amp;ldquo;make it look pretty&amp;rdquo; doing most of the design work.&lt;/li&gt;
&lt;li&gt;A teammate&amp;rsquo;s page that pulls your &lt;strong&gt;GitHub contribution data&lt;/strong&gt; and thanks you — and, because it uses the inline Assistant, renders the thank-you in the viewer&amp;rsquo;s native language (inferred from internal data).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The point Stephanie and Tom kept coming back to: Pages aren&amp;rsquo;t static. A page can fetch recent data every time you open it and tell you the most noteworthy events in the last 24 hours — so an on-call summary page genuinely updates itself.&lt;/p&gt;
&lt;h2 id="building-a-page-from-a-prompt"&gt;Building a Page from a prompt&lt;/h2&gt;
&lt;p&gt;We built one live on Play against the demo incident/outage data: &lt;em&gt;&amp;ldquo;Create a page to summarize what is noisy and needs attention from the on-call engineer — give us the top three things.&amp;rdquo;&lt;/em&gt; Assistant loops through alerts, shows the queries it&amp;rsquo;s running in a &lt;strong&gt;Sources&lt;/strong&gt; tab (no hand-waving about what it&amp;rsquo;s doing), takes live screenshots of the rendered page as it edits so it actually &lt;em&gt;knows&lt;/em&gt; how it looks, and comes back with dynamic top-three items. Making a page really is just that easy now.&lt;/p&gt;
&lt;h2 id="personal-data-pages"&gt;Personal data Pages&lt;/h2&gt;
&lt;p&gt;This is where I got carried away. I hooked up my two smart-ring data sources (Oura and Ultrahuman — both have API endpoints) and, from one prompt, got a whole page summarizing years of sleep: best month, worst month, seasonal breakdowns, the slightly-depressing reveal that I average just under seven hours. I didn&amp;rsquo;t ask for the blue-purple theming. I also didn&amp;rsquo;t ask it to correlate my &lt;strong&gt;flights&lt;/strong&gt; (TripIt + Flighty, ten years of data) with my sleep — it just did, because the flight data was there. A second prompt gave me an animated replay of every flight I&amp;rsquo;ve taken.&lt;/p&gt;
&lt;p&gt;Stephanie&amp;rsquo;s was my favourite: a &lt;strong&gt;StairMaster world tour&lt;/strong&gt;, ranking gyms she&amp;rsquo;s visited for work by how good the view is (so she doesn&amp;rsquo;t have to think about being on a StairMaster), complete with an out-of-order-machine mini-game and motivational quotes from ultrarunners. And a summit-conditions page pulling weather data for different mountains.&lt;/p&gt;
&lt;h2 id="pages-vs-dashboards"&gt;Pages vs dashboards&lt;/h2&gt;
&lt;p&gt;So when do you build a page instead of a dashboard? The honest answer from the team is: it&amp;rsquo;s early, and Pages already cover many dashboard use cases. Tom&amp;rsquo;s product-brain answer is &amp;ldquo;make it a page, period&amp;rdquo; — but if you have a well-understood dashboard that serves you well, there&amp;rsquo;s no urgent reason to change it, and dashboards still win where you need a &lt;strong&gt;dashboards-as-code&lt;/strong&gt; story (Pages has no as-code path yet). For me, I reach for a page when I want to tell a &lt;strong&gt;story&lt;/strong&gt; with data — a narrative, some annotation, something I&amp;rsquo;d present to my manager without drowning her in every metric. Pages is great at filtering down to the readable essentials without deleting anything.&lt;/p&gt;
&lt;p&gt;A nice pro tip from Tom: if you ever present real data on a big screen, Pages is for you — you can ask for presentation style and still get real panels backed by real data, instead of screenshotting them out. We&amp;rsquo;re both using Pages for KubeCon talks.&lt;/p&gt;
&lt;h2 id="remixing-editing-and-building-from-a-dashboard"&gt;Remixing, editing, and building from a dashboard&lt;/h2&gt;
&lt;p&gt;There are several ways to create a page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ask Assistant&lt;/strong&gt; directly in chat.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Create new page&lt;/strong&gt; with a starter example (service health, minimal, etc.) that pre-seeds the prompt with styling hints.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remix&lt;/strong&gt; an existing page — reuses it as a reference and changes style, data sources, or format; saved as its own new page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Start from a dashboard&lt;/strong&gt; — turn an existing dashboard into a page (handy when the dashboard is the ongoing stream and you want a &amp;ldquo;how was last quarter&amp;rdquo; narrative view).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Editing happens through Assistant too: highlight an element and it&amp;rsquo;s attached as context (it carries the DOM node / &lt;code&gt;data-page-id&lt;/code&gt;), so you can ask &amp;ldquo;how did you get this data?&amp;rdquo; or request a change to that specific element. &lt;strong&gt;Templates&lt;/strong&gt; are coming — define a house style once and have everyone in your org generate pages or presentations that match.&lt;/p&gt;
&lt;h2 id="sharing-and-access-control"&gt;Sharing and access control&lt;/h2&gt;
&lt;p&gt;Sharing today works a lot like Google Docs/Slides: add specific people, generate a link, or drop it in a folder (folder view/edit permissions carry over). But viewers &lt;strong&gt;must be logged into the Grafana instance&lt;/strong&gt; — there is &lt;strong&gt;no fully public &amp;ldquo;share with the world&amp;rdquo; option yet&lt;/strong&gt;, and no share-by-email-domain yet either. Both are open feature requests; the team explicitly asked for feedback on whether people want them.&lt;/p&gt;
&lt;p&gt;Crucially, &lt;strong&gt;data access still respects user permissions&lt;/strong&gt;. If you can open a page but don&amp;rsquo;t have access to its data sources, the page opens but shows no data — exactly like dashboards, because the queries still go through your regular data sources with full authorization and RBAC.&lt;/p&gt;
&lt;h2 id="how-pages-work-react-sandboxes-and-iframes"&gt;How Pages work: React, sandboxes, and iframes&lt;/h2&gt;
&lt;p&gt;A dashboard is configuration — a (very large) JSON blob that Grafana lays out into the panel grid at runtime. A Page is a layer lower: what the agent produces is &lt;strong&gt;React source code for a website&lt;/strong&gt;, which Grafana renders inside a heavily locked-down, isolated &lt;strong&gt;iframe&lt;/strong&gt;, piping through only carefully chosen data.&lt;/p&gt;
&lt;p&gt;But something has to safely compile that TypeScript/JSX and bundle it — running arbitrary model output is exactly the kind of unsafe operation you don&amp;rsquo;t want on your main infrastructure. So each conversation gets a thin &lt;strong&gt;Linux micro-VM&lt;/strong&gt;. The hard engineering problem was making it &lt;em&gt;fast&lt;/em&gt;: nobody waits two or three minutes for an EC2 to spin up before losing interest. The team got it to start in under 10 seconds, with each command finishing in under two.&lt;/p&gt;
&lt;p&gt;Tom clarified that &amp;ldquo;sandbox&amp;rdquo; is overloaded here — there are &lt;strong&gt;two&lt;/strong&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The &lt;strong&gt;Linux micro-VM&lt;/strong&gt; used only &lt;em&gt;while building or editing&lt;/em&gt; a page. Once built, the output is just HTML in an S3 bucket — no VM involved anymore.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;iframe isolation layer&lt;/strong&gt; inside Grafana, so AI-generated website content renders safely without leaking your data. You control what hosts a page can call out to, per page (important — not every page should be as shareable as, say, my health data). MCP server connections are supported too, and any viewer gets asked for permission before anything runs on their behalf.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="limitations-and-roadmap-no-promises"&gt;Limitations and roadmap (no promises)&lt;/h2&gt;
&lt;p&gt;Pages is in &lt;strong&gt;public preview across Grafana Cloud&lt;/strong&gt; (not OSS yet, and it will always require Assistant to drive the prompt → page step). Known rough edges and wishes, with the usual &amp;ldquo;nothing here is a commitment&amp;rdquo;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Multi-editing&lt;/strong&gt;: today you don&amp;rsquo;t know if someone else is editing the same page, so you can clobber each other. A &amp;ldquo;someone else is editing&amp;rdquo; warning is coming before GA, with proper multiplayer later. (We hit this building the KubeCon deck.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Public sharing&lt;/strong&gt; and &lt;strong&gt;share-by-domain&lt;/strong&gt;: open questions, driven by feedback.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt;: pages and their remixes naturally form a graph of related code artifacts, so a Git-inspired storage model feels like the next natural step.&lt;/li&gt;
&lt;li&gt;Higher environment fidelity, templates (rolling out now), and more examples.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want it for OSS — which I personally do — leave a comment so the team can champion it internally.&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://play.grafana.org/"&gt;Grafana Play&lt;/a&gt; — try the public Pages (games included), no login required&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/products/cloud/"&gt;Grafana Cloud&lt;/a&gt; — sign up free; Pages is in public preview&lt;/li&gt;
&lt;li&gt;&lt;a href="https://slack.grafana.com"&gt;Grafana Community Slack&lt;/a&gt; — there&amp;rsquo;s a Grafana Pages channel for feedback&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="related-reading"&gt;Related reading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;My notes on &lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;Grafana Assistant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="more-from-the-context-window"&gt;More from The Context Window&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nicolevanderhoeven.com/blog/20260626-context-window-05-ai-evaluation/"&gt;#05: An Overview of AI Evaluation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicolevanderhoeven.com/blog/20260603-context-window-04-cli-mcp/"&gt;#04: CLI and MCP Basics for AI Agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicolevanderhoeven.com/blog/20260422-context-window-03-ai-observability/"&gt;#03: All About AI Observability&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="transcript"&gt;Transcript&lt;/h2&gt;
&lt;h3 id="intro-guests-and-observabilitycon-recap"&gt;Intro, guests, and ObservabilityCON recap&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Hi everyone, welcome to another episode of The Context Window. Today we&amp;rsquo;re talking about the hottest thing — in my opinion — to come out of ObservabilityCON: Grafana Pages. It&amp;rsquo;s a way to build a live, interactive data app right from your Grafana instance, with just prompts and no code. I&amp;rsquo;m not the only one excited about it, so — Tiffany, do you want to introduce yourself, my awesome co-host?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tiffany:&lt;/strong&gt;
Hi, I&amp;rsquo;m Tiffany, a developer advocate. Until literally a couple of days ago I was focused on Tempo, Pyroscope, and AI — and now just AI, so I get to dive into all this really cool stuff. This one&amp;rsquo;s new to me anyway.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
Hello, I&amp;rsquo;m Stephanie. I work in the AI department with Tom. We did a hackathon together for Pages and have been working on getting it released for ObservabilityCON. That&amp;rsquo;s been fun. Tom?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
Hi, I&amp;rsquo;m Tom, also in the AI department — I&amp;rsquo;ve been at Grafana seven years. For the last couple of months Stephanie and I were toying with the idea of giving Assistant a proper Linux sandbox and a proper way to execute code. We didn&amp;rsquo;t even set out to build Pages — then we realized we could just let it write React code, and that gives you so much better visualizations and tailored outcomes than dashboards.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
I&amp;rsquo;m Nicole van der Hoeven, a developer advocate mainly focused on AI right now. And I wanted to mention ObservabilityCON, which just passed — I wasn&amp;rsquo;t there in person, but a lot came out of it. The keynote on YouTube is really good.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
Can I tell you a secret? The keynote is a Page. And, sneakily, so is this presentation. The three ObservabilityCON themes were autonomous operations — and look, there&amp;rsquo;s Grafana Pages right there — cloud economics, and context. We&amp;rsquo;ll focus on Pages.&lt;/p&gt;
&lt;h3 id="what-grafana-pages-is-1"&gt;What Grafana Pages is&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
We started by working on sandboxing for coding agents, then in a hackathon realized we could use those sandboxes for Grafana Pages. It lets you see your data in more interactive ways — you can prompt Assistant with &amp;ldquo;I want to look at my business revenue for the past quarter,&amp;rdquo; or weather on a mountain, and it creates unique interactive ways to look at data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
If I had to describe it, it&amp;rsquo;s all of Grafana minus the panel grid. Same data sources, same RBAC, same underlying panels, same visualization libraries. It&amp;rsquo;s just no longer you arranging them on a grid, or Assistant trying to fuse your thoughts into what a dashboard can represent — we unlock Assistant and let it write code and build a website. But you&amp;rsquo;re not giving up the things that make Grafana production- and enterprise-ready, carefully worked out over nine years.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tiffany:&lt;/strong&gt;
And the sandboxes you mentioned — is that the Grafana-managed sandboxes that also got released?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
Those were coined more towards auto-remediation and investigations, where we use sandboxes to look at your source code and check a hypothesis for why something&amp;rsquo;s broken. But it&amp;rsquo;s the very same underlying layer of Linux compute for AI agents that powers Pages too.&lt;/p&gt;
&lt;h3 id="grafana-pages-examples-on-grafana-play"&gt;Grafana Pages examples on Grafana Play&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
The best way to understand Pages is to dive in on Grafana Play — this playground for all things Grafana. No login, no Cloud account. You can just mess around and see what people have already created.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
Here&amp;rsquo;s an observability survey — we run one every year — turned into a game. It&amp;rsquo;s pulling in real data that&amp;rsquo;s already on Play, with little animations, streaks, ten questions. Maybe you think reading the survey is dry; a game could help. And this was &lt;em&gt;one&lt;/em&gt; prompt: &amp;ldquo;make me a higher-lower game, comic-book style.&amp;rdquo; I&amp;rsquo;m not a front-end engineer — I did not do this.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a quarterly-review example, also one prompt, all interactive — drill into what the customer is thinking, different regions, fake sales data. I can&amp;rsquo;t get over how pretty it is. There&amp;rsquo;s also a Sources tab so you can see the queries behind the data. A teammate made one that pulls your GitHub data and thanks you for your contributions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
That one uses the inline Assistant, so the page itself can make model generations — it shows the thank-you in the viewer&amp;rsquo;s native language, guessed from internal data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
The powerful part is it&amp;rsquo;s not static. You can make a page that summarizes recent data, and it&amp;rsquo;s not hard-coding the summary — every time you open it, it first fetches recent data and tells you the most noteworthy events in the last 24 hours. I made an on-call rotation page that surfaces the most urgent things every time I look.&lt;/p&gt;
&lt;h3 id="build-a-grafana-page-from-a-prompt"&gt;Build a Grafana Page from a prompt&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
Since it&amp;rsquo;s so easy to prompt — can we build one from scratch on Play?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
You go to Pages, create a new page, pick from starter examples that give Assistant some styling direction so you don&amp;rsquo;t need a huge prompt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Let&amp;rsquo;s say: &lt;em&gt;&amp;ldquo;Create a page to summarize what is noisy and needs attention from the on-call engineer — give us a summary of the top three things.&amp;rdquo;&lt;/em&gt; It&amp;rsquo;s so cool that making a page is now just that easy.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
It&amp;rsquo;s looping through alerts, figuring out the alert states, and showing its queries in the Sources tab — so it&amp;rsquo;s not hand-wavy; you can check it&amp;rsquo;s actually doing what you asked.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
Depending on what you ask, it can take a bit longer. Let&amp;rsquo;s leave it and jump to some other things.&lt;/p&gt;
&lt;h3 id="personal-data-pages-sleep-and-flight-tracking"&gt;Personal data Pages: sleep and flight tracking&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
I have two smart rings — Ultrahuman and Oura. I hooked up both data sources (they have API endpoints), and this whole page was one prompt: how much sleep I get each year, best and worst months, by season. I average just under seven hours. I didn&amp;rsquo;t ask for the blue-purple theming either.&lt;/p&gt;
&lt;p&gt;Then it added a travel page — I realized it&amp;rsquo;s correlating my flights with my sleep, because I have flight data in here too (TripIt and Flighty, ten years). I didn&amp;rsquo;t ask it to do that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tiffany:&lt;/strong&gt;
I was literally looking into TripIt yesterday — and apparently they closed the API in late September to anyone not already using it. I&amp;rsquo;m so glad you&amp;rsquo;ve been using it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
This replay — this one I &lt;em&gt;did&lt;/em&gt; ask for, so two prompts — animates all my flights, new countries, busiest month. Pages has been useful for more than the usual outages.&lt;/p&gt;
&lt;h3 id="grafana-pages-vs-dashboards"&gt;Grafana Pages vs dashboards&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
When would you build a page versus a dashboard? Are you all-Pages all the time now?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
The product person in me says &amp;ldquo;make it a page, period.&amp;rdquo; Honestly we don&amp;rsquo;t fully know yet — Pages cover many dashboard use cases. If you have a well-understood dashboard that serves you well, there might be no immediate reason to change it. But in general Pages should replace most dashboard use cases, and if they fall short, that&amp;rsquo;s a reason to talk to us.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
For dashboards, if you need a dashboards-as-code story — running the same dashboard across many clusters — we don&amp;rsquo;t have Pages-as-code right now, so dashboards still win there.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
Pages will not come to OSS without Assistant — the way it works, you have to prompt Assistant to make it into a page. Assistant has a lot of smarts about correlating Grafana data; a vanilla model wouldn&amp;rsquo;t have the opinionated, docs-backed best practices.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
Pages are very much a Grafana thing. Grafana has always stood for two things — that it&amp;rsquo;s pretty, and that it&amp;rsquo;s serious, as in real data, not made up. We tried hard to preserve both: lots of tuning so a small prompt gives a pretty page, and it still retains inspectability and real data rather than looking like LLM slop. If you just want to post something up, tools like Claude artifacts already exist.&lt;/p&gt;
&lt;h3 id="remix-a-page-or-create-one-from-a-dashboard"&gt;Remix a Page or create one from a dashboard&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
The main way is prompting. There&amp;rsquo;s also &amp;ldquo;make your own,&amp;rdquo; where you prompt it much more specifically about the look. Templates are coming — define a style for your whole org&amp;rsquo;s presentations. And you can &lt;strong&gt;remix&lt;/strong&gt; a page: it uses the page as a reference and changes style, data sources, or format depending on what you ask; saved as its own new page.&lt;/p&gt;
&lt;p&gt;For editing, you highlight an element and it&amp;rsquo;s attached as context — the DOM node with its &lt;code&gt;data-page-id&lt;/code&gt; — so you can ask how it got the data, or request a change to that specific element. You can also start a page &lt;strong&gt;from a dashboard&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
I tend to build a page when I want to tell a story with the data — some narrative, maybe annotation. My dashboards get cluttered; Pages lets me streamline to what&amp;rsquo;s readable without deleting anything. Great for explaining something to my manager.&lt;/p&gt;
&lt;h3 id="share-pages-and-control-access"&gt;Share Pages and control access&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
To share, you can add specific people, say &amp;ldquo;anyone with this link,&amp;rdquo; or put it in a folder so folder permissions apply. There&amp;rsquo;s no fully public &amp;ldquo;share with the world&amp;rdquo; option today — that&amp;rsquo;s a feature request; let us know in the comments. And data access respects user permissions: if you can open a page but lack access to its data sources, it opens but shows no data, just like dashboards.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
It&amp;rsquo;s best described as the Google Docs/Slides model — share with specific people or generate a link — but viewers must be logged into the Grafana instance. There&amp;rsquo;s no public option yet.&lt;/p&gt;
&lt;h3 id="how-pages-work-react-sandboxes-and-iframes-1"&gt;How Pages work: React, sandboxes, and iframes&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
A dashboard is configuration — a big JSON blob Grafana lays out into the panel grid at runtime. A Page is lower-level: what the agent produces is React source code for a website, which we render in a heavily locked-down, isolated iframe, piping through carefully chosen data.&lt;/p&gt;
&lt;p&gt;Something has to safely compile that JSX and bundle it, which is unsafe to do with arbitrary model output — so each conversation gets a thin micro-VM. Making that scalable took most of the platform time: you don&amp;rsquo;t want to wait two or three minutes for an EC2. We got it to start in under 10 seconds, every command finishing in under two.&lt;/p&gt;
&lt;p&gt;The term &amp;ldquo;sandbox&amp;rdquo; is overloaded. There are two: the Linux micro-VM used while building or editing a page — once built, it&amp;rsquo;s just HTML in an S3 bucket, no VM anymore — and the iframe isolation layer inside Grafana, so AI-generated content renders safely without leaking your data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
There&amp;rsquo;s a setting for what a page can call out to, and you can control it per page — some things, like my health data, shouldn&amp;rsquo;t be broadly available. MCP server connections are supported too, and viewers are asked for permission before anything runs on their behalf.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
Data sources still use the user&amp;rsquo;s permissions — if you don&amp;rsquo;t have access, it won&amp;rsquo;t show data. It builds on battle-tested, enterprise-ready foundations, so authorization and RBAC carry forward.&lt;/p&gt;
&lt;h3 id="limitations-roadmap-and-more-page-examples"&gt;Limitations, roadmap, and more Page examples&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Beyond sharing, what other limitations should people be aware of?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
Multi-editing is difficult — right now you don&amp;rsquo;t know if someone else is editing a page, so you can overwrite their work. Until GA, just tell people if you&amp;rsquo;re editing. We&amp;rsquo;ll have a &amp;ldquo;someone else is editing&amp;rdquo; warning before GA and proper multi-edit later. Templates are rolling out now.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
Pages and remixed pages form a graph of relationships and are code artifacts, so some Git-inspired storage system feels like the natural next step — but it needs careful thinking.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
I have an unnecessary setup where Alloy on my laptop sends metrics about my Obsidian notes into Loki and Prometheus — and I have a page for all of it: top topic this month, a GitHub-style contribution heat map, a graph view. I didn&amp;rsquo;t ask for any of the styling; I just said &amp;ldquo;here&amp;rsquo;s some data, build me a page.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stephanie:&lt;/strong&gt;
My favourite is my StairMaster world tour — I do mountaineering, so as I travel for work I find StairMasters with pretty views. One prompt ranked the gyms by view, added a mini-game for out-of-order machines, and pulled motivational quotes from ultrarunners. I also made one for summit weather conditions on different mountains.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
There&amp;rsquo;s a Grafana Play page on Singapore weather and haze that&amp;rsquo;s beautiful — it shows wind direction and air quality across regions, with a 72-hour replay. I have family in Singapore, so I care about the air quality. Amazing stuff.&lt;/p&gt;
&lt;p&gt;If you want to try this, sign up for a free Grafana Cloud account — Pages is in public preview, nothing to contact anyone about — or just play with the ones on Grafana Play. And please give feedback: there&amp;rsquo;s a Grafana Pages channel in the community Slack and a Reddit post. Comment on the video too, especially if you want it for OSS so we can champion it internally.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Thank you all for joining — this was a fun one. The next Context Window livestream is later this month with William Dumont, about Assistant Watchers. Stay tuned.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tom:&lt;/strong&gt;
Thanks for building this amazing tool — it&amp;rsquo;s my favourite feature on Grafana now.&lt;/p&gt;</description></item><item><title>Asimov's Zeroth Law of Robotics: Testing for AI (HUSTEF 2026)</title><link>https://nicolevanderhoeven.com/blog/20261007-asimovs-zeroth-law-testing-for-ai-hustef/</link><pubDate>Wed, 07 Oct 2026 10:00:00 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20261007-asimovs-zeroth-law-testing-for-ai-hustef/</guid><description>&lt;p&gt;This week I gave a keynote at &lt;a href="https://hustef.com/nicole_van_der_hoeven_2026/"&gt;HUSTEF 2026&lt;/a&gt; in Budapest, Hungary. The talk is called &lt;em&gt;Asimov&amp;rsquo;s Zeroth Law of Robotics: Testing for AI&lt;/em&gt; — a testing-focused evolution of a talk I&amp;rsquo;ve been giving (and rewriting) for a while, previously as &lt;em&gt;Observability for AI&lt;/em&gt; at &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU 2025&lt;/a&gt; in London, &lt;a href="https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; in Utrecht, &lt;a href="https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/"&gt;NewCrafts&lt;/a&gt; in Paris, and &lt;a href="https://nicolevanderhoeven.com/blog/20260526-asimovs-zeroth-law-expoqa-madrid/"&gt;ExpoQA Madrid 2026&lt;/a&gt;. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A robot may not harm humans. A robot must obey humans. A robot must protect its own existence. These are Isaac Asimov&amp;rsquo;s three Laws of Robotics, created to govern the ethical programming of artificial intelligences. From the Butlerian Jihad to Skynet to cylons, we&amp;rsquo;ve been immortalizing our collective nightmares about artificial intelligence for years. But there&amp;rsquo;s an unmentioned law that comes as a prerequisite to all of that: &lt;strong&gt;a robot must be testable.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;AI systems fail differently than traditional software. There&amp;rsquo;s no single correct output to assert against. A response can be fluent and completely wrong. Models drift silently over time. And yet we&amp;rsquo;re shipping AI into production — often without knowing what &amp;ldquo;passing&amp;rdquo; even looks like.&lt;/p&gt;
&lt;p&gt;Observability is what makes testing possible. When we can see inside our AI systems — trace the chain of reasoning, measure what changed, surface what failed — we can start to write evaluations, define what &amp;ldquo;good&amp;rdquo; looks like, and catch regressions we didn&amp;rsquo;t know to look for.&lt;/p&gt;
&lt;p&gt;In this talk, I explore what it means to test AI in the real world, drawing on lessons from building and evaluating an AI assistant for a large-scale observability platform. I&amp;rsquo;ll cover how evaluations work as the AI equivalent of a test suite, what to measure, how to catch hallucinations, and how to know when your model has regressed.&lt;/p&gt;
&lt;p&gt;You cannot test what you cannot see — and you cannot trust what you cannot test.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/20261007-hustef-01.jpg" alt="Wide shot of me presenting the keynote at HUSTEF 2026, with the title slide reading “The Zeroth Law of Robotics: A robot must be testable” on the big screen above a full audience." loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The big shift in this version is right there in the Zeroth Law itself. In earlier iterations I argued that &lt;em&gt;a robot must be observable&lt;/em&gt;. That&amp;rsquo;s still true — observability is the only way to see the reasoning behind a system and find out what actually happened. But I&amp;rsquo;ve come to think that pure knowledge isn&amp;rsquo;t the same as trust. You can know exactly what a system did and still not trust it. The only way to trust something is to put it through its paces: to know how it behaves in the situations you foresee, and even the ones you don&amp;rsquo;t. So the Zeroth Law has become &lt;strong&gt;a robot must be &lt;em&gt;testable&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I framed the whole thing around Asimov&amp;rsquo;s short story &lt;em&gt;Runaround&lt;/em&gt; (from &lt;em&gt;I, Robot&lt;/em&gt;) and its robot, Speedy. Speedy&amp;rsquo;s smuggler owners sent him to collect selenium on Mercury, and he got stuck in a loop — circling the selenium pool, unable to resolve the conflict between obedience (the second law) and self-preservation (the third). His owners couldn&amp;rsquo;t predict his behaviour and couldn&amp;rsquo;t reason about it, so they had to do the only thing left: go out into the danger zone and fix him in production. Speedy wasn&amp;rsquo;t untestable because his owners were incompetent or lacked the tools — he was untestable because he was never &lt;em&gt;built&lt;/em&gt; to be tested. That&amp;rsquo;s the trap I think a lot of AI systems are walking into right now.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/20261007-hustef-02.jpg" alt="Me looking up at a slide of an armoured robot running across the surface of Mars while I present." loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The through-line for a testing audience: AI is rewriting &lt;em&gt;how&lt;/em&gt; software gets built, but it doesn&amp;rsquo;t rewrite the discipline of trust. Trust that a system does what we say it does, and that when it breaks we know why and can fix it — that&amp;rsquo;s always been the job, and it isn&amp;rsquo;t going anywhere. There&amp;rsquo;s a whole generation of AI engineers shipping software they haven&amp;rsquo;t tested and can&amp;rsquo;t explain, and when someone says &amp;ldquo;the agent does this,&amp;rdquo; our job is still to ask &lt;em&gt;how do you know?&lt;/em&gt; Testing isn&amp;rsquo;t just going to survive the age of AI — testing is the reason AI gets to survive, if we make it testable.&lt;/p&gt;
&lt;p&gt;I demoed this with my TTRPG side project: an AI Dungeon Master, instrumented and put under test. It turns out that writing evals for something non-deterministic forces you to confront your real requirements. I thought I knew exactly when a dungeon master should call for a dice roll — I GM myself! — but trying to put it into words (&amp;ldquo;in &lt;em&gt;this&lt;/em&gt; situation I&amp;rsquo;d roll, but in &lt;em&gt;that&lt;/em&gt; one I wouldn&amp;rsquo;t, because I want to keep the story moving&amp;rdquo;) surfaced decisions I&amp;rsquo;d never had to make explicit. Those are things we&amp;rsquo;d normally discover much later, in production. Having to figure them out up front is a win.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/20261007-hustef-03.jpg" alt="Me grinning during the talk, holding a microphone and presenter clicker." loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Q&amp;amp;A was genuinely great and ranged well beyond the slides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;When has an AI been tested &lt;em&gt;enough&lt;/em&gt;?&amp;rdquo;&lt;/strong&gt; Same answer as for anything else — it&amp;rsquo;s a mix of risk and budget. If it were a life-critical robot like Speedy, you test every scenario the people relying on it need. For my little demo app, less so.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testers vs. developers in the age of AI.&lt;/strong&gt; I said I&amp;rsquo;d fire developers before testers — provocatively, but the point stands: anyone can write code now. What made a good developer good was never the coding; it was communicating with business &lt;em&gt;and&lt;/em&gt; engineers, translating requirements, finding creative-but-safe solutions. Testers already think at that level and translate across teams, which makes them &lt;em&gt;more&lt;/em&gt; important in the age of AI, not less.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Defining expected results for non-deterministic systems&lt;/strong&gt;, multi-turn evals (I give the simulated user a &lt;em&gt;personality&lt;/em&gt; — adversarial, cooperative, beginner — rather than a script), and the broader shift from imperative to declarative: we no longer instruct step by step, we declare the end state we want, the way we do with Kubernetes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Convincing colleagues not to fear AI.&lt;/strong&gt; I don&amp;rsquo;t, really. AI is here to stay; the question isn&amp;rsquo;t whether you approve of it, it&amp;rsquo;s whether you want to stay in this industry and help make it safe and trustworthy — or sit on the sidelines.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also recommended the book &lt;a href="https://link.amazon/B0e4SIur8"&gt;&lt;em&gt;Slow AI&lt;/em&gt;&lt;/a&gt;, which lands where I do: not an AI apologist, not a boycott, but a clear-eyed list of what AI is and isn&amp;rsquo;t good for — and the reminder to keep checking whether a given use of AI is making you &lt;em&gt;more&lt;/em&gt; capable or less.&lt;/p&gt;
&lt;p&gt;The demo app (the instrumented AI DM) lives on &lt;a href="https://nicole.to/asimov"&gt;GitHub&lt;/a&gt;, and I keep refining it with each iteration of this talk.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll update this post with the recording once HUSTEF publishes it.&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nicole.to/hustef"&gt;Slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicole.to/asimov"&gt;Demo app on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://link.amazon/B0e4SIur8"&gt;&lt;em&gt;Slow AI&lt;/em&gt; (book)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Previous versions of this talk: &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU 2025&lt;/a&gt; · &lt;a href="https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; · &lt;a href="https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/"&gt;NewCrafts 2025&lt;/a&gt; · &lt;a href="https://nicolevanderhoeven.com/blog/20260526-asimovs-zeroth-law-expoqa-madrid/"&gt;ExpoQA Madrid 2026&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Context Engineering Fundamentals (The Context Window #06)</title><link>https://nicolevanderhoeven.com/blog/20261002-context-window-06-context-engineering-fundamentals/</link><pubDate>Fri, 02 Oct 2026 18:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20261002-context-window-06-context-engineering-fundamentals/</guid><description>&lt;p&gt;What actually counts as &amp;ldquo;context&amp;rdquo; for an AI agent — and how does it find the right things to put in a limited window? In this episode of &lt;em&gt;The Context Window&lt;/em&gt; — Grafana&amp;rsquo;s livestream series on AI in observability — I dig into &lt;strong&gt;context engineering fundamentals&lt;/strong&gt; with &lt;a href="https://www.linkedin.com/in/ben-sully/"&gt;Ben Sully&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/ioanna-armouti/"&gt;Ioanna Armouti&lt;/a&gt;. We treat the context window as an &lt;strong&gt;attention budget&lt;/strong&gt;, walk through Assistant Search and semantic retrieval, embeddings, and how you actually &lt;em&gt;evaluate&lt;/em&gt; whether the retrieved context was any good.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Vn04wQ0T9PU?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="what-we-cover"&gt;What we cover&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What counts as context&lt;/strong&gt; — and why the context window behaves more like an &lt;em&gt;attention budget&lt;/em&gt; than just a size limit.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Finding the right context&lt;/strong&gt; — Assistant Search, semantic retrieval, and embeddings: how an agent surfaces what it needs instead of being handed everything.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evaluating retrieved context&lt;/strong&gt; — because retrieval that &lt;em&gt;looks&lt;/em&gt; relevant isn&amp;rsquo;t the same as retrieval that &lt;em&gt;is&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The tool tax and tool deferral&lt;/strong&gt; — every tool definition costs context, so when do you load it versus defer it?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Progressive disclosure and long-term memory&lt;/strong&gt; — giving the agent what it needs, when it needs it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Why removing 80% of a system prompt can change nothing&lt;/strong&gt; — a nice illustration that more context is not automatically better context.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/Context+Engineering"&gt;My notes on Context Engineering&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/Context"&gt;My notes on Context&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;My notes on Grafana Assistant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>AI Week Day 5: Collaborating (Grafana AI Week — Friday)</title><link>https://nicolevanderhoeven.com/blog/20260731-ai-week-friday-collaborating/</link><pubDate>Fri, 31 Jul 2026 09:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260731-ai-week-friday-collaborating/</guid><description>&lt;p&gt;The final day of AI Week is about &lt;strong&gt;collaborating&lt;/strong&gt; — using AI right where your team already works, no context switching required. &lt;strong&gt;Grafana Assistant in Slack is now generally available&lt;/strong&gt;: investigate issues, ask follow-up questions, and query your metrics and logs from the channel where the incident conversation is already happening. And that&amp;rsquo;s just one place Assistant now meets you — also announced: the &lt;strong&gt;Grafana mobile app is GA&lt;/strong&gt; (with Assistant on mobile in public preview), &lt;strong&gt;Assistant Desktop&lt;/strong&gt; in public preview, &lt;strong&gt;Microsoft Teams&lt;/strong&gt; support in private preview, and context-aware &lt;strong&gt;Assistant Search&lt;/strong&gt; in public preview. Add it all up and Assistant is now wherever you are: the Grafana UI, the API, your terminal, your coding agent, Slack, Teams, mobile, desktop, and search. That&amp;rsquo;s a wrap on five days of announcements.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/obBh4pMrHCM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="transcript"&gt;Transcript&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s the final day of Grafana Labs&amp;rsquo; AI Week, and Friday is all about &lt;strong&gt;collaborating&lt;/strong&gt; — using AI right where your team already works, no context switching required.&lt;/p&gt;
&lt;p&gt;Today, &lt;strong&gt;Grafana Assistant in Slack is generally available.&lt;/strong&gt; Investigate issues, ask follow-up questions, query your metrics and logs — all from the channel where your incident conversation is already happening.&lt;/p&gt;
&lt;p&gt;And that&amp;rsquo;s just one place Assistant now meets you. Today we also announced: the &lt;strong&gt;Grafana mobile app is GA&lt;/strong&gt;, with Assistant on mobile in public preview. &lt;strong&gt;Assistant Desktop&lt;/strong&gt; is in public preview. &lt;strong&gt;Microsoft Teams&lt;/strong&gt; support is in private preview. And &lt;strong&gt;Assistant Search&lt;/strong&gt; — deeper, context-aware search — is in public preview too.&lt;/p&gt;
&lt;p&gt;Add it all up, and Assistant is now wherever you are: the Grafana UI, the API, your terminal, your coding agent, Slack, Teams, mobile, desktop, and search.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s a wrap on five days of announcements — and I know it was a &lt;em&gt;lot&lt;/em&gt;. So if you missed a day, or you just want the full picture of where AI at Grafana stands today, I made a video for exactly that: everything you can do with AI in Grafana Cloud, including everything we shipped this week. It&amp;rsquo;s linked below and pinned in the comments.&lt;/p&gt;
&lt;p&gt;One last time: &lt;strong&gt;grafana.ai&lt;/strong&gt; for all of it. Thanks for spending AI Week with me.&lt;/p&gt;</description></item><item><title>Observability and AI explained</title><link>https://nicolevanderhoeven.com/blog/20260731-observability-and-ai-explained/</link><pubDate>Fri, 31 Jul 2026 09:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260731-observability-and-ai-explained/</guid><description>&lt;p&gt;&amp;ldquo;AI observability&amp;rdquo; gets thrown around a lot, and it can mean one of two very different things. So in this video I map out the whole landscape of AI-related work at Grafana across the entire software development lifecycle — and show how AI and observability come together in two directions: &lt;strong&gt;AI for observability&lt;/strong&gt; (AI that helps you observe your systems) and &lt;strong&gt;observability for AI&lt;/strong&gt; (observing the AI itself).&lt;/p&gt;
&lt;p&gt;The framing is deliberate: AI in observability isn&amp;rsquo;t about replacing engineers. It&amp;rsquo;s about handing back the exhausting parts of the job — the 3am triage, the repetitive queries, the report nobody wanted to write — so you can spend your energy on the work only humans can do.&lt;/p&gt;
&lt;p&gt;I walk through each phase of the lifecycle and where the tools fit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Planning&lt;/strong&gt; — clarity about what&amp;rsquo;s really going on, with &lt;a href="https://notes.nicolevanderhoeven.com/Grafana%20Assistant"&gt;Grafana Assistant&lt;/a&gt;: not just a chatbot, but an agent that knows your telemetry, writes your queries, and builds your dashboards.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Building&lt;/strong&gt; — momentum without losing control: Assistant, the open-source &lt;a href="https://notes.nicolevanderhoeven.com/GCX"&gt;GCX&lt;/a&gt; CLI, the Grafana MCP server, the specialized Loki/Tempo/k6 MCP servers, and the AI SDK for building your own agents in Go.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Operating&lt;/strong&gt; — staying calm under load: Investigations for agentic incident triage, Assistant Automations and the Watcher Agent for staying proactive, plus &lt;a href="https://notes.nicolevanderhoeven.com/Grafana%20Machine%20Learning"&gt;Grafana Machine Learning&lt;/a&gt; (Metrics Forecasting, Outlier Detection) and Adaptive Telemetry.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testing &amp;amp; evaluating&lt;/strong&gt; — &lt;a href="https://notes.nicolevanderhoeven.com/Doubt%20is%20a%20form%20of%20care"&gt;doubt is a form of care&lt;/a&gt;: &lt;a href="https://notes.nicolevanderhoeven.com/k6%20%28tool%29"&gt;k6&lt;/a&gt; and agentic testing on the systems side, and Agent Observability plus the open-source o11y-bench benchmark on the &amp;ldquo;observing your AI&amp;rdquo; side.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Collaborating&lt;/strong&gt; — bringing it all to where your team already works: Assistant in Slack (and coming to Teams), on mobile, on the desktop, and via API/MCP, plus Assistant Search across your Grafana artifacts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&amp;rsquo;re new to the Grafana stack itself, start with my open source observability video for the non-AI foundations that all of this builds on.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/OTmgMF6gD1k?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;My notes on &lt;a href="https://notes.nicolevanderhoeven.com/Grafana%20Assistant"&gt;Grafana Assistant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;My notes on &lt;a href="https://notes.nicolevanderhoeven.com/GCX"&gt;GCX&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;My notes on &lt;a href="https://notes.nicolevanderhoeven.com/k6%20%28tool%29"&gt;k6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://o11ybench.ai"&gt;o11ybench.ai&lt;/a&gt; — the open leaderboard for AI agents doing observability work&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>AI Week Day 4: Evaluating (Grafana AI Week — Thursday)</title><link>https://nicolevanderhoeven.com/blog/20260730-ai-week-thursday-evaluating/</link><pubDate>Thu, 30 Jul 2026 09:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260730-ai-week-thursday-evaluating/</guid><description>&lt;p&gt;Day four of AI Week is all about &lt;strong&gt;evaluating&lt;/strong&gt; — because building an agent is the easy part; &lt;em&gt;trusting&lt;/em&gt; it is where things get hard. The headline: &lt;strong&gt;Grafana Agent Observability is now generally available&lt;/strong&gt; — the tool Grafana built for itself while scaling Assistant, once it grew too complex to evaluate with unit tests. Instrument your agent with the SDK and your conversations, tool calls, traces, latency, token use, and cost all become observable in one place; add evaluators (LLM judges plus deterministic checks) to score quality on live traffic, feed low-scoring conversations into your test suite, and gate CI on experiments comparing a candidate against a baseline. And because evaluator metrics land in Prometheus, you can get paged when a bad prompt change tanks quality. The fun bonus: &lt;strong&gt;k6 agentic testing&lt;/strong&gt; — describe a browser test in plain language and an agent embedded in k6 drives the browser, no script required (they proved it by getting it to beat Wordle).&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/FOHdEm-_DEQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="transcript"&gt;Transcript&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s day four of Grafana Labs&amp;rsquo; AI Week, and Thursday is all about &lt;strong&gt;evaluating&lt;/strong&gt; — because building an agent is the easy part. &lt;em&gt;Trusting&lt;/em&gt; it is where things get hard.&lt;/p&gt;
&lt;p&gt;The big news: &lt;strong&gt;Grafana Agent Observability is now generally available.&lt;/strong&gt; This is the tool we built for ourselves while scaling Grafana Assistant, when it grew too complex to evaluate with unit tests. Now it&amp;rsquo;s available to everyone on Grafana Cloud.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s how it works: instrument your agent with the SDK, and your conversations, tool calls, traces, latency, token use, and cost all become observable in one place. Then add evaluators — LLM judges plus deterministic checks — to score quality on live traffic. Low-scoring conversations feed your test suite, and experiments let you compare a candidate against a baseline before you ship — you can even make it a CI gate. And because evaluator metrics land in Prometheus, you can get paged if a bad prompt change tanks quality in production.&lt;/p&gt;
&lt;p&gt;But my favorite part of today? &lt;strong&gt;k6 agentic testing.&lt;/strong&gt; Describe a browser test in plain natural language, and an agent embedded in k6 drives the browser for you — no script at all. And to prove it, we gave it one job: beat Wordle. Go watch that video. I&amp;rsquo;ll wait.&lt;/p&gt;
&lt;p&gt;Everything&amp;rsquo;s at &lt;strong&gt;grafana.ai&lt;/strong&gt; — see you tomorrow for the finale: using AI where your team already works.&lt;/p&gt;</description></item><item><title>Investigations Arena: how we test Assistant investigations</title><link>https://nicolevanderhoeven.com/blog/20260730-investigations-arena/</link><pubDate>Thu, 30 Jul 2026 09:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260730-investigations-arena/</guid><description>&lt;p&gt;How do you test an AI agent whose whole job is to investigate incidents — when every investigation is different and &amp;ldquo;correct&amp;rdquo; isn&amp;rsquo;t a single deterministic answer? In this interview I sit down with &lt;strong&gt;Will&lt;/strong&gt;, a software engineer at Grafana who&amp;rsquo;s spent the last year focused on AI: the Grafana Assistant, investigations, and memory features.&lt;/p&gt;
&lt;p&gt;The story here is how the team got from Investigations V1 to a much better V2. V1 hit a ceiling, and the demo environment they&amp;rsquo;d been testing against turned out to be the problem — the cases were too easy and too far from the messy reality of a production cluster. So they built an &lt;strong&gt;arena&lt;/strong&gt;: think competitive bot programming, but the &amp;ldquo;game&amp;rdquo; is investigating real incidents in Grafana&amp;rsquo;s own production environment. Different AI agents, each with its own strategy and tools, all take a swing at the same incident, and an LLM-as-judge scores their answers against a human-verified root cause.&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s interesting is that the &lt;em&gt;score&lt;/em&gt; wasn&amp;rsquo;t even the most valuable output at first — the &lt;strong&gt;insights&lt;/strong&gt; were. Watching which strategies worked, which tools returned so much noise that they poisoned the context, and which agents wandered off is what let the team optimize bit by bit into the V2 release. The arena also compares more than models: different harnesses running Sonnet vs. Opus, Claude Code with the Grafana MCP, even just hitting the public API directly with &lt;code&gt;curl&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A couple of my favorite moments: Will explains the &lt;strong&gt;guardrails&lt;/strong&gt; that stop agents from &amp;ldquo;cheating&amp;rdquo; (they can only look at data from within the incident&amp;rsquo;s time window, so they can&amp;rsquo;t peek at the fix commit that resolved it) — and how the models mostly play fair because they treat it like a game. And there&amp;rsquo;s a lovely example of emergent creativity: an agent reached for tools the team hadn&amp;rsquo;t even considered, they turned out to be genuinely useful for investigation, and those tools got promoted into the real harness. Will&amp;rsquo;s hope for the future is to open this up — an OliBench-style shared benchmark where the community can throw their own investigation agents into the arena and raise quality across the board.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/YPfqchw8LCo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="transcript"&gt;Transcript&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Will:&lt;/strong&gt;
Hey, my name is Will. I&amp;rsquo;m a software engineer at Grafana. I&amp;rsquo;ve been there for three years, and for the last year I&amp;rsquo;ve been focusing on AI — the Grafana Assistant, investigations, and memory features.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
And what&amp;rsquo;s the latest thing you&amp;rsquo;ve been working on?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Will:&lt;/strong&gt;
So we developed Investigations V1, and we saw that we hit a ceiling at some point. We came up with a different approach, but this time we needed a good evaluation environment — the demo environment wasn&amp;rsquo;t enough, because those cases were too easy and too far from the reality of a production environment. So we decided to build an arena.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s a little bit like the idea of competitive bot programming, where bots fight against each other on specific tasks or games. In this case, the topic was investigations in our production cluster — real incidents. We started building bots that had different strategies and different tools; these were AI agents. Comparing a diversity of strategies let us surface the best approaches, and from there we could iterate, bring in more test cases from more incidents, and reach higher and higher quality.&lt;/p&gt;
&lt;p&gt;The idea is that the bots try to solve the same case, and we use an LLM as a judge to compare the different approaches. We have different criteria, because for each incident we have a root cause that&amp;rsquo;s been verified by a human. That gives us our ground truth, and the LLM-as-judge compares that ground truth against the answers the agents came up with.&lt;/p&gt;
&lt;p&gt;The important part at first wasn&amp;rsquo;t even the score — it was the insights. This tool was better with this strategy; this one had noise in the results that poisoned the context; the results returned from this specific tool were just too much. So we managed to really optimize bit by bit and come up with Investigations V2, which we just released. It&amp;rsquo;s a massive improvement compared to our V1 approach.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
So is it comparing just different models for investigations, or is it also comparing things like Claude Code and the Grafana MCP versus Assistant?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Will:&lt;/strong&gt;
Both, actually. We have different versions of our harness for investigations that we run with Sonnet and with Opus, but we also use the Claude Code harness with the Grafana MCP — and even just using &lt;code&gt;curl&lt;/code&gt; to directly hit our public API.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Do the models ever cheat?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Will:&lt;/strong&gt;
So far it&amp;rsquo;s been quite good. We have guardrails. Because we investigate past incidents, we need to make sure the LLM only looks at a specific time window — only from when the incident started — otherwise it would be able to find the pull request that was used to solve the incident. But they&amp;rsquo;re pretty good at following the rules; they take it as a game a little bit. We even have an agent that checks afterward, with the judge, to make sure they followed every rule.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s funny, actually — we had a case using Claude Code where it started to use some tools we hadn&amp;rsquo;t thought about in the first place, and they turned out to be very useful for investigation. We&amp;rsquo;d never considered them, so we brought them into our investigation harness and it helped a lot. Giving the agents freedom and creativity in this kind of environment is really useful. That diversity sponsors new ideas that we can put into our own work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Cool. Do you have any plans to publish this and share it so that other people can do it too — kind of like OliBench?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Will:&lt;/strong&gt;
Yeah, I think, why not? I think we can go this way too. I&amp;rsquo;m sure it would be useful for other agents. And it would be very nice if we could compare agents from other people and other companies — maybe with different harnesses, maybe even different tools — because right now it&amp;rsquo;s mostly about our MCP, our CLI, and our investigation harness. But if the community comes up with their own investigation agents — and I think I&amp;rsquo;ve seen a few — it would be fun to put them in the arena and help not just our product, but any product improve in quality.&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;My notes on &lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;Grafana Assistant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>The Great Doubt: What Building an AI Agent Taught Us About Trust (KubeCon Japan 2026)</title><link>https://nicolevanderhoeven.com/blog/20260730-the-great-doubt-kubecon-japan/</link><pubDate>Thu, 30 Jul 2026 09:00:00 +0900</pubDate><guid>https://nicolevanderhoeven.com/blog/20260730-the-great-doubt-kubecon-japan/</guid><description>&lt;p&gt;This week I spoke at &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-japan/"&gt;KubeCon + CloudNativeCon Japan 2026&lt;/a&gt; in Yokohama, Japan. I gave a talk called &lt;em&gt;The Great Doubt: What Building an AI Agent Taught Us About Trust&lt;/em&gt;. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When we started building an AI assistant for observability, we thought the hard part would be making it smart. We were wrong. The hard part was knowing when to trust it.&lt;/p&gt;
&lt;p&gt;AI agents hallucinate, forget context, and confidently give wrong answers. Traditional testing doesn&amp;rsquo;t catch these failures. What&amp;rsquo;s needed is evaluation grounded in systematic doubt.&lt;/p&gt;
&lt;p&gt;This talk shares lessons from shipping an AI agent to production: how to build a golden dataset of use cases you must get right, how to use LLM-as-judge when there&amp;rsquo;s no ground truth, and how to use OpenTelemetry traces to debug eval failures. You&amp;rsquo;ll also hear what&amp;rsquo;s still unsolved: evaluating multi-agent handoffs and closing the feedback loop between what users ask and what your evals cover.&lt;/p&gt;
&lt;p&gt;Kyoto School philosopher Nishitani Keiji called this &amp;ldquo;The Great Doubt&amp;rdquo; (大疑): questioning every assumption until only what survives is real. For AI agents, that&amp;rsquo;s not philosophy. It&amp;rsquo;s the job.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The talk walks through the layers of doubt we worked through while building &lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;Grafana Assistant&lt;/a&gt;: doubting the agent itself, then doubting our tests, then the LLM-as-judge, then our own scores — and finally doubting whether the doubt was even justified. Each layer needed a different tool, from a golden dataset run in a fully synthetic observability environment, through online evals on live traffic, to per-conversation OpenTelemetry traces that link every eval score back to the exact LLM and tool calls that produced it.&lt;/p&gt;
&lt;p&gt;You can find the slides at &lt;a href="https://nicole.to/doubtslides"&gt;nicole.to/doubtslides&lt;/a&gt;, and you can watch the full talk below:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/uW9Hlp3fT14?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;p&gt;Grafana Assistant (generally available for Grafana OSS, Grafana Cloud, and Grafana Play):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/machine-learning/assistant/"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://play.grafana.org"&gt;Try it out on Grafana Play&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Assistant Investigations (Grafana Cloud):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gra.fan/investigations"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Agent Observability (Grafana Cloud):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gra.fan/agento11y"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;o11y-bench (OSS):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://gra.fan/o11ybench"&gt;Site&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Investigations Arena:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://youtu.be/YPfqchw8LCo"&gt;Video&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="related-reading"&gt;Related reading&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;My notes on &lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;Grafana Assistant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;My Context Horizon piece &lt;a href="https://contexthorizon.substack.com/p/unlearnings-from-building-grafana"&gt;&lt;em&gt;Unlearnings from building Grafana Assistant&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/4vZNlPD"&gt;&lt;em&gt;The Way of Zen&lt;/em&gt;&lt;/a&gt; by Alan W. Watts&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/3RgXGIP"&gt;&lt;em&gt;Zen Mind, Beginner&amp;rsquo;s Mind&lt;/em&gt;&lt;/a&gt; by Shunryu Suzuki&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/4vQW2eQ"&gt;&lt;em&gt;Religion and Nothingness, Volume 1&lt;/em&gt;&lt;/a&gt; by Nishitani Keiji&lt;/li&gt;
&lt;li&gt;&lt;a href="https://amzn.to/4yFff6d"&gt;&lt;em&gt;Philosophers of Nothingness: An Essay on the Kyoto School&lt;/em&gt;&lt;/a&gt; by James W. Heisig&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>AI Week Day 3: Operations &amp; Maintenance (Grafana AI Week — Wednesday)</title><link>https://nicolevanderhoeven.com/blog/20260729-ai-week-wednesday-operations/</link><pubDate>Wed, 29 Jul 2026 09:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260729-ai-week-wednesday-operations/</guid><description>&lt;p&gt;Day three of AI Week is about &lt;strong&gt;operations and maintenance&lt;/strong&gt; — because once code reaches production, the operational work is still surprisingly manual: someone&amp;rsquo;s watching dashboards, deciding whether an error spike is real, and writing up what happened, every single day. Two Grafana Assistant features went GA to take that off your plate. &lt;strong&gt;Assistant Automations&lt;/strong&gt; handle recurring work — save a prompt and run it on a schedule (like a morning brief on your service&amp;rsquo;s health), each run keeping its own history and able to notify you in Slack. &lt;strong&gt;Assistant Investigations&lt;/strong&gt; is for when something actually breaks: it digs across metrics, logs, traces, and profiles, develops and tests hypotheses, and hands you a structured report you can follow along with in a Workspace. You&amp;rsquo;re offloading vigilance, not accountability — the evidence is always there to review, and you still make the call.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/5P7qSKIRSek?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="transcript"&gt;Transcript&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s day three of AI Week, and Wednesday is all about &lt;strong&gt;operations and maintenance&lt;/strong&gt;. Because here&amp;rsquo;s the thing: once your code reaches production, the operational work is still surprisingly manual. Someone&amp;rsquo;s watching dashboards, someone&amp;rsquo;s deciding whether that error spike is real, and someone&amp;rsquo;s writing up what happened — every single day.&lt;/p&gt;
&lt;p&gt;Today, two features of Grafana Assistant are now generally available to take that burden off your plate: &lt;strong&gt;Investigations&lt;/strong&gt; and &lt;strong&gt;Automations&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Assistant Automations&lt;/strong&gt; handle the recurring work of operating a system. Save an Assistant prompt and run it on a schedule — like a morning brief that summarizes the operational health of your service over the last 24 hours. Every run keeps its own conversation and history, and it can notify you in Slack when it&amp;rsquo;s done or needs approval.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Assistant Investigations&lt;/strong&gt; is for when something actually breaks. Investigations digs into issues across your metrics, logs, traces, and profiles, develops and tests hypotheses, and hands you a structured report. You can follow along in a Workspace, see what&amp;rsquo;s been ruled out, and add guidance while it works.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;re offloading vigilance, not accountability — the evidence and reasoning are always there to review, and you still make the call.&lt;/p&gt;
&lt;p&gt;Everything&amp;rsquo;s at &lt;strong&gt;grafana.ai&lt;/strong&gt; — see you tomorrow for day four: evaluating your agents.&lt;/p&gt;</description></item><item><title>AI Week Day 2: Building (Grafana AI Week — Tuesday)</title><link>https://nicolevanderhoeven.com/blog/20260728-ai-week-tuesday-building/</link><pubDate>Tue, 28 Jul 2026 09:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260728-ai-week-tuesday-building/</guid><description>&lt;p&gt;Day two of AI Week is all about &lt;strong&gt;building&lt;/strong&gt; — the AI tools that help you write software with confidence. Two big announcements went generally available: &lt;strong&gt;gcx&lt;/strong&gt; (the Grafana CLI) and the &lt;strong&gt;Grafana MCP server&lt;/strong&gt;. Both connect your coding agents — Claude Code, Cursor, and friends — to your Grafana telemetry. The MCP server gives agents opinionated, ready-made tools for the common cases (querying metrics and logs, reading and updating dashboards); gcx is the more flexible, less opinionated option, built for agents from the ground up with read-only guardrails and its own bundle of agent skills. Both work for OSS and Grafana Cloud. The point: when an agent writes your code, it shouldn&amp;rsquo;t be guessing — it should be looking at how your system &lt;em&gt;actually&lt;/em&gt; behaves in production. That&amp;rsquo;s telemetry-driven development.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Y3QtH94f77U?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="transcript"&gt;Transcript&lt;/h2&gt;
&lt;p&gt;It&amp;rsquo;s day two of Grafana Labs&amp;rsquo; AI Week, and Tuesday is all about &lt;strong&gt;building&lt;/strong&gt; — the AI tools that help you build software with confidence.&lt;/p&gt;
&lt;p&gt;Today we have two big announcements: &lt;strong&gt;gcx&lt;/strong&gt; and the &lt;strong&gt;Grafana MCP server&lt;/strong&gt; are both now generally available.&lt;/p&gt;
&lt;p&gt;Both of them connect your coding agents — think Claude Code or Cursor — to your Grafana telemetry. So what&amp;rsquo;s the difference?&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Grafana MCP server&lt;/strong&gt; gives your agent opinionated, ready-made tools for the most common use cases: querying your metrics and logs, reading and updating dashboards, that kind of thing. You can run it yourself, or use the hosted MCP server with your Grafana Cloud stack — so yes, it works for both &lt;strong&gt;OSS and Grafana Cloud&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;gcx&lt;/strong&gt; is the Grafana CLI, and it&amp;rsquo;s the more flexible, less opinionated option. Agents can explore it and build their own workflows, and it was designed for agents from the ground up, with read-only guardrails so your agent can&amp;rsquo;t touch anything you didn&amp;rsquo;t approve. It works with Cloud stacks and self-managed instances, and it even ships with its own bundle of agent skills.&lt;/p&gt;
&lt;p&gt;Why does this matter? Because when an agent writes your code, it shouldn&amp;rsquo;t be guessing — it should be looking at how your system &lt;em&gt;actually&lt;/em&gt; behaves in production. That&amp;rsquo;s telemetry-driven development.&lt;/p&gt;
&lt;p&gt;Head to &lt;strong&gt;grafana.ai&lt;/strong&gt; for everything we&amp;rsquo;re shipping this week, and I&amp;rsquo;ll see you tomorrow for day three.&lt;/p&gt;</description></item><item><title>AI Week Day 1: Planning (Grafana AI Week — Monday)</title><link>https://nicolevanderhoeven.com/blog/20260727-ai-week-monday-planning/</link><pubDate>Mon, 27 Jul 2026 09:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260727-ai-week-monday-planning/</guid><description>&lt;p&gt;It&amp;rsquo;s day one of Grafana Labs&amp;rsquo; AI Week, and Monday is all about &lt;strong&gt;planning&lt;/strong&gt; — getting the clarity you need on what&amp;rsquo;s going on in your system so you can figure out what to build. Kicking things off is &lt;strong&gt;Workspace for Grafana Assistant&lt;/strong&gt;: a full-page view of Assistant so your conversations and generated graphs aren&amp;rsquo;t crammed into the little right-hand sidebar. It&amp;rsquo;s a much less cluttered place to run investigations and to be agent-first. On top of that, Assistant is now easier to try — enable it in Grafana 13 for OSS without linking a Grafana Cloud account, or try it with no signup or download at all on &lt;a href="https://play.grafana.org"&gt;Grafana Play&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/AEU73mjeh0c?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="transcript"&gt;Transcript&lt;/h2&gt;
&lt;p&gt;Hi everyone! I&amp;rsquo;m Nicole van der Hoeven and I&amp;rsquo;m really excited to welcome you to AI Week. Today is Monday, which is planning day, where we give you the tools you need to get clarity on what even is going on in your system so that you can figure out what to build.&lt;/p&gt;
&lt;p&gt;Now we&amp;rsquo;re kicking things off with a feature called Workspace for Grafana Assistant. Now if you&amp;rsquo;ve used Assistant before, you&amp;rsquo;ll know that it comes up on the little sidebar on the right side of Grafana. Well, that can start to get cramped if you have multiple conversations or if you&amp;rsquo;ve asked Assistant to generate multiple graphs for you. Well, we&amp;rsquo;ve heard you, and now we&amp;rsquo;re giving you a full page view of Assistant. So you&amp;rsquo;ll have all of your conversations on the left, and this is also an excellent place to run investigations from. You can also zoom in on any of those graphs, and it&amp;rsquo;s just a much less cluttered view if you want to be agent-first.&lt;/p&gt;
&lt;p&gt;Speaking of Assistant, the second thing I want to tell you is that you know, Assistant was already available everywhere. But now, Assistant is available&amp;hellip; in more places than everywhere? And also more easily. So Assistant was already available for OSS, but you had to link your Grafana Cloud account, which was not so handy if you wanted to try it out. But not anymore. Now if you download Grafana 13 and enable Assistant, then you&amp;rsquo;ll just be able to go and try it out and chat with Assistant without doing anything else. It&amp;rsquo;s still not free or open source, but it IS a lot easier to try it out.&lt;/p&gt;
&lt;p&gt;And if you don&amp;rsquo;t want to download anything, that&amp;rsquo;s what Grafana Play is for. Grafana Assistant is now available to try out on Grafana Play without any signup or any download required. Try it out at play.grafana.org. I really love seeing it there. Tune in tomorrow where we&amp;rsquo;re going to talk about everything we&amp;rsquo;re announcing to help you start to build.&lt;/p&gt;</description></item><item><title>An Overview of AI Evaluation (The Context Window #05)</title><link>https://nicolevanderhoeven.com/blog/20260626-context-window-05-ai-evaluation/</link><pubDate>Fri, 26 Jun 2026 18:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260626-context-window-05-ai-evaluation/</guid><description>&lt;p&gt;How do you know if an AI agent is actually any good — and whether the change you just made to it made it &lt;em&gt;better&lt;/em&gt; or &lt;em&gt;worse&lt;/em&gt;? In this episode of &lt;em&gt;The Context Window&lt;/em&gt; — Grafana&amp;rsquo;s livestream series on AI in observability — I&amp;rsquo;m joined by &lt;a href="https://www.linkedin.com/in/yasirekinci/"&gt;Yas Ekinci&lt;/a&gt;, an engineer on Grafana&amp;rsquo;s AI team who has spent the last several months focused almost entirely on evaluation. We talk about why trusting AI is so hard (non-deterministic models, oversized PRs, and the shift from &lt;em&gt;writing&lt;/em&gt; code to &lt;em&gt;reviewing&lt;/em&gt; it), the difference between online and offline evals, how we actually test &lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;Grafana Assistant&lt;/a&gt;, and &lt;code&gt;o11y-bench&lt;/code&gt;, the open observability benchmark we announced at GrafanaCON. We recorded this one ahead of Yas&amp;rsquo;s two-month leave — so consider it a deep dive banked for the road.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/_XGLBqVpL-Y?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="the-final-answer-problem"&gt;The &amp;ldquo;final answer problem&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;A recurring theme — and one close to my testing heart — is what I call the final answer problem. As a tester I&amp;rsquo;m used to looking at an outcome and asking &amp;ldquo;did this pass or fail?&amp;rdquo; But with AI, a plausible-looking answer isn&amp;rsquo;t enough. If the &lt;em&gt;process&lt;/em&gt; was wrong, you can&amp;rsquo;t trust the outcome even when it looks right — and a plausible-but-wrong answer is the dangerous case, because nothing on the surface tells you it&amp;rsquo;s wrong. Yas&amp;rsquo;s example: a broken Tempo tool that returned no spans, while the agent still answered convincingly by guessing from metadata. Plausible ≠ correct.&lt;/p&gt;
&lt;p&gt;This is also why the bottleneck has moved. The cost of &lt;em&gt;writing&lt;/em&gt; code has collapsed, so the burden now sits on review. Developers, as I like to put it, are becoming &lt;strong&gt;shepherds of intent&lt;/strong&gt; — less about typing the code, more about making sure the intent is clear and faithfully implemented.&lt;/p&gt;
&lt;h2 id="what-evals-are-and-online-vs-offline"&gt;What evals are, and online vs offline&lt;/h2&gt;
&lt;p&gt;An eval is simply a test of whether an AI agent behaves the way you want — from &amp;ldquo;who are you?&amp;rdquo; → &amp;ldquo;I&amp;rsquo;m Grafana Assistant&amp;rdquo; all the way up to multi-step querying and dashboarding. The point is to know &lt;em&gt;with confidence&lt;/em&gt; whether a change made the agent better, which is what lets you improve it consistently over time.&lt;/p&gt;
&lt;p&gt;There are two complementary flavours, and they map neatly onto testing concepts we already have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Online evals&lt;/strong&gt; — scoring a sample of real production conversations, usually with an LLM-as-a-judge. Great as a pulse check (it&amp;rsquo;ll catch a quality drop when a model provider silently swaps models), but it only tests the deployed variant and is hard to verify. Closest analogy: traditional observability / RUM.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Offline evals&lt;/strong&gt; — a &amp;ldquo;golden set&amp;rdquo; of tasks run during development and CI against a controlled, reproducible environment. You can test every change, prompt, and implementation, and drill into specific skills (PromQL vs LogQL, dashboarding). Closest analogy: integration testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="how-we-test-grafana-assistant"&gt;How we test Grafana Assistant&lt;/h2&gt;
&lt;p&gt;Assistant evals run a real agent-plus-tools &lt;em&gt;harness&lt;/em&gt; against a real-ish environment (a Grafana with data sources, alerts, and dashboards), then grade the full transcript with &amp;ldquo;graders&amp;rdquo; or &amp;ldquo;verifiers.&amp;rdquo; The hard tension is that the environment has to be &lt;strong&gt;real and reproducible&lt;/strong&gt; at the same time. Because Assistant is a front-end plugin that runs some tools in the browser, the team uses Playwright to replicate real browser behaviour — which is where I made my pitch for k6&amp;rsquo;s browser module (now approaching Playwright parity) as a dogfooding option. The internal eval tool is a CLI called &lt;strong&gt;LLM Spec&lt;/strong&gt;, now on its third major iteration after the lessons from o11y-bench.&lt;/p&gt;
&lt;h2 id="o11y-bench"&gt;o11y-bench&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://grafana.com/blog/o11y-bench-open-benchmark-for-observability-agents/"&gt;&lt;code&gt;o11y-bench&lt;/code&gt;&lt;/a&gt; is our public benchmark, announced at GrafanaCON, with six task categories: dashboarding, investigation, logs, metrics, and traces. A few things I think make it genuinely interesting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It&amp;rsquo;s built on the &lt;strong&gt;Harbor&lt;/strong&gt; framework (also used by terminal-bench), which separates harness from environment from tasks — so you can swap harnesses and compare, say, &lt;code&gt;gcx&lt;/code&gt; + Claude Code against the Grafana MCP.&lt;/li&gt;
&lt;li&gt;The leaderboard includes open models (Qwen 3.6, Kimi), not just the frontier labs.&lt;/li&gt;
&lt;li&gt;It distinguishes &lt;strong&gt;pass@3&lt;/strong&gt; (got it right at least once in three runs — rough capability) from &lt;strong&gt;pass^3&lt;/strong&gt; (got it right all three times — reliability). The 10–20% gaps between the two are the whole reliability story in a single number.&lt;/li&gt;
&lt;li&gt;It runs against a &lt;strong&gt;synthetic environment&lt;/strong&gt; (Prometheus, Loki, Tempo in Docker) with generated data, so the correct answer is known in advance — and it uses &lt;strong&gt;fact-based rubrics&lt;/strong&gt;, where the grader runs its own known-good queries against the environment and checks the agent&amp;rsquo;s answer against them. That&amp;rsquo;s how you catch the subtle, plausible-but-wrong failures.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The internal eval set is a superset that adds scenarios drawn from real (private) conversations and Assistant-specific behaviour — like Slack&amp;rsquo;s not-quite-markdown formatting — while o11y-bench stays generic and harness-independent, grading on outcome rather than method.&lt;/p&gt;
&lt;h2 id="the-evaluation-loop"&gt;The evaluation loop&lt;/h2&gt;
&lt;p&gt;Yas&amp;rsquo;s blog post (the first engineering post on Grafana&amp;rsquo;s new community &lt;em&gt;Unprompted&lt;/em&gt; blog) and our GrafanaCON talk both center on the &lt;strong&gt;evaluation loop&lt;/strong&gt;: measure → make changes (new tools, prompt tweaks, bug fixes) → measure again. The crucial bit is that the loop can be driven by a coding agent — via an &lt;code&gt;LLM Spec Improve&lt;/code&gt; skill — because you can&amp;rsquo;t unit-test natural-language &amp;ldquo;programming&amp;rdquo; the way you test code. There&amp;rsquo;s no clean relationship between the instructions you write and what the model does, so the only way to know the impact of a change is to run the loop.&lt;/p&gt;
&lt;h2 id="where-its-going"&gt;Where it&amp;rsquo;s going&lt;/h2&gt;
&lt;p&gt;We closed on open questions and wishes: higher environment fidelity, more and harder tasks (very likely an o11y-bench 2.0), and getting more contributors — including PMs writing evals to capture desired product behaviour. I floated a k6-extension-style community model for evaluators, and using o11y-bench to support &lt;strong&gt;bring-your-own-model&lt;/strong&gt;, so users can see exactly where a smaller or local model falls short instead of assuming Assistant is broken. Yas&amp;rsquo;s industry hope is the neat one: if labs tune their models against o11y-bench, observability and Grafana performance improve across the board — free fine-tuning out of the box.&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/blog/o11y-bench-open-benchmark-for-observability-agents/"&gt;Introducing o11y-bench: an open benchmark for observability agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/o11y-bench"&gt;o11y-bench on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/engineering/demystifying-evals"&gt;Anthropic: Demystifying evals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://slack.grafana.com"&gt;Grafana Community Slack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="related-reading"&gt;Related reading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;My notes on &lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Assistant"&gt;Grafana Assistant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://contexthorizon.substack.com/p/unlearnings-from-building-grafana"&gt;My Context Horizon piece: &lt;em&gt;Unlearnings from building Grafana Assistant&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="more-from-the-context-window"&gt;More from The Context Window&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nicolevanderhoeven.com/blog/20260603-context-window-04-cli-mcp/"&gt;#04: CLI and MCP Basics for AI Agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicolevanderhoeven.com/blog/20260422-context-window-03-ai-observability/"&gt;#03: All About AI Observability&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="transcript"&gt;Transcript&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Hey everyone. Welcome to another episode of The Context Window. This is a semi-regular podcast — we try to make it every month — and it&amp;rsquo;s all about the things going on with AI at Grafana. Usually this is live, and you might think looking at this that it&amp;rsquo;s live, but it&amp;rsquo;s actually prerecorded, because Yas has a busy schedule ahead and I wanted to get him on here before he left. So hi, I&amp;rsquo;m Nicole van der Hoeven, a senior developer advocate at Grafana Labs, and I&amp;rsquo;m assigned to the AI team these days. And one of the people on the AI team is — this person over here. How do you say your last name, actually?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Oh, it&amp;rsquo;s Ekinci.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Ekinci. I was totally confused because I just found out you speak Dutch. Did not know that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
I&amp;rsquo;m based in Belgium, and I was like, &amp;ldquo;Nicole van der Hoeven&amp;rdquo; — okay, that sounds familiar enough to me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Yeah, it&amp;rsquo;s the name of my ex-husband, but it&amp;rsquo;s okay, we still like him. So tell us what you do on the AI team.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
I&amp;rsquo;m an engineer on the AI team — I&amp;rsquo;m getting to five years at Grafana next week. When I joined, this was pre-AI; we had the machine learning team building predictive models, forecasting, that kind of stuff. As the AI wave came, we all got absorbed into this newer, larger AI department. It&amp;rsquo;s been quite varied — the assistant, the AI agent inside Grafana — but especially the latter half of this year I&amp;rsquo;ve been more and more focused specifically on evals: how do we figure out the quality and reliability of these things we&amp;rsquo;re deploying?&lt;/p&gt;
&lt;p&gt;AI is a very useful tool. It has utility — it&amp;rsquo;s not like NFTs. We use it day to day. My job has changed drastically over the last two years. But you still notice it needs guidance and sometimes has reliability issues. The trend is that the guidance has come down — a year or two ago I&amp;rsquo;d steer an agent 50, 60, 70 times in a session; now it&amp;rsquo;s more like five or ten. But you still need to do it. If you just blindly vibe-code your way out of this, you&amp;rsquo;re not going to end up in a good place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
It moves so quickly. Whenever someone tells me they tried AI and it didn&amp;rsquo;t do what they wanted, I ask, &amp;ldquo;Well, when was that?&amp;rdquo; Because if it was six months ago — try it again. In this episode we&amp;rsquo;ll talk all about evals, but first, some announcements. Assistant is now available for OSS and self-hosted Grafana, and I made a video showing how to do that. There&amp;rsquo;s also a new Medium blog for Grafana Labs called &lt;em&gt;Unprompted&lt;/em&gt; — a community-focused blog — and Yas wrote the first engineering post, about building an evaluation loop. And we&amp;rsquo;ve started AI weekly videos: the AI team has a weekly meeting, Mat Ryer had the idea to publish excerpts, usually the demo part. Just be warned we demo things that may never make it to production — you&amp;rsquo;re getting it raw, warts and all.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
I need to make sure I don&amp;rsquo;t wear my PJs anymore for the AI weekly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
A bit of quick AI news: Warp is now open source. There are new models — GPT-5.5, Gemini 3.1 Ultra with a two-million-token context window, Anthropic&amp;rsquo;s Claude Mythos security preview. And there&amp;rsquo;s a great article by Matt Shumer called &amp;ldquo;Something Big Is Happening,&amp;rdquo; where he says, &amp;ldquo;I am no longer needed for the actual technical work of my job&amp;rdquo; — which hits hard — and advises leaning into what&amp;rsquo;s hardest to replace.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
It&amp;rsquo;s still that guidance thing — you need a human in the loop to guide it. But if you ask me how much code I&amp;rsquo;ve manually written lately, the actual technical piece is very close to zero. We&amp;rsquo;ll talk about how that&amp;rsquo;s different for evals, because evals don&amp;rsquo;t work as well as coding does there.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
So why is it so hard to trust AI? Why don&amp;rsquo;t we just YOLO it and accept everything?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
A mix of things. Everybody knows these models are non-deterministic and not perfect — these aren&amp;rsquo;t new problems; underneath it&amp;rsquo;s all machine learning, numbers and math and stats. Every time you talk to it you might get a slightly different response. The second part is it writes &lt;em&gt;a lot&lt;/em&gt; of code. You can 10x your output — send ten agents at ten different features and launch all those PRs — but then someone needs to review them, and the PRs are typically big and over-engineered. One thing I always do at the end of a piece of work is ask it to find a simpler way and simplify. Bigger PRs plus so many changes makes it hard to keep a mental model of the whole thing. And interestingly, I&amp;rsquo;ll use AI to help review a PR — which gets you back to the same problem: if you use AI to review the AI, how much can you trust that?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
I like the phrase that developers are becoming shepherds of intent — we&amp;rsquo;re not writing the code so much as making sure the intent is clear and implemented. And this is the difference between process and outcome — what I call the final answer problem. I come from performance testing; I&amp;rsquo;m used to looking at the outcome and asking did it pass or fail. But now, even if the outcome looks right, if the process was wrong I don&amp;rsquo;t trust it. And the reverse too: right process, wrong outcome, something else is broken.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Tests are interesting here, because most of those tests are also AI-generated — and the AI doesn&amp;rsquo;t shy away from just changing the test to make its branch pass. For any branch I review, I still look at all the changes; I won&amp;rsquo;t blindly rubber-stamp. That&amp;rsquo;s probably the biggest bottleneck right now.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
One approach to trusting AI is human evaluation — thumbs up/thumbs down, or something like LMArena where you compare two answers blind. Useful, but not scalable; you can&amp;rsquo;t run it in CI.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
On the eval side they&amp;rsquo;re all complementary. So, what &lt;em&gt;is&lt;/em&gt; an eval? It&amp;rsquo;s testing whether the AI agent behaves like you want. A simple one: ask &amp;ldquo;who are you?&amp;rdquo; and expect &amp;ldquo;I&amp;rsquo;m Grafana Assistant.&amp;rdquo; There are much more complicated ones around querying and dashboarding. At its core, an eval is how you figure out if the agent is any good — and the reason we do it is so that when we make changes, we know if it&amp;rsquo;s better. Answer that with confidence and you have a path to improve consistently over time.&lt;/p&gt;
&lt;p&gt;We split into online and offline. Online — we recently launched AI observability for agents — is about measuring how the deployed agent does against real production conversations from real users. Valuable, because you get a score based on real behaviour, but hard to verify; we typically use an LLM as a judge, so it&amp;rsquo;s not as robust. Offline is used more during development, in CI — much more controlled. You have a golden set of evals covering the behaviour you expect in production, and because you always test the same set, you can see whether changes make it better, and dig into PromQL vs LogQL, or dashboarding. Online is a great pulse check — it can catch quality dropping when Anthropic swaps a model — but it only tests the deployed variant. Offline can test all your changes, your implementation, and all your prompts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
It took me a while to translate these, because the testing industry already has this — we call it pre-prod and production testing. Pre-prod is everything from unit to system integration testing in dev and staging; you can really hammer the thing. Production you have to be more careful — synthetic monitoring, real user monitoring — same idea with an AI flavour.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Definitely. Online is much more like traditional observability — you&amp;rsquo;re observing a system that happens to be powered by AI, turning natural language into a number you track over time and alert on. Offline is closer to an integration test: you give it a task, it runs the whole agent against a real environment, you get something out, and then separately you grade that outcome.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
We did an AI observability episode without you — you were at GrafanaCON — so I&amp;rsquo;ll link that. Let&amp;rsquo;s talk more about offline evals, since we haven&amp;rsquo;t covered those.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Offline is a bit of a beast. There&amp;rsquo;s a good Anthropic post called &amp;ldquo;Demystifying evals.&amp;rdquo; Back when we had simple single-turn LLM calls — incident summary was one of the first — the prompt was &amp;ldquo;here&amp;rsquo;s the context of the incident, summarize this,&amp;rdquo; and grading checked readability, completeness, appropriate length. Easy enough to set up. Agents get more complicated, because every time you run a task the agent can take very different trajectories — five steps one time, seven the next. The agent plus its tools is roughly the harness; it runs against an environment — a real Grafana with data sources, a certain alert and dashboard state — and keeps interacting using the tools until it&amp;rsquo;s done. Then we take the whole transcript and grade it with graders, sometimes called verifiers, to verify it actually got the task right.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
So how do you do it for Assistant, given how broad that environment is?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
We have the public benchmark we released recently and our internal evals — same approach, different number of tasks and some different data sources. We want an environment as real as possible, but with the tension that we also need to control it so a benchmark is reproducible. If two people run it and get different scores, which one was right? We started, like everybody, with manual tests — listing data sources to confirm a tool is wired up, some CPU questions, showing logs — with a human as the judge. That&amp;rsquo;s fine at four or five scenarios; you can&amp;rsquo;t do it as a human at 500. Assistant is a front-end plugin — some tools run in your browser, which is good for auth and security but makes testing hard — so we use Playwright to replicate real behaviour and pull the telemetry out. The internal eval tool is a CLI we call LLM Spec, and it can run against cloud instances or a local controlled environment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Before the environment — did you consider using k6 instead of Playwright?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Interesting — yes and no. k6 is also a tool the assistant needs to use, but our goal isn&amp;rsquo;t to load test; it&amp;rsquo;s to hook into the plugin and get the messages and telemetry out, so we have a Playwright harness.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
There&amp;rsquo;s actually a browser module for k6 going towards feature parity with Playwright.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
I did not know that. Might be interesting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Just dogfood all the things. I&amp;rsquo;d love to work with you on that. Okay, the environment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
We test against cloud instances — for incidents especially, it&amp;rsquo;s a lot of data. And we run LLM Spec against a local controlled environment, which is quite similar to the open benchmark we published.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
You&amp;rsquo;ve mentioned o11y-bench — the benchmark announced at the last GrafanaCON. That was fast.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
o11y-bench has tasks across six categories — dashboarding, investigation, logs, metrics, traces. We wanted to bring our internal approaches outward, and it was a learning opportunity: we used a framework called Harbor, also used by the makers of terminal-bench. The nice thing is it separates harness from environment from tasks — so the default harness is a simple system prompt plus the Grafana MCP, but the folks working on GCX run Claude Code plus GCX against o11y-bench and compare GCX with MCP. There&amp;rsquo;s a leaderboard with a bunch of models, including open ones like Qwen 3.6 and Kimi.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
They&amp;rsquo;re getting good. Qwen 3.6 is awesome — not top five, but for an open-weight model, impressive.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
And this is the interesting part: sort on pass@3 and it looks different from pass^3. pass@3 runs each task three times and passes if it gets it right one out of three — rough capability. pass^3 means you need three out of three on every task — reliably solving it, not just getting lucky once. You see 10–20% differences between the two scores.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
That&amp;rsquo;s awesome. And this is public, right?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Yep — the repo&amp;rsquo;s on GitHub with all the tasks. We run o11y-bench against a synthetic environment — a Prometheus, Loki, and Tempo in Docker — and we generate the data, so every run uses the same data and we know what the answer should be before we even run it. We also do fact-based rubrics: separately from what the agent does, the grading side runs its own known-good queries against the environment and checks whether the agent&amp;rsquo;s answer matches. That matters because these agents fail in subtle ways. We once made a change to the Tempo tool that broke the spans — the agent got no spans but still answered, fairly realistically, from metadata. Without testing for it you&amp;rsquo;d never catch it; the text looked plausible.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
That&amp;rsquo;s exactly process versus outcome. If the answer were negative two seconds it&amp;rsquo;s obviously wrong, but a plausible answer is the dangerous one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Exactly, and that happens a lot.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
An early Assistant once told me it created a dashboard, and it didn&amp;rsquo;t look right — turned out it couldn&amp;rsquo;t find the data source so it just used dummy data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Same thing happened to me locally — I broke all the tools, and it still came up with tool calls it couldn&amp;rsquo;t execute because of rough instructions in the system prompt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
So what&amp;rsquo;s missing in o11y-bench that means you still need an internal one?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Two levels. First, some scenarios are based on real conversations or our own internal environments — anything involving private data can&amp;rsquo;t go public. Second, there are very Assistant-specific things we want to test — Slack, for instance, has its own version of markdown that looks like markdown but isn&amp;rsquo;t, and early Slack Assistant struggled to write it consistently, so we wrote tests for that. The internal set is a superset; the public set is still part of it. The public set is generic observability tasks — asking questions about your data, dashboarding, basic Grafana API checks — and because the harness is independent, we can test GCX, MCP, our assistant, or any other agent against it, grading on the outcome rather than how it was solved.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
We talked about your blog post — let&amp;rsquo;s define the evaluation loop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
At its core: measure the current state, see where it works and where it doesn&amp;rsquo;t, make changes — a new tool, tool instructions, the system prompt, bug fixes — then measure again, and again. The key is that loop can be driven by a coding agent, not us manually. If your evals are robust enough to pass a clean feedback signal back, the agent can keep improving until it hits 100%, and then you make harder tasks or increase coverage. At scale it&amp;rsquo;s nearly impossible for one human to understand the whole system and make targeted improvements, because an agent isn&amp;rsquo;t programmed as code — it&amp;rsquo;s programmed with natural language, and there&amp;rsquo;s no clear relationship between the instructions and what the model does. The only way to probe that is to run a bunch of these loops.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Is the loop equally implemented for o11y-bench and LLM Spec?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
It&amp;rsquo;s implemented internally. o11y-bench is really just the measurement part — we&amp;rsquo;ve used it for GCX and MCP, but more manually. In LLM Spec we have an &lt;code&gt;LLM Spec Improve&lt;/code&gt; skill — you pick the agent, and it runs measure-improve-measure-improve.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Where are you going next — no promises?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
I&amp;rsquo;ve done a lot on the harnesses — the Playwright stuff, and there was an LLM Spec 1.0, then a 2.0 revamp for speed and robustness, then o11y-bench, and the learnings from that went into what I&amp;rsquo;d call LLM Spec 3.0. The two big challenges now are environment fidelity — more an issue for internal evals — and the number and quality of tasks: how do we cover more of Grafana? We weren&amp;rsquo;t sure o11y-bench would be a recurring thing, but there&amp;rsquo;s a lot of interest, so we&amp;rsquo;ll probably do an o11y-bench 2.0. And I want more people contributing — I was talking at the PM all-hands about getting product managers to write evals, because the tasks capture desired behaviour: when someone asks about my product, how should the agent ideally respond?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
What I&amp;rsquo;d love is something like the k6 extension model applied to evaluators. When Grafana acquired k6 — I was on k6 — k6 had extensions and modules, and we got a lot of cool community extensions. I think evaluators would be the same. After my Madrid talk, all the questions about the evaluator section were &amp;ldquo;can we add this, can we add that, why isn&amp;rsquo;t this in the template?&amp;rdquo; — and it could be.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
It would be nice to do that across both o11y-bench and the internal ones — there are open questions on making them work together; internally we&amp;rsquo;re in Go, o11y-bench is on Harbor in Python, but the tasks and most verifiers are language-independent by design. A fourth thing is getting to a better golden set over time — we haven&amp;rsquo;t yet automated going from real AI-observability conversations to verifiable offline tasks. As the product changes, your tasks might not stay relevant — imagine k6 didn&amp;rsquo;t exist and now people ask Assistant about k6. Bridging online and offline in a more automated way would be the fourth big thing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
I also have a wish for o11y-bench beyond being a benchmark — with no internal knowledge and no promises: it could be a step toward making Assistant bring-your-own-model. One barrier is that people try Assistant with a tiny local model and conclude it doesn&amp;rsquo;t work, when really you need certain models. A standardized way to measure that and show users where their model falls short — versus where the latest Opus sits on the leaderboard — lets them make an informed decision.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
I&amp;rsquo;d go beyond Assistant — we&amp;rsquo;ve got GCX and MCP too. If you want to use your own models with them, the benchmark should reflect, for observability tasks, which are the best models and the best &lt;em&gt;open&lt;/em&gt; models. It gets to your point: people can make a more informed decision.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Where are we still missing things as an industry, not just as a company?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Just recently a new benchmark called DeepSWE was released, and it&amp;rsquo;s a bit controversial because it flips the ranking from the most popular software-engineering benchmark — where Opus was always leading, here GPT-5.5 leads by a margin. So there&amp;rsquo;s something to be said about the reliability of the benchmarks themselves, since labs test and sometimes tune their models against them. That might actually be good for o11y-bench — I&amp;rsquo;d &lt;em&gt;want&lt;/em&gt; a lab to tune against it, so we get free fine-tuning out of the box: as newer models use o11y-bench to tune on observability tasks, they get better at using Grafana and solving observability problems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
Thank you — we just hit time. It was really informative, and I&amp;rsquo;m glad we both found time; this got rescheduled for various reasons. A great overview of all the evals we&amp;rsquo;re doing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Thanks — it&amp;rsquo;s nice to step out of the day-to-day and talk about this stuff.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nicole:&lt;/strong&gt;
And if you&amp;rsquo;re watching, leave any eval questions in the comments and I&amp;rsquo;ll bug Yas to answer them. Thanks everyone for watching.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Yas:&lt;/strong&gt;
Bye.&lt;/p&gt;</description></item><item><title>CLI and MCP Basics for AI Agents (The Context Window #04)</title><link>https://nicolevanderhoeven.com/blog/20260603-context-window-04-cli-mcp/</link><pubDate>Wed, 03 Jun 2026 18:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260603-context-window-04-cli-mcp/</guid><description>&lt;p&gt;MCP vs CLI: which one should your AI agent actually use? In this episode of &lt;em&gt;The Context Window&lt;/em&gt; — Grafana&amp;rsquo;s livestream series on AI in observability — I&amp;rsquo;m joined by &lt;a href="https://www.linkedin.com/in/tiffanyjerniganm/"&gt;Tiffany Jernigan&lt;/a&gt; and three of the engineers and PMs behind Grafana&amp;rsquo;s agent tooling: Ben Sully (who wrote the Grafana MCP server), and Ward Bekker and Dafydd Thomas from the team building &lt;code&gt;gcx&lt;/code&gt;. We get into the two main ways an AI agent can reach the outside world — the Model Context Protocol (MCP) and good old command-line interfaces — and look at when each one makes sense, the tradeoffs around context windows, tool sprawl, token cost, and reliability. We walk through Grafana&amp;rsquo;s cloud and open-source MCP servers along with &lt;code&gt;gcx&lt;/code&gt;, the Grafana Cloud CLI built for agents, do a live side-by-side demo of both creating an SLO, and talk about how we benchmark them against each other with o11y-bench.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ZR6U4TN8-Cw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="timestamps"&gt;Timestamps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;00:00:00 — Introductions&lt;/li&gt;
&lt;li&gt;00:02:49 — The last month in AI news&lt;/li&gt;
&lt;li&gt;00:10:19 — What is Grafana Assistant?&lt;/li&gt;
&lt;li&gt;00:12:30 — What does it mean for Assistant to use tools?&lt;/li&gt;
&lt;li&gt;00:13:30 — What is MCP?&lt;/li&gt;
&lt;li&gt;00:16:56 — What is a CLI in an AI context?&lt;/li&gt;
&lt;li&gt;00:19:17 — What are skills?&lt;/li&gt;
&lt;li&gt;00:24:37 — Can you use a custom MCP server with Grafana Assistant?&lt;/li&gt;
&lt;li&gt;00:25:55 — Why team MCP?&lt;/li&gt;
&lt;li&gt;00:28:22 — The context-window cost of MCP tool definitions&lt;/li&gt;
&lt;li&gt;00:31:50 — Tool discoverability&lt;/li&gt;
&lt;li&gt;00:39:25 — What is gcx, and why a CLI?&lt;/li&gt;
&lt;li&gt;00:46:13 — Demo: creating an SLO with MCP vs gcx&lt;/li&gt;
&lt;li&gt;00:52:58 — Benchmarking MCP vs gcx with o11y-bench&lt;/li&gt;
&lt;li&gt;00:58:10 — How MCP and gcx relate to Grafana Assistant&lt;/li&gt;
&lt;li&gt;01:02:35 — k6 MCP vs Grafana MCP&lt;/li&gt;
&lt;li&gt;01:03:00 — When to use which (decision guide)&lt;/li&gt;
&lt;li&gt;01:04:29 — Adding the OSS Grafana MCP to Assistant&lt;/li&gt;
&lt;li&gt;01:05:41 — Turtles all the way down&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;h3 id="mcp-and-cli-for-agents"&gt;MCP and CLI for agents&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://modelcontextprotocol.io"&gt;Model Context Protocol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/mcp-grafana"&gt;Grafana MCP server (OSS)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/gcx"&gt;gcx — the Grafana Cloud CLI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/blog/o11y-bench-open-benchmark-for-observability-agents/"&gt;Introducing o11y-bench: an open benchmark for observability agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://slack.grafana.com"&gt;Grafana Community Slack&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="related-reading"&gt;Related reading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://contexthorizon.substack.com/p/unlearnings-from-building-grafana"&gt;My Context Horizon piece: &lt;em&gt;Unlearnings from building Grafana Assistant&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="more-from-the-context-window"&gt;More from The Context Window&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nicolevanderhoeven.com/blog/20260422-context-window-03-ai-observability/"&gt;#03: All About AI Observability&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Grafana Campfire 🔥 — GrafanaCON 2026 recap</title><link>https://nicolevanderhoeven.com/blog/20260528-grafana-campfire-grafanacon-2026-recap/</link><pubDate>Thu, 28 May 2026 17:45:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260528-grafana-campfire-grafanacon-2026-recap/</guid><description>&lt;p&gt;I co-hosted this month&amp;rsquo;s &lt;a href="https://www.youtube.com/watch?v=6qYCSBT3yU4"&gt;Grafana Campfire&lt;/a&gt; with &lt;a href="https://www.linkedin.com/in/stephaniehingtgen/"&gt;Stephanie Hingtgen&lt;/a&gt;, where we recapped everything that came out of GrafanaCON 2026. Stephanie owned the Grafana 13 walkthrough — Git Sync GA, Dynamic Dashboards GA, Dashboards API v2 GA, Grafana Advisor GA, SCIM GA — what she described as &lt;em&gt;the year Grafana stopped being beta in production&lt;/em&gt;. I covered the AI section (Grafana Assistant now in OSS and Enterprise, the three scaling challenges from &amp;ldquo;Scaling Grafana Assistant&amp;rdquo;, Investigations, Skills going GA), the three-teams-one-architecture push across Loki Thor, Mimir 3.0, and Pyroscope 2.0, the OTel + Alloy roadmap, alerting, k6 v2.0, and the Marketplace and Logline.&lt;/p&gt;
&lt;p&gt;We also took questions from the Champions community on the pace of UI change, Mimir Alertmanager, and the agent-scale question — &lt;em&gt;what happens when your AI agents are themselves the noisiest users of your observability stack?&lt;/em&gt; — and threw in a flavour break about the &lt;a href="https://github.com/grafana/tamagrotchi"&gt;TamaGROTchi&lt;/a&gt; and the ocean digital twin demo.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/6qYCSBT3yU4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/blog/grafanacon-2026-announcements/?pg=blog&amp;amp;plcmt=featured"&gt;GrafanaCON 2026 announcements blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/stephaniehingtgen/"&gt;Stephanie Hingtgen on LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Asimov's Zeroth Law of Robotics: Observability for AI (ExpoQA Madrid 2026)</title><link>https://nicolevanderhoeven.com/blog/20260526-asimovs-zeroth-law-expoqa-madrid/</link><pubDate>Tue, 26 May 2026 10:00:00 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20260526-asimovs-zeroth-law-expoqa-madrid/</guid><description>&lt;p&gt;This week I gave the opening keynote at &lt;a href="https://expoqa.eu/events/cd1-t1-kn2/"&gt;ExpoQA Madrid 2026&lt;/a&gt; in Madrid, Spain. I presented a talk called &lt;em&gt;Asimov&amp;rsquo;s Zeroth Law of Robotics: Observability for AI&lt;/em&gt;, which I had previously given at &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU 2025&lt;/a&gt; in London, at &lt;a href="https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; in Utrecht, and at &lt;a href="https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/"&gt;Newcrafts&lt;/a&gt; in Paris. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A robot may not harm humans. A robot must obey humans. A robot must protect its own existence. These are Isaac Asimov&amp;rsquo;s three Laws of Robotics, created to govern the ethical programming of artificial intelligences. From the Butlerian Jihad to Skynet to cylons, we&amp;rsquo;ve been immortalizing our collective nightmares about artificial intelligence for years. But there&amp;rsquo;s an unmentioned law that comes as a prerequisite to all of that: a robot must be observable.&lt;/p&gt;
&lt;p&gt;In this talk, I discuss the different types of AI, the factors that make observing AI different from observing applications, and the telemetry signals specific to AI that we might want to listen to. How do we deal with large data sets? How do we observe for model drift? How do we take into account the costs of LLMs? How can we use distributed tracing to follow event sequences? Part cautionary tale and part technical demo, this talk shows how to instrument and monitor AI apps using OpenTelemetry, Prometheus, OpenLit, and more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This was a keynote slot at a testing-focused audience, which gave me the chance to lean more into the &lt;em&gt;evals vs. observability&lt;/em&gt; framing — what evals can and can&amp;rsquo;t tell you about an AI system in production, and how distributed tracing fills the gap that benchmarks leave behind. The demo app (a Flask-based &amp;ldquo;play.py&amp;rdquo; instrumented with OpenTelemetry, flowing into Tempo for traces, Prometheus for metrics, and Loki for logs) is still on &lt;a href="https://nicole.to/asimov"&gt;GitHub&lt;/a&gt;, and I&amp;rsquo;ve been refining it with each iteration.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the recording of the talk:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/06Uus-llIBg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://nicole.to/asimov"&gt;Demo app on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Do Androids Dream of Second Brains?</title><link>https://nicolevanderhoeven.com/blog/20260518-do-androids-dream-of-second-brains-video/</link><pubDate>Mon, 18 May 2026 07:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260518-do-androids-dream-of-second-brains-video/</guid><description>&lt;p&gt;We often describe our personal knowledge management systems as &amp;ldquo;second brains&amp;rdquo; — but can we really say they think for themselves? In this video, I make the case for instrumenting your vault with an observability stack and layering AI on top, not because it&amp;rsquo;ll turn your notes into a brain, but because it might get us closer than anything else has.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/BeuaPO0Ezuk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;This is the video version of the talk I gave at &lt;a href="https://nicolevanderhoeven.com/blog/20260321-do-androids-dream-of-second-brains/"&gt;PKM Summit 2026&lt;/a&gt; in Utrecht earlier this year, with the live demos cleaner and the dashboards working without the conference wifi gods getting in the way.&lt;/p&gt;
&lt;h2 id="what-i-cover"&gt;What I cover&lt;/h2&gt;
&lt;h3 id="-why-second-brain-is-the-wrong-framing"&gt;🐑 Why &amp;ldquo;second brain&amp;rdquo; is the wrong framing&lt;/h3&gt;
&lt;p&gt;I take a small detour through Philip K. Dick&amp;rsquo;s &lt;em&gt;Do Androids Dream of Electric Sheep?&lt;/em&gt; — the inspiration for &lt;em&gt;Blade Runner&lt;/em&gt; — and the Voigt-Kampff test, which measures empathy through observed responses to staged scenarios. It&amp;rsquo;s a useful lens for asking what we actually mean when we say a knowledge system &amp;ldquo;thinks&amp;rdquo;: we&amp;rsquo;re really asking whether it can respond to us in a way that surprises us. Most second-brain setups can&amp;rsquo;t, yet.&lt;/p&gt;
&lt;h3 id="-observability-for-pkm"&gt;📊 Observability for PKM&lt;/h3&gt;
&lt;p&gt;Observability is a concept I&amp;rsquo;ve borrowed wholesale from how we monitor software systems — the idea that you can understand a complex system by what it emits, not by reading its internals. Three steps: instrumentation, analysis, improvement. I walk through what each one looks like for a personal vault:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Instrumentation&lt;/strong&gt;: a small script that emits metrics about my Obsidian vault — note counts, link density, growth over time, what folders are loud and which are quiet&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analysis&lt;/strong&gt;: a Grafana dashboard sitting on top of Loki + Prometheus, surfacing things I genuinely didn&amp;rsquo;t know about my own vault&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improvement&lt;/strong&gt;: the part where seeing the data actually changes how you work&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There&amp;rsquo;s a live dashboard tour, and a section where I ask &lt;strong&gt;Grafana Assistant&lt;/strong&gt; to edit the dashboard for me in natural language — including writing the PromQL queries I never want to write by hand.&lt;/p&gt;
&lt;h3 id="-meet-iris"&gt;👁️ Meet Iris&lt;/h3&gt;
&lt;p&gt;About halfway through the video I introduce &lt;strong&gt;Iris&lt;/strong&gt; — the AI agent I built using &lt;a href="https://openclaw.ai"&gt;OpenClaw&lt;/a&gt; that lives in my vault, reads my notes, and works alongside me. I walk through:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What &amp;ldquo;agentic AI&amp;rdquo; actually means in practice (vs. just chatting with an LLM)&lt;/li&gt;
&lt;li&gt;The OpenClaw setup — Docker sandbox, Syncthing, the whole pipeline&lt;/li&gt;
&lt;li&gt;Iris rewriting my observability map of content&lt;/li&gt;
&lt;li&gt;Iris doing talk-topic analysis on my vault&lt;/li&gt;
&lt;li&gt;Iris running benchmark research for a blog post&lt;/li&gt;
&lt;li&gt;Iris OCRing my reMarkable handwriting&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-dreaming"&gt;🌙 Dreaming&lt;/h3&gt;
&lt;p&gt;The last section is the one I had the most fun with. I argue that the thing most second-brain setups are missing isn&amp;rsquo;t &lt;em&gt;more notes&lt;/em&gt; or &lt;em&gt;better search&lt;/em&gt; — it&amp;rsquo;s &lt;strong&gt;synthesis&lt;/strong&gt;. The capacity to take everything you&amp;rsquo;ve captured and surface patterns, contradictions, and ideas you hadn&amp;rsquo;t formed yet.&lt;/p&gt;
&lt;p&gt;I introduce OpenClaw&amp;rsquo;s &lt;em&gt;dreaming&lt;/em&gt; feature: a memory consolidation process inspired by how sleep stages work in the brain. Light sleep, REM, and deep sleep each do different work — surfacing recent material, finding unexpected connections, and consolidating long-term memory. I show how each phase actually behaves in my own system.&lt;/p&gt;
&lt;p&gt;And there&amp;rsquo;s a Zhuangzi reference. (You&amp;rsquo;ll see.)&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;🎤 &lt;a href="https://nicolevanderhoeven.com/blog/20260321-do-androids-dream-of-second-brains/"&gt;PKM Summit 2026 talk recap (with photos)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🎞 &lt;a href="https://nicole.to/androids"&gt;Slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;👁️ &lt;a href="https://openclaw.ai"&gt;OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;📓 &lt;a href="https://obsidian.md"&gt;Obsidian&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;🔄 &lt;a href="https://syncthing.net"&gt;Syncthing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;📊 &lt;a href="https://grafana.com"&gt;Grafana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="related-reading"&gt;Related reading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://contexthorizon.substack.com/p/the-architecture-of-forgetting"&gt;&lt;em&gt;The Architecture of Forgetting&lt;/em&gt;&lt;/a&gt; — the essay version of why memory consolidation matters&lt;/li&gt;
&lt;li&gt;&lt;a href="https://contexthorizon.substack.com/p/unlearnings-from-building-grafana"&gt;&lt;em&gt;Unlearnings from building Grafana Assistant&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want to follow more of how Iris works and what I&amp;rsquo;m learning about AI + PKM, &lt;a href="https://contexthorizon.substack.com"&gt;Context Horizon&lt;/a&gt; is where I write about it.&lt;/p&gt;</description></item><item><title>High INT, Low WIS: What LLM Benchmarks Miss</title><link>https://nicolevanderhoeven.com/blog/20260423-high-int-low-wis-llm-benchmarks/</link><pubDate>Thu, 23 Apr 2026 09:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260423-high-int-low-wis-llm-benchmarks/</guid><description>&lt;p&gt;Originally posted &lt;a href="https://contexthorizon.substack.com/p/high-int-low-wis-what-llm-benchmarks"&gt;here&lt;/a&gt; on Context Horizon.&lt;/p&gt;
&lt;p&gt;In the tabletop roleplaying game Dungeons &amp;amp; Dragons (D&amp;amp;D), the very first thing you do when you create a character is to choose ability scores. Ability scores are numbers that determine how good you are at the game&amp;rsquo;s main characteristics: Strength (STR), Dexterity (DEX), Constitution (CON), Intelligence (INT), Wisdom (WIS), and Charisma (CHA). 20 is the default maximum that a character can have in any ability, though some in-game events/items can increase that.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the thing, though: every D&amp;amp;D player knows that a 20 Intelligence doesn&amp;rsquo;t mean your wizard aces every check. Whether you have proficiency in the specific skill still matters. That 20 INT wizard, for all their raw cognitive horsepower, can absolutely still fail to identify a magical rune. The ability score is a starting point, not a verdict.&lt;/p&gt;
&lt;p&gt;This is exactly what&amp;rsquo;s happening to LLM benchmarks. All the general LLM/AI model benchmarks are ability scores. They tell you something real about a model&amp;rsquo;s general capabilities, the same way a 20 INT tells you something real about a wizard. But as frontier models crowd toward the top of every leaderboard, we&amp;rsquo;re running into a problem D&amp;amp;D solved decades ago: the stat block isn&amp;rsquo;t the character. And it was never supposed to be.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/20260423-safira-l10-stats.png" alt="A screenshot of the stats of my Level 10 bard. Low INT, but look at that CHA!" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;em&gt;A screenshot of the stats of my Level 10 bard. Low INT, but look at that CHA!&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="the-stat-block-a-tour-of-the-ability-scores-everyones-maxing-out"&gt;The stat block: A tour of the ability scores everyone&amp;rsquo;s maxing out&lt;/h2&gt;
&lt;p&gt;There are so many new models and model versions out there that it&amp;rsquo;s hard to keep up with what we&amp;rsquo;re supposed to be using for which tasks. LLM benchmarks have come to be relied on to give a somewhat objective assessment of each model&amp;rsquo;s capability. Here are a few big ones that exist.&lt;/p&gt;
&lt;h3 id="general-knowledgereasoning"&gt;General knowledge/reasoning&lt;/h3&gt;
&lt;h4 id="mmlu-measuring-massive-multitask-language-understanding-2020"&gt;MMLU (Measuring Massive Multitask Language Understanding, 2020)&lt;/h4&gt;
&lt;p&gt;MMLU is the classic &amp;ldquo;general knowledge&amp;rdquo; INT check. It was &lt;a href="https://arxiv.org/abs/2009.03300"&gt;released in September 2020 by Hendrycks et al.&lt;/a&gt; and contains 15,908 multiple-choice questions across 57 subjects (humanities, social science, STEM, other). However, there were a few issues with it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://arxiv.org/abs/2406.04127"&gt;a study in 2024&lt;/a&gt; showed that 6.49% of those questions contained errors&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.nytimes.com/2024/04/15/technology/ai-models-measurement.html"&gt;The New York Times reported&lt;/a&gt; (2024) that data contamination was an issue — models could be trained on the MMLU questions (and answers) to inflate their MMLU scores&lt;/li&gt;
&lt;li&gt;many frontier LLMs soon consistently achieved high scores&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In response, a new benchmark called &lt;a href="https://github.com/TIGER-AI-Lab/MMLU-Pro"&gt;MMLU-Pro&lt;/a&gt; was created with 12,000 questions that each have 10 options. The increase in options theoretically required more reasoning capability than the original benchmark, but frontier models are already knocking at 90% on the MMLU-Pro.&lt;/p&gt;
&lt;h4 id="humanitys-last-exam-hle-2025"&gt;Humanity&amp;rsquo;s Last Exam (HLE, 2025)&lt;/h4&gt;
&lt;p&gt;HLE was developed specifically to address the fact that LLMs &amp;ldquo;now achieve over 90% accuracy on popular benchmarks like MMLU&amp;rdquo; (from &lt;a href="https://lastexam.ai"&gt;the HLE site&lt;/a&gt;). The &lt;a href="https://arxiv.org/abs/2501.14249"&gt;paper by Phan et al&lt;/a&gt; explains the lengths they took to make it hard enough to be meaningful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;they solicited high-quality questions from nearly 1000 subject matter experts, even going as far as paying them for successful submissions (with a total prize pool of US $500,000)&lt;/li&gt;
&lt;li&gt;they included graduate-level classics (one of the questions includes translating Palmyrene script)&lt;/li&gt;
&lt;li&gt;they reviewed potential submissions using current LLMs and only proceeded with submissions if the LLMs are unable to answer correctly&lt;/li&gt;
&lt;li&gt;experts then reviewed the submissions further&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As a result, HLE scores are low — intentionally so:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;While current LLMs achieve very low accuracy on HLE, recent history shows benchmarks are quickly saturated – with models dramatically progressing from near-zero to near-perfect performance in a short timeframe [13, 45]. Given the rapid pace of AI development, it is plausible that models could exceed 50% accuracy on HLE by the end of 2025. (&lt;a href="https://arxiv.org/abs/2501.14249"&gt;Phan et al., 2025&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="software-engineering"&gt;Software engineering&lt;/h3&gt;
&lt;h4 id="humaneval-openai-2021"&gt;HumanEval (OpenAI, 2021)&lt;/h4&gt;
&lt;p&gt;In 2021, OpenAI released &lt;a href="https://arxiv.org/abs/2107.03374"&gt;a paper&lt;/a&gt; and &lt;a href="https://github.com/openai/human-eval"&gt;an evaluation harness&lt;/a&gt; for a benchmark consisting of 164 Python programming problems based on publicly available code on GitHub. It was developed to test coding in particular.&lt;/p&gt;
&lt;p&gt;Eventually, though, experts found that the problem sets in HumanEval were insufficient and ambiguous (&lt;a href="https://arxiv.org/abs/2305.01210"&gt;Liu et al., 2023&lt;/a&gt;). HumanEval+ was released to include more tests, but the next benchmark&amp;rsquo;s authors &lt;a href="https://arxiv.org/abs/2403.07974"&gt;suggested that models might be overfitting&lt;/a&gt; to HumanEval+ as well, memorizing the dataset and answers rather than genuinely demonstrating reasoning ability.&lt;/p&gt;
&lt;h4 id="livecodebench-2024"&gt;LiveCodeBench (2024)&lt;/h4&gt;
&lt;p&gt;&lt;a href="https://arxiv.org/abs/2403.07974"&gt;Jain et al.&lt;/a&gt; tried a different approach to HumanEval to avoid data contamination: it was released with a continuously-updated coding benchmark. Problems have release dates and models can only be evaluated using problems released &lt;em&gt;after&lt;/em&gt; their training data cutoff dates.&lt;/p&gt;
&lt;p&gt;LiveCodeBench represents a shift in benchmarks towards a more continuous, dynamic measure. However, the last submission to the benchmark was &lt;a href="https://github.com/LiveCodeBench/submissions"&gt;9 months ago&lt;/a&gt; at the time of this writing, and &lt;a href="https://livecodebench.github.io/"&gt;the leaderboard&lt;/a&gt; has not been updated since then either, suggesting the benchmark is no longer being actively maintained.&lt;/p&gt;
&lt;h4 id="swe-bench-2024"&gt;SWE-bench (2024)&lt;/h4&gt;
&lt;p&gt;This benchmark was created by &lt;a href="https://openreview.net/pdf?id=VTF8yNQM66"&gt;Jimenez et al.&lt;/a&gt; to include 2,294 actual GitHub issues from 12 Python projects. When it launched, it was a much harder benchmark than predecessors, with models scoring 2-4%. Today, models are scoring around 70-80% on the original benchmark. There were enough issues with the original&amp;rsquo;s dataset quality that variants were introduced, including &lt;a href="https://openai.com/index/introducing-swe-bench-verified/"&gt;OpenAI&amp;rsquo;s SWE-bench Verified&lt;/a&gt;. Today, &lt;a href="https://www.swebench.com/"&gt;the SWE-bench website&lt;/a&gt; shows these variants:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SWE-bench&lt;/li&gt;
&lt;li&gt;SWE-bench Verified&lt;/li&gt;
&lt;li&gt;SWE-bench Multilingual&lt;/li&gt;
&lt;li&gt;SWE-bench Multimodal&lt;/li&gt;
&lt;li&gt;SWE-bench Lite&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="agents-and-tool-use"&gt;Agents and tool use&lt;/h3&gt;
&lt;p&gt;This last category is a preview of where I think the field should go: benchmarks that measure &lt;em&gt;what a model does&lt;/em&gt; rather than just &lt;em&gt;what a model knows&lt;/em&gt;. Here are some of them:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GAIA (&lt;a href="https://arxiv.org/abs/2311.12983"&gt;Mialon et al., 2023&lt;/a&gt;) — 466 real-world assistant tasks that combine web browsing, file reading, and multi-step reasoning. Easy for humans (92% success), hard for models (15% success for GPT-4), at least at launch.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tbench.ai/"&gt;Terminal-Bench&lt;/a&gt; — agents working in actual Linux terminals. Tasks include &amp;ldquo;build the Linux kernel from source&amp;rdquo; and &amp;ldquo;configure a git server plus a webserver on port 8080.&amp;rdquo; No mocks; if it doesn&amp;rsquo;t actually build, it fails.&lt;/li&gt;
&lt;li&gt;WebArena (&lt;a href="https://arxiv.org/abs/2307.13854"&gt;Zhou et al., 2023&lt;/a&gt;) — realistic simulated websites (Reddit, GitLab, e-commerce) where agents complete actual user goals like &amp;ldquo;filter the last six months of orders by refund status.&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These benchmarks are harder to saturate than general-knowledge ones, because passing means the thing actually has to work in the real world. A model can memorise a question; it can&amp;rsquo;t memorise a Linux kernel that isn&amp;rsquo;t there until it builds it.&lt;/p&gt;
&lt;h2 id="the-wrong-answer-build-a-harder-general-benchmark"&gt;The wrong answer: Build a harder general benchmark&lt;/h2&gt;
&lt;p&gt;By now, you probably see that benchmarks tend to go the same way: A benchmark is created, models get too good at it and perform too well to be useful, and then a variant benchmark is created to address the problem.&lt;/p&gt;
&lt;p&gt;This is the &lt;em&gt;saturation problem&lt;/em&gt; in a nutshell: a benchmark that once provided meaningful information to help distinguish models eventually fails to do so because all the models&amp;rsquo; scores cluster at the top.&lt;/p&gt;
&lt;p&gt;Saturation occurs for two reasons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Contamination&lt;/em&gt;: Many benchmarks publish their problem sets online, and models train on data scraped from the web. The benchmark now measures memorization, not capability.&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Overfitting&lt;/em&gt;: Model providers are incentivized to optimize specifically for gaming performance on benchmarks. Scores go up without corresponding capability improvements.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When you have a party of wizards with 20 INT, &amp;ldquo;What&amp;rsquo;s your INT score?&amp;rdquo; stops being an interesting question because any wizard&amp;rsquo;s Fireball will hit the same. Building harder benchmarks is like an arms race for ability scores, when what you actually want to know is whether your wizard can kill a dragon.&lt;/p&gt;
&lt;p&gt;Harder benchmarks don&amp;rsquo;t tell us what we want to know: &lt;em&gt;can this model do my specific job?&lt;/em&gt;&lt;/p&gt;
&lt;h2 id="the-right-answer-skill-checks-with-real-dcs"&gt;The right answer: skill checks with real DCs&lt;/h2&gt;
&lt;p&gt;The fix isn&amp;rsquo;t a harder ability check. It&amp;rsquo;s a different kind of check altogether. In D&amp;amp;D, straight ability checks are rare compared to skill checks. There are 18 official skills that break down the six ability scores into more granular activities. For example, your wizard is much more likely to roll one of these instead of a straight INT check:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Arcana&lt;/li&gt;
&lt;li&gt;History&lt;/li&gt;
&lt;li&gt;Investigation&lt;/li&gt;
&lt;li&gt;Nature&lt;/li&gt;
&lt;li&gt;Religion&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these are still based on INT, but test narrow &lt;em&gt;types of intelligence&lt;/em&gt; rather than general intelligence.&lt;/p&gt;
&lt;p&gt;Specific, domain-grounded benchmarks are what the field actually needs. The evaluations that actually help practitioners share a structure: they test a specific skill in a specific context, and they&amp;rsquo;re judged by the people who have to live with the results.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://arxiv.org/abs/2009.13081"&gt;MedQA&lt;/a&gt; tests whether a model can answer the kind of clinical question a physician might face. &lt;a href="https://arxiv.org/abs/2308.11462"&gt;LegalBench&lt;/a&gt; tests whether a model can correctly identify enforceability clauses, classify contract language, and apply legal reasoning. &lt;a href="https://arxiv.org/abs/2311.11944"&gt;FinanceBench&lt;/a&gt; tests whether a model can answer the kind of question a financial analyst would actually ask about a real 10-K filing. None of these are trying to rank models on general intelligence. They&amp;rsquo;re asking the only question that matters downstream: &lt;em&gt;can this model do this specific job well enough?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This week, Grafana released &lt;a href="https://github.com/grafana/o11y-bench"&gt;o11y-bench&lt;/a&gt;, an open benchmark for observability-specific agent tasks. I&amp;rsquo;m biased — I work there — but it&amp;rsquo;s a useful illustration of the shape I&amp;rsquo;m describing. o11y-bench doesn&amp;rsquo;t ask whether a model is smart in general. It asks whether an agent can do the things observability engineers actually do: read production traces, correlate logs with metrics, figure out why the thing that&amp;rsquo;s supposed to be working isn&amp;rsquo;t. &lt;a href="https://o11ybench.ai/"&gt;Its leaderboard&lt;/a&gt; shows models&amp;rsquo; performance for each activity.&lt;/p&gt;
&lt;p&gt;Does that mean that more specific benchmarks won&amp;rsquo;t get saturated? No. We&amp;rsquo;ve already seen this play out with SWE-bench. But they&amp;rsquo;ll get saturated more slowly and remain more meaningful measures along the way.&lt;/p&gt;
&lt;p&gt;These are skill checks with DCs that matter to someone. They&amp;rsquo;re not trying to produce a single scalar ranking of &amp;ldquo;which model is smartest.&amp;rdquo; They&amp;rsquo;re asking whether the wizard recognizes the family crest belonging to a political faction or knows this specific cult&amp;rsquo;s practices, not whether the wizard is good at &amp;ldquo;wizarding&amp;rdquo; in the abstract.&lt;/p&gt;
&lt;h2 id="roll-for-initiative-what-this-means-in-practice"&gt;Roll for initiative: What this means in practice&lt;/h2&gt;
&lt;p&gt;If you&amp;rsquo;re an engineer picking a model for production: stop picking by leaderboard. Find or build an eval that reflects your actual use case. A handful of representative examples, graded the way you&amp;rsquo;d grade them if you were doing the work yourself, will tell you more than a dozen public benchmarks.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re a researcher thinking about what to build next: the interesting work is at the specific-and-grounded end of the spectrum, not the general-and-bigger end. Another harder general-knowledge benchmark will saturate in eighteen months. A well-designed domain benchmark, co-built with the people who actually do the work, can stay useful for years.&lt;/p&gt;
&lt;p&gt;And if you&amp;rsquo;re anyone else watching this field from the outside: be skeptical of the headlines. When a new model scores 94% on a benchmark you&amp;rsquo;ve never heard of, ask what it measures and whether the thing it measures is the thing you actually care about. Usually the answer is &amp;ldquo;not really,&amp;rdquo; and that&amp;rsquo;s the most important thing a benchmark score won&amp;rsquo;t tell you.&lt;/p&gt;
&lt;p&gt;The goal of a character sheet was never to produce one number that ranks the character. It was to give a DM enough information to run a meaningful encounter — and to give the player enough to know when to try, when to pass, and when to roll with advantage. LLM evaluation should work the same way. Not a ranking; a readiness check. Can this specific model clear this specific challenge? Roll for initiative.&lt;/p&gt;</description></item><item><title>All About AI Observability (The Context Window #03)</title><link>https://nicolevanderhoeven.com/blog/20260422-context-window-03-ai-observability/</link><pubDate>Wed, 22 Apr 2026 18:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260422-context-window-03-ai-observability/</guid><description>&lt;p&gt;In this episode of &lt;em&gt;The Context Window&lt;/em&gt; — Grafana&amp;rsquo;s livestream series on AI in observability — I&amp;rsquo;m joined by &lt;a href="https://www.linkedin.com/in/tiffanyjerniganm/"&gt;Tiffany Jernigan&lt;/a&gt; and the engineers behind the product, &lt;a href="https://www.linkedin.com/in/alexandersniffin/"&gt;Alexander Sniffin&lt;/a&gt; and &lt;a href="https://www.linkedin.com/in/jack-gordley/"&gt;Jack Gordley&lt;/a&gt;, for a deep dive into AI Observability in Grafana Cloud. We unpack what it actually is (a new way to instrument your AI apps and see canonical data about them, sitting alongside your existing telemetry), what an evaluation is in this context (and the difference between online evals on live traffic and offline evals on dataset conversations), and we walk through real demos: setting up AI Observability and evaluators, the analytics view, instrumenting a local coding agent, and Jack&amp;rsquo;s system prompt analysis tool. We also talk about the things nobody else is talking about — like LLM-as-judge as a method, evaluators that catch the most bugs, and the cheating-LLM phenomenon.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/vzygCuuf7JQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="timestamps"&gt;Timestamps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;00:00:00 — Introductions&lt;/li&gt;
&lt;li&gt;00:02:00 — The last month in AI news&lt;/li&gt;
&lt;li&gt;00:11:09 — What is AI Observability in Grafana Cloud?&lt;/li&gt;
&lt;li&gt;00:19:20 — What is an evaluation?&lt;/li&gt;
&lt;li&gt;00:21:05 — The origin of AI Observability&lt;/li&gt;
&lt;li&gt;00:25:09 — Demo: Setting up AI Observability and evaluators&lt;/li&gt;
&lt;li&gt;00:32:04 — What is LLM as judge?&lt;/li&gt;
&lt;li&gt;00:38:43 — Demo: AI Observability Analytics&lt;/li&gt;
&lt;li&gt;00:40:52 — AI O11y is based on OpenTelemetry&lt;/li&gt;
&lt;li&gt;00:42:17 — Demo: Instrumenting a local coding agent&lt;/li&gt;
&lt;li&gt;00:47:18 — Potential future agentic use cases&lt;/li&gt;
&lt;li&gt;00:52:00 — Evaluators that catch the most bugs&lt;/li&gt;
&lt;li&gt;01:02:23 — Demo: System prompt analysis&lt;/li&gt;
&lt;li&gt;01:05:11 — Guess the prompt&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;h3 id="news-from-the-episode"&gt;News from the episode&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/news/claude-opus-4-7"&gt;Claude Opus 4.7 release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://deepmind.google/models/gemma/gemma-4/"&gt;Gemma 4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://qwen.ai/blog?id=qwen3.6"&gt;Qwen 3.6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/blog/o11y-bench-open-benchmark-for-observability-agents/"&gt;Introducing o11y-bench: an open benchmark for observability agents&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.blog/news-insights/company-news/updates-to-github-copilot-interaction-data-usage-policy/"&gt;Updates to GitHub Copilot interaction data usage policy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://gra.fan/gcon26"&gt;GrafanaCON 2026 announcements&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ai-observability"&gt;AI Observability&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/machine-learning/ai-observability/"&gt;AI Observability docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/machine-learning/ai-observability/introduction/#online-evaluation"&gt;Online evaluations on Grafana Cloud&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/machine-learning/ai-observability/introduction/#opentelemetry-integration"&gt;OpenTelemetry integration with AI Observability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/sigil-sdk"&gt;The Sigil SDK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="mentioned"&gt;Mentioned&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://opencode.ai"&gt;OpenCode&lt;/a&gt; — the open-source coding agent Jack instruments&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/research/emotion-concepts-function"&gt;Anthropic: Emotion concepts and their function in a large language model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://openclaw.ai"&gt;OpenClaw&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="related-reading"&gt;Related reading&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://contexthorizon.substack.com/p/high-int-low-wis-what-llm-benchmarks"&gt;My Context Horizon piece on benchmarks: &lt;em&gt;High INT, Low WIS — What LLM benchmarks miss&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://contexthorizon.substack.com/p/unlearnings-from-building-grafana"&gt;My Context Horizon piece on Grafana Assistant: &lt;em&gt;Unlearnings from building Grafana Assistant&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Unlearnings from building Grafana Assistant</title><link>https://nicolevanderhoeven.com/blog/20260409-unlearnings-from-building-grafana-assistant/</link><pubDate>Thu, 09 Apr 2026 09:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260409-unlearnings-from-building-grafana-assistant/</guid><description>&lt;p&gt;Originally posted &lt;a href="https://open.substack.com/pub/contexthorizon/p/unlearnings-from-building-grafana?r=7xe6zg&amp;amp;utm_campaign=post&amp;amp;utm_medium=web&amp;amp;showWelcomeOnShare=true"&gt;here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Everyone&amp;rsquo;s talking about what you need to &lt;em&gt;learn&lt;/em&gt; to build AI agents: Prompt engineering. Tool calling. Retrieval strategies. The content ecosystem is full of it. But while I was watching Context Window Episode 1, it struck me that Mat Ryer, Cyril Tovena, and Sven Großmann&amp;ndash; some of the team behind Grafana Assistant&amp;ndash; spent most of their time on something different: what they had to &lt;em&gt;unlearn&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Grafana Assistant started as a weekend hackathon project. By the time it shipped, the team had thrown out a popular framework, flipped their assumptions about tool design, and discovered that some of the instincts you bring from conventional software development actively work against you when you&amp;rsquo;re building agents.&lt;/p&gt;
&lt;p&gt;I pulled out the ten moments where received wisdom turned out to be wrong. If you&amp;rsquo;re building anything agentic right now, these are worth sitting with.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/TGWVqBAeIzI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="-langchain-will-help-us-build-faster"&gt;❌ LangChain will help us build faster&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://github.com/langchain-ai/langchain"&gt;LangChain&lt;/a&gt; is an opensource framework for building applications that use LLMs. It provides structured components that can be used for rapid prototyping.&lt;/p&gt;
&lt;p&gt;In the video, Tovena talks about how they started with LangChain during the initial hackathon because they thought it would help them build more quickly, but instead it became obvious fairly early on that the opposite was true. They didn&amp;rsquo;t end up using a lot of the features that LangChain provided and felt they needed more flexibility and speed.&lt;/p&gt;
&lt;h3 id="abstraction-overhead"&gt;Abstraction overhead&lt;/h3&gt;
&lt;p&gt;One possible reason for their troubles with LangChain is that LangChain has standard abstractions for prompts, tool use, and orchestration&amp;ndash; things that sound good in theory. But sometimes abstractions lend themselves to creating a sort of black box in your stack, where you don&amp;rsquo;t know what&amp;rsquo;s happening inside it. It sounds like the Assistant team missed the oversight and control of what was happening.&lt;/p&gt;
&lt;h2 id="-use-the-same-prompt-for-every-model"&gt;❌ Use the same prompt for every model&lt;/h2&gt;
&lt;p&gt;They also talked about how for the sake of simplicity and consistency, they initially used the same prompt for every model. However, they found out that this actually led to worse results. They found more success in creating slightly different prompts for different models, playing to their strengths and weaknesses a bit more.&lt;/p&gt;
&lt;p&gt;There is even an argument (&lt;a href="https://arxiv.org/abs/2401.00595"&gt;Mizrahi et al.&amp;rsquo;s &amp;ldquo;State of What Art? A Call for Multi-Prompt LLM Evaluation&lt;/a&gt;) that AI benchmarks that involve sending multiple LLMs the same prompt is a brittle and unreliable way to assess LLM capabilities. Different models respond differently to prompt variations.&lt;/p&gt;
&lt;p&gt;In practice, what this means is that switching models isn&amp;rsquo;t a drop-in replacement. Even if a new model scores better on benchmarks, your prompts were written with a specific model&amp;rsquo;s tendencies in mind. The unlearning here is letting go of the idea that a prompt is model-agnostic — it&amp;rsquo;s more like a conversation style, and different models have different conversational defaults.&lt;/p&gt;
&lt;h2 id="-treat-errors-as-failures"&gt;❌ Treat errors as failures&lt;/h2&gt;
&lt;p&gt;Traditionally in software, you catch errors and hide them from the user: you log them, handle them, but treat that transaction as a failed one.&lt;/p&gt;
&lt;p&gt;The Assistant team had to unlearn this habit when dealing with an LLM, because with agents, error messages &lt;em&gt;are&lt;/em&gt; useful data. Feeding it back to the LLM often results in it learning from its own mistake and trying again. It&amp;rsquo;s basically letting the agent debug itself, in a manner that Ryer noted was remarkably similar to how we humans debug errors too.&lt;/p&gt;
&lt;h2 id="-return-errors-in-structured-json"&gt;❌ Return errors in structured JSON&lt;/h2&gt;
&lt;p&gt;On the subject of error messages, Großmann mentioned that at one point they were trying to format the errors in JSON or stringified JSON. This practice shows solid engineer intuition because usually, structuring information helps machines process it faster and more accurately. What they found here was the reverse: it was easier and yielded better results when the LLM was just passed the entire error in natural language.&lt;/p&gt;
&lt;h2 id="-build-as-many-tools-as-possible"&gt;❌ Build as many tools as possible&lt;/h2&gt;
&lt;p&gt;The team mentioned that at the start, they were inclined to create as many tools/skills for Assistant: one for everything that could be done in Grafana. This made sense until they saw LLMs struggle to determine which tool to use in which context.&lt;/p&gt;
&lt;p&gt;To help LLMs identify the correct tool, they added tool descriptions and also experimented with combining multiple tools into fewer, parameterized, tools. These helped, although the team still observed that allowing users to create their own tools (with potentially very general tool descriptions) could potentially confuse LLMs.&lt;/p&gt;
&lt;h2 id="-bigger-context-window--better"&gt;❌ Bigger context window = better&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://developers.googleblog.com/en/new-features-for-the-gemini-api-and-google-ai-studio/"&gt;Gemini 1.5 Pro announced&lt;/a&gt; it had a 2M context window back in 2024, and it might seem that other providers had lagged behind: &lt;a href="https://openai.com/index/gpt-4-1/"&gt;OpenAI&lt;/a&gt; only announced support for 1M tokens in 2025 and &lt;a href="https://www.anthropic.com/news/claude-opus-4-6"&gt;Anthropic&lt;/a&gt; followed in 2026. However, the Assistant team pointed out that context wasn&amp;rsquo;t everything. They said that they noticed that bigger wasn&amp;rsquo;t necessarily better, also pointing out that the chat summarization feature on IDEs like &lt;a href="https://cursor.com/"&gt;Cursor&lt;/a&gt; could still sometimes lose important details when summarizing.&lt;/p&gt;
&lt;p&gt;This finding seems to coincide with a 2023 Stanford study (&lt;a href="https://arxiv.org/abs/2307.03172"&gt;Lost in the Middle: How Language Models Use Long Contexts&lt;/a&gt;) that found there was a performance degradation when models access information within a very large context. In the video, they talked about how their system prompts were often 40k tokens long (half for the prompt itself and then the other half for tools).&lt;/p&gt;
&lt;h2 id="-start-with-a-multi-agent-architecture"&gt;❌ Start with a multi-agent architecture&lt;/h2&gt;
&lt;p&gt;Tovena mentioned that creating a multi-agent architecture for Assistant yielded more mixed results than he expected. He said that passing context between agents is difficult, outputs were inconsistent, and there was a bit of a &amp;ldquo;telephone game&amp;rdquo; problem where agents didn&amp;rsquo;t always perfectly understand the intent or output of other agents.&lt;/p&gt;
&lt;p&gt;In early 2026, &lt;a href="https://arxiv.org/abs/2601.13295"&gt;Khatua et al. released a study&lt;/a&gt; called &amp;ldquo;CooperBench: Why Coding Agents Cannot Be Your Teammates Yet&amp;rdquo; that showed that AI agents aren&amp;rsquo;t great at collaboration. The study suggests, surprisingly, that this might be because AI agents lack human social habits that help us collaborate better, such as feeling obliged to do what we say and having a good understanding of what others&amp;rsquo; plans are.&lt;/p&gt;
&lt;p&gt;The Assistant team&amp;rsquo;s experience is also a perfect example of &lt;a href="https://www.laws-of-software.com/laws/gall/"&gt;Gall&amp;rsquo;s Law&lt;/a&gt;, which states that it&amp;rsquo;s easier to start with simplicity and build complexity than the other way around.&lt;/p&gt;
&lt;h2 id="-plan-around-models-as-they-are-now"&gt;❌ Plan around models as they are now&lt;/h2&gt;
&lt;p&gt;Software has always moved quickly, but it feels like AI models are moving faster. &lt;a href="https://hai.stanford.edu/assets/files/hai_ai_index_report_2025.pdf"&gt;Stanford&amp;rsquo;s AI Index Report 2025&lt;/a&gt; reported that models went from having a 50% chance to near-human performance in roughly 2 years (2021-2023). In fact, benchmarks keep getting retired as AI saturates them&amp;ndash; meaning that benchmarks can&amp;rsquo;t reliably be used to distinguish between good and bad models because all the models are testing near the ceiling.&lt;/p&gt;
&lt;p&gt;The rapid pace of development around AI requires us to not be so attached to our work: Großmann recalled an incident where someone wrote a joke prompt that spoke like a dog that shockingly did better than their other system prompts. Ryer also mentioned that at one point someone deleted all the system prompts and Assistant weirdly became more accurate.&lt;/p&gt;
&lt;p&gt;The lesson is clear: plan for models to improve, and plan to redo a lot of your work when they do.&lt;/p&gt;
&lt;h2 id="-we-dont-need-evals"&gt;❌ We don&amp;rsquo;t need evals&lt;/h2&gt;
&lt;p&gt;The Assistant team said that they went from having no evals to employing several types of evals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;integration-style evals that exercise whole workflows&lt;/li&gt;
&lt;li&gt;unit-style evals that feed inputs plus a system prompt and check the output&lt;/li&gt;
&lt;li&gt;LLM-as-judge, where they pass conversations to an LLM to ask it to judge whether it answered the user&amp;rsquo;s questions.&lt;/li&gt;
&lt;li&gt;user feedback in the form of thumbs during conversations with Assistant&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Beyond evaluation, they talked about how important it was to be able to observe AI. At the very minimum, showing what Assistant is doing at all times (thinking out loud) is very important to them because it builds users&amp;rsquo; trust in the thinking process and, eventually, in the result.&lt;/p&gt;
&lt;p&gt;Evals aren&amp;rsquo;t a sign that you don&amp;rsquo;t trust your product. They&amp;rsquo;re how you build the confidence to keep shipping it.&lt;/p&gt;
&lt;h2 id="-assume-people-already-know-how-to-work-with-ai"&gt;❌ Assume people already know how to work with AI&lt;/h2&gt;
&lt;p&gt;When you ship an AI feature, it&amp;rsquo;s tempting to assume the hard work is done. You&amp;rsquo;ve built the thing. Users will figure it out.&lt;/p&gt;
&lt;p&gt;What the Grafana Assistant team found was that this assumption doesn&amp;rsquo;t hold. Users came in with wildly different mental models of what an AI assistant could or should do — some treating it like a search box, others expecting it to read their minds, most not yet sure how to prompt it effectively.&lt;/p&gt;
&lt;p&gt;Their insight was that this isn&amp;rsquo;t just a UX problem to solve on your end. It&amp;rsquo;s a shared responsibility: AI should try to help the user, but the user also needs to learn how to work with AI. And building an assistant that teaches people how to use it well (through good responses, gentle corrections, showing its work) is part of building the product.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s also a deeper point here specific to observability. Grafana Assistant isn&amp;rsquo;t just an AI feature; it&amp;rsquo;s a way of interacting with your own infrastructure. Every good interaction teaches you something about what questions to ask, what signals to look for, what it means to understand a system. In other words: learning to use AI well makes you a better engineer. The tool and the skill co-evolve.&lt;/p&gt;
&lt;p&gt;This is the unlearning that sits furthest from the code. It&amp;rsquo;s not about prompts or architectures or frameworks. It&amp;rsquo;s about recognising that you&amp;rsquo;re not just shipping a feature&amp;ndash; you&amp;rsquo;re introducing a new way of working. That takes time. And it&amp;rsquo;s worth designing for explicitly.&lt;/p&gt;
&lt;h2 id="summary"&gt;Summary&lt;/h2&gt;
&lt;p&gt;What strikes me most about this list isn&amp;rsquo;t any single item — it&amp;rsquo;s the pattern. Most of these unlearnings point in the same direction: &lt;em&gt;less is more, and messiness is the point.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Less abstraction. Fewer tools. Smaller context. Simpler architecture. And rather than hiding the mess — the errors, the reasoning, the uncertainty — let it show. That&amp;rsquo;s where the trust gets built.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;re all still early with this. The team that built one of the most thoughtful AI products I&amp;rsquo;ve seen up close still didn&amp;rsquo;t have evals when they launched. That&amp;rsquo;s not a criticism — it&amp;rsquo;s a reminder. You don&amp;rsquo;t need to have it all figured out before you ship. You just need to commit to keep unlearning.&lt;/p&gt;</description></item><item><title>Do Androids Dream of Second Brains?</title><link>https://nicolevanderhoeven.com/blog/20260321-do-androids-dream-of-second-brains/</link><pubDate>Sat, 21 Mar 2026 11:15:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20260321-do-androids-dream-of-second-brains/</guid><description>&lt;p&gt;I gave this talk at &lt;a href="https://pkmsummit.com/"&gt;PKM Summit 2026&lt;/a&gt; in Utrecht, the Netherlands.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/20260320-pkm-summit-01-presenting.png" alt="Presenting “Do Androids Dream of Second Brains?” at PKM Summit 2026 in Utrecht" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;We often describe our PKM systems as &amp;ldquo;second brains&amp;rdquo;. But can we really say our systems think for themselves?&lt;/p&gt;
&lt;p&gt;In Philip K. Dick&amp;rsquo;s &amp;ldquo;Do Androids Dream of Electric Sheep?&amp;rdquo;, the inspiration for the movie Bladerunner, the boundary between humans and machines is tested through observation and subtle signals. In this talk, we&amp;rsquo;ll explore a similar question for our knowledge systems: what happens when we start observing them?&lt;/p&gt;
&lt;p&gt;By instrumenting an Obsidian vault with an observability stack and layering AI tools on top, we can begin to see patterns in how ideas form, connect, and evolve. The result isn&amp;rsquo;t quite a thinking system&amp;hellip; but it may be something closer than we&amp;rsquo;ve had before.&lt;/p&gt;
&lt;h2 id="slides"&gt;Slides&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://nicole.to/androids"&gt;nicole.to/androids&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Asimov's Zeroth Law of Robotics: Observability for AI (Newcrafts 2025)</title><link>https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/</link><pubDate>Thu, 06 Nov 2025 12:23:19 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20251106-asimovs-zeroth-law-newcrafts/</guid><description>&lt;p&gt;Today I presented at &lt;a href="https://ncrafts.io/"&gt;Newcrafts&lt;/a&gt; in Paris, France. I gave a talk I&amp;rsquo;ve given before, called &lt;em&gt;Asimov&amp;rsquo;s Zeroth Law of Robotics: Observability for AI&lt;/em&gt;, which I had previously presented at &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU&lt;/a&gt; in London and at &lt;a href="https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; in Utrecht. I was happy to present it again, as it gave me the chance to further refine my demo application, which you can find on &lt;a href="https://nicole.to/asimov"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The main change I made was to use the &amp;ldquo;AI as judge&amp;rdquo; approach that I had previously only talked about in theory. In this version of the demo app, I use AI in both the game as well as in the testing of the game, showing how AI can be integrated into both the application and its observability/testing stack. It was really interesting to note that testing with AI ended up exposing more defects than my hardcoded test cases did, which goes to show the potential of AI-driven testing.&lt;/p&gt;</description></item><item><title>The Spice Must Flow: The Fremen Guide to Sustainable Observability (Øredev 2025)</title><link>https://nicolevanderhoeven.com/blog/20251105-the-spice-must-flow/</link><pubDate>Wed, 05 Nov 2025 03:07:38 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20251105-the-spice-must-flow/</guid><description>&lt;p&gt;Today I gave a talk at &lt;a href="https://oredev.org/"&gt;Øredev 2025&lt;/a&gt; in Malmö, Sweden, titled +The Spice Must Flow: The Fremen Guide to Sustainable Observability&amp;quot;_. The presentation focused on how to implement sustainable observability practices using open-source tools like Grafana, Prometheus, Loki, Tempo, KEDA, and Kepler. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nobody wants to be wasteful. But how do you balance that with the need for enough data to fix things when they go wrong? After all, no matter how much it costs, there are SLOs to keep. The spice&amp;ndash; the telemetry&amp;ndash; must flow.&lt;/p&gt;
&lt;p&gt;The Fremen are a people who live on the planet Arrakis, simultaneously rich in spice while poor in water. But the Fremen have managed to thrive, not just survive, on very little while continuing to produce spice. What would it take to apply this &amp;ldquo;desert planet thinking&amp;rdquo; to observability?&lt;/p&gt;
&lt;p&gt;In this talk, you&amp;rsquo;ll learn about the hidden environmental and financial costs of your observability stack and how to reduce them. You&amp;rsquo;ll learn about the complications of measuring cost for ephemeral resources on Kubernetes, how to use KEDA to &amp;ldquo;right-size&amp;rdquo; resources when you don&amp;rsquo;t know what the right size is, and how to convince your teams to drop all but the most meaningful telemetry data. In the end, the spice must flow, but there must still be enough water to sustain all.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here are some resources mentioned in the talk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can play the game Spice Runner &lt;a href="https://nicole.to/spicegame"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicole.to/spicerepo"&gt;The spice-runner repo&lt;/a&gt; containing everything you need to know about how to deploy it yourself&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicole.to/spiceslides"&gt;The slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicole.to/spicedashboard"&gt;The Spice Runner dashboard&lt;/a&gt; for observing the application&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nicolevanderhoeven.com/projects/spice-runner/"&gt;More about Spice Runner&lt;/a&gt;: architecture, tech stack, and what it demonstrates&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/2025-11-05-oredev.JPG" alt="Photo of me at Øredev 2025" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>One Year Later: How I Use Visuals in My PKM (Sketch Your Mind Conference)</title><link>https://nicolevanderhoeven.com/blog/20251013-how-i-use-visuals-in-my-pkm/</link><pubDate>Mon, 13 Oct 2025 13:33:18 -0700</pubDate><guid>https://nicolevanderhoeven.com/blog/20251013-how-i-use-visuals-in-my-pkm/</guid><description>&lt;p&gt;Today I gave &lt;a href="https://sketch-your-mind.com/2025/sessions/nicole/"&gt;a talk&lt;/a&gt; at my friend Zsolt Viczián&amp;rsquo;s &lt;a href="https://sketchyourmind.com/"&gt;Sketch Your Mind Conference&lt;/a&gt; about how I use visuals in my PKM, a follow-up to my video about Obsidian Excalidraw last year where I shared that I&amp;rsquo;d changed all my Obsidian templates to hybrid Obsidian Excalidraw notes:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/zmgqMZi6QL8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;In the talk, I shared how I&amp;rsquo;ve evolved my use of visuals in my PKM over the last year, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Referring to icon and logo libraries that dynamically compile all the atomic visuals I use in my notes&lt;/li&gt;
&lt;li&gt;Adopting a visual Zettelkasten-like approach&lt;/li&gt;
&lt;li&gt;Creating notes at conferences to track people I&amp;rsquo;ve met and talks I&amp;rsquo;ve attended&lt;/li&gt;
&lt;li&gt;Using Obsidian Excalidraw to create compelling presentations in lieu of slides&lt;/li&gt;
&lt;li&gt;Combining visuals with audio recordings to create literature notes of books I&amp;rsquo;m reading&lt;/li&gt;
&lt;li&gt;Using a full observability pipeline to monitor and analyze the notes in my Obsidian vault&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I was particularly excited about the last point. I work at Grafana Labs and help people monitor their computer systems using opensource software. I realized that I could use the same tools to monitor my PKM system, so I set up a pipeline where a Python script scrapes note metadata, and sends information to Loki and Prometheus via Alloy, and then I visualize it all in Grafana. It&amp;rsquo;s a pretty nerdy and totally unnecessary setup, but &lt;a href="https://github.com/nicolevanderhoeven/obsidian-grafana"&gt;here&amp;rsquo;s the repo&lt;/a&gt; for anyone interested in replicating it.&lt;/p&gt;</description></item><item><title>All About Structured Metadata in Loki (Loki Community Call August 2025)</title><link>https://nicolevanderhoeven.com/blog/20250812-lcc-all-about-structured-metadata-in-loki/</link><pubDate>Tue, 12 Aug 2025 19:56:32 -0700</pubDate><guid>https://nicolevanderhoeven.com/blog/20250812-lcc-all-about-structured-metadata-in-loki/</guid><description>&lt;p&gt;In this video, &lt;a href="https://www.linkedin.com/in/jaymand13/"&gt;Jay Clifford&lt;/a&gt; and I talk to Senior Software Engineer Salva Corts Sánchez from the Loki team about structured metadata in Loki. We discuss what it is, why you might want to use it, and also how to query it. Structured metadata is especially useful if you&amp;rsquo;re instrumenting your system with OpenTelemetry, so we also touch on that.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/IKdRzjwFXYI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>How to Turn Logs Into Metrics with Grafana Loki (Loki Community Call July 2025)</title><link>https://nicolevanderhoeven.com/blog/20250708-lcc-how-to-turn-logs-into-metrics-with-grafana-loki/</link><pubDate>Tue, 08 Jul 2025 17:23:23 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20250708-lcc-how-to-turn-logs-into-metrics-with-grafana-loki/</guid><description>&lt;p&gt;In this Loki Community Call, we talk all about how to turn metrics into logs in Grafana Loki using metric queries. We cover the basics of metric queries, how to use them to create metrics from logs, and some advanced use cases like using metric queries to create alerts and dashboards.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/tKcnQ0Q2E-k?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Asimov's Zeroth Law of Robotics (Dutch Cloud Native Day 2025)</title><link>https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/</link><pubDate>Thu, 03 Jul 2025 15:01:24 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20250703-asimovs-zeroth-law-dutch-cloud-native-day/</guid><description>&lt;p&gt;Today I presented at the &lt;a href="https://www.dutchcloudnativeday.nl"&gt;Dutch Cloud Native Day 2025&lt;/a&gt; in Utrecht, the Netherlands. I gave a talk titled &lt;em&gt;Asimov&amp;rsquo;s Zeroth Law of Robotics: Observability for AI&lt;/em&gt;, which I had previously presented at &lt;a href="https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/"&gt;KubeCon EU&lt;/a&gt; earlier on in the year, in London. I was very happy to be able to present it again, because it gave me the opportunity to improve the demo app I used, which you can find on &lt;a href="https://nicole.to/asimov"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/2025-07-03-dcnd_01.jpg" alt="Me speaking at Dutch Cloud Native Day 2025" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/2025-07-03-dcnd_02.jpg" alt="Me speaking at Dutch Cloud Native Day 2025" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>The Road to Loki 4.0 (Loki Community Call June 2025)</title><link>https://nicolevanderhoeven.com/blog/20250624-lcc-the-road-to-loki-4_0/</link><pubDate>Tue, 24 Jun 2025 13:56:45 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20250624-lcc-the-road-to-loki-4_0/</guid><description>&lt;p&gt;In this video, my colleague &lt;a href="https://www.linkedin.com/in/jaymand13/"&gt;Jay Clifford&lt;/a&gt; and I interview Ed Welch, Principal Engineer on the Loki team at Grafana Labs, about the upcoming Loki 4.0 release. We talk about some pretty big features that make this next release almost an entire rewrite of Loki, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A shift towards columnar storage, using a new storage format called &amp;ldquo;DataObject&amp;rdquo;&lt;/li&gt;
&lt;li&gt;A new Kafka/WarpStream architecture that decouples the read and write paths&lt;/li&gt;
&lt;li&gt;A new Loki Query Engine that decouples the query language from the rest of the system, allowing for more options in, for example, allowing for SQL queries against Loki in the future&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/LWDeIHfAC9A?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>How to Query Grafana Loki</title><link>https://nicolevanderhoeven.com/blog/20250612-how-to-query-grafana-loki/</link><pubDate>Fri, 13 Jun 2025 15:21:49 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20250612-how-to-query-grafana-loki/</guid><description>&lt;p&gt;In this video, I show you how to query &lt;a href="https://gra.fan/lokirepo"&gt;Grafana Loki&lt;/a&gt;, the open source log aggregation system from Grafana Labs. I cover the basics of Loki&amp;rsquo;s query language, LogQL, and demonstrate how to use it to filter and search logs effectively.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/57dQwcmqkpQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>State of the Observability Databases (Grafana Office Hours #30)</title><link>https://nicolevanderhoeven.com/blog/20250515-goh30-state-of-the-observability-databases/</link><pubDate>Thu, 15 May 2025 18:22:26 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20250515-goh30-state-of-the-observability-databases/</guid><description>&lt;p&gt;In this Grafana Office Hours, we talk about the state of observability databases (Grafana Loki, Mimir, Tempo, and Pyroscope) and where they&amp;rsquo;re going. We talk about current and upcoming architectural changes in all four, how we&amp;rsquo;re making them more performant, how compatible they are with OpenTelemetry, and what we&amp;rsquo;re working on next for each database. In this conversation are Dee Kitchen (VP of Engineering for Databases) and Senior Developer Advocates Jay Clifford and Nicole van der Hoeven.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/6Ph5nvicm6M?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Meta-monitoring Loki (Loki Community Call May 2025)</title><link>https://nicolevanderhoeven.com/blog/20250512-lcc-meta-monitoring-loki/</link><pubDate>Mon, 12 May 2025 17:59:48 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20250512-lcc-meta-monitoring-loki/</guid><description>&lt;p&gt;In this Loki Community Call, we talk about the need for meta-monitoring Loki: why Loki needs to be monitored, what to watch out for, and how to do it. We talk about different ways to get information from Loki that allow you to make it reliable, consistent, and performant, including a Helm chart to deploy a meta-monitoring stack on Kubernetes. We discuss the Loki mixin for Grafana and how to use it to visualize data about Loki. On the call are Jay Clifford, Nicole van der Hoeven, and Dylan Guedes from Grafana Labs.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/OzYHV9xHIms?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>All about OTel and Logging on Kubernetes with Loki (Loki Community Call April 2025)</title><link>https://nicolevanderhoeven.com/blog/20250425-lcc-all-about-otel-and-logging-on-kubernetes-with-loki/</link><pubDate>Fri, 25 Apr 2025 17:57:58 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20250425-lcc-all-about-otel-and-logging-on-kubernetes-with-loki/</guid><description>&lt;p&gt;In this pre-recorded Loki Community Call, we talk all about OTel and logging on Kubernetes with Cyril Tovena, Ward Bekker, Jay Clifford, and Nicole van der Hoeven at KubeCon EU 2025 in London. We discuss when why you should switch to OTel and why you shouldn&amp;rsquo;t, what OTLP is exactly, and best practices for ingesting data through an OTLP endpoint.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/27ZHOg-LaM0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Getting Started with Logging and Grafana Loki (webinar)</title><link>https://nicolevanderhoeven.com/blog/20250416-getting-started-with-logging-and-grafana-loki/</link><pubDate>Wed, 16 Apr 2025 08:18:04 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20250416-getting-started-with-logging-and-grafana-loki/</guid><description>&lt;p&gt;In this webinar, I talk about the key benefits of &lt;a href="https://gra.fan/lokirepo"&gt;Grafana Loki&lt;/a&gt;, the open source log aggregation system from Grafana Labs. I cover the basics of logging, how Loki works, and how to get started with it. This was a live webinar, but I recorded the session here as well:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/9XL4o5lLfVM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Asimov's Zeroth Law of Robotics: Observability for AI (KubeCon EU 2025)</title><link>https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/</link><pubDate>Wed, 02 Apr 2025 13:46:42 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20250402-asimovs-zeroth-law-of-robotics/</guid><description>&lt;p&gt;Today I gave a talk at &lt;a href="https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/"&gt;KubeCon EU 2025 in London&lt;/a&gt; called &amp;ldquo;Asmiov&amp;rsquo;s Zeroth Law of Robotics: Observability for AI&amp;rdquo;. Here&amp;rsquo;s the abstract:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A robot may not harm humans. A robot must obey humans. A robot must protect its own existence. These are Isaac Asimov&amp;rsquo;s three Laws of Robotics, created to govern the ethical programming of artificial intelligences. From the Butlerian Jihad to Skynet to cylons, we&amp;rsquo;ve been immortalizing our collective nightmares about artificial intelligence for years. But there&amp;rsquo;s an unmentioned law that comes as a prerequisite to all of that: a robot must be observable.&lt;/p&gt;
&lt;p&gt;In this talk, I discuss the different types of AI, the factors that make observing AI different from observing applications, and the telemetry signals specific to AI that we might want to listen to. How do we deal with large data sets? How do we observe for model drift? How do we take into account the costs of LLMs? How can we use distributed tracing to follow event sequences? Part cautionary tale and part technical demo, this talk shows how to instrument and monitor AI apps using OpenTelemetry, Prometheus, OpenLit, and more.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/x6EKTCAWtn8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Best Practices for Recording and Alerting (Loki Community Call February 2025)</title><link>https://nicolevanderhoeven.com/blog/20250226-lcc-best-practices-for-recording-and-alerting/</link><pubDate>Wed, 26 Feb 2025 17:54:15 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20250226-lcc-best-practices-for-recording-and-alerting/</guid><description>&lt;p&gt;In this Loki Community Call, we talk about the best practices for recording and alerting rules with Loki Staff Engineer George Robinson and Senior Developer Advocates Jay Clifford and Nicole van der Hoeven. Ever wondered what’s the difference between the Ruler and Alertmanager? 🤔 Curious about the different modes the Ruler can run in when querying Loki? Want to avoid the most common pitfalls when setting up alerting and recording rules? We cover all of these, including optimizing rule performance to structure alerts effectively.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/3_DtwTOppiI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>How to Run Loki at Scale on Kubernetes (Loki Community Call January 2025)</title><link>https://nicolevanderhoeven.com/blog/20250123-lcc-how-to-run-loki-at-scale-on-kubernetes/</link><pubDate>Thu, 23 Jan 2025 17:51:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20250123-lcc-how-to-run-loki-at-scale-on-kubernetes/</guid><description>&lt;p&gt;Happy New Year from the Loki Engineering team. To kick off 2025, Nicole and Jay will be joined by Poyzan Taneli from the Loki Engineering team to discuss how to run Loki at scale on Kubernetes. If you are currently running Loki in microservices mode or preparing to do so, we will be discussing best practices for scaling its components to meet the demands of production use cases.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;How many Ingesters vs Queriers do I need?&lt;/li&gt;
&lt;li&gt;What is the minimum cost of running Loki as a production cluster?&lt;/li&gt;
&lt;li&gt;What is the average node size for running Loki?
How do I monitor my Loki deployment?&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/lAr0GwuZHiw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>AI Observability with Ishan Jain (Grafana Office Hours #29)</title><link>https://nicolevanderhoeven.com/blog/20241108-goh29-ai-observability-with-ishan-jain/</link><pubDate>Fri, 08 Nov 2024 18:24:29 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20241108-goh29-ai-observability-with-ishan-jain/</guid><description>&lt;p&gt;In this Grafana Office Hours, Ishan Jain talks about AI Observability with Grafana: what it entails, factors to consider when monitoring and observing LLMs, and how to do it all with Grafana. He is joined by Senior Developer Advocate Nicole van der Hoeven.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/9X7M-bvnZG0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>All About Logs Drilldown (Loki Community Call October 2024)</title><link>https://nicolevanderhoeven.com/blog/20241003-lcc-all-about-logs-drilldown/</link><pubDate>Thu, 03 Oct 2024 17:45:33 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20241003-lcc-all-about-logs-drilldown/</guid><description>&lt;p&gt;In this Community Call, Senior Software Engineer Trevor Whitney talks to us all about Drilldown Logs for Grafana Loki, an open-source app for visualizing logs from Loki in Grafana without needing to learn and write LogQL queries. He is joined by Senior Developer Advocates Nicole van der Hoeven and Jay Clifford.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/XJMQbEuBeMc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>All the Components of Loki Explained</title><link>https://nicolevanderhoeven.com/blog/20240920-all-the-components-of-loki-explained/</link><pubDate>Fri, 20 Sep 2024 18:09:35 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20240920-all-the-components-of-loki-explained/</guid><description>&lt;p&gt;Here are all the components of Loki explained so that you can figure out how many instances of each you need for a resilient Loki deployment. Senior Developer Advocates Jay Clifford and Nicole van der Hoeven talk you through what each component does and which ones are optional.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/_hv4i84Z68s?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Bloom Filter Changes for Grafana Loki (Loki Community Call September 2024)</title><link>https://nicolevanderhoeven.com/blog/20240905-lcc-bloom-filter-changes-for-grafana-loki/</link><pubDate>Thu, 05 Sep 2024 17:41:18 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20240905-lcc-bloom-filter-changes-for-grafana-loki/</guid><description>&lt;p&gt;In this Community Call, Senior Software Engineer Christian Haudum talks to us about bloom filter changes for Grafana Loki, including the deprecation of the bloom compactor and a pivot towards creating bloom filters for structured metadata. Bloom filters are a probabilistic data structure that we&amp;rsquo;re using to improve query performance in Loki.&lt;/p&gt;
&lt;p&gt;Community Calls are monthly meetings that are open to everyone interested in the development of Loki. They are an opportunity for software engineers working on Loki to discuss new features as well as for open-source users of Loki to ask questions. To participate in the next Community Call, &lt;a href="https://gra.fan/lokicccal"&gt;subscribe to the calendar here&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/keXrUf8jw1A?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Cartography of the Deep: Distributed Tracing for Testing (Romanian Testing Conference)</title><link>https://nicolevanderhoeven.com/blog/20240613-cartography-of-the-deep/</link><pubDate>Thu, 13 Jun 2024 12:24:02 -0700</pubDate><guid>https://nicolevanderhoeven.com/blog/20240613-cartography-of-the-deep/</guid><description>&lt;p&gt;I presented a talk today at the Romanian Testing Conference 2024 in Cluj-Napoca, Romania! My talk was called &amp;ldquo;Cartography of the Deep: Distributed Tracing for Testing&amp;rdquo; and it covered how to tie in distributed tracing into tests to get a better understanding of your system under test.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://nicole.to/rtc2024"&gt;Here are my slides&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/rtc2024-02.jpg" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/rtc2024-01.jpg" alt="" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;From the Scandinavian Kraken that drags entire ships to their early graves to the Philippine Bakunawa said to rise from the waters to swallow the moon, our existential fears about what lurks at the bottom of our own oceans has inspired us to create hundreds of folkloric monsters across cultures. We&amp;rsquo;ve charted the surface of our planet, but the vast majority of the ocean floor remains a mystery.&lt;/p&gt;
&lt;p&gt;The mysterious depths of modern software architectures makes it difficult for us to test a system for performance and reliability. The easy solution? Unmanned underwater probes: send inputs to the system, and judge its state based on the outputs that return. But this method is often too limited to tell us what&amp;rsquo;s really going on when something goes wrong. What if there were a way to make our tests themselves more observable?&lt;/p&gt;
&lt;p&gt;In this talk, you will learn how to use open-source tools to instrument performance tests, identify bottlenecks at the code level using distributed tracing, and map out a system using a type of software bathymetry. You&amp;rsquo;ll also learn about the Mariana Trench expeditions, the difficulties of operating in a high-pressure underwater environment, and how to come face to face with monsters of our mythologies.&lt;/p&gt;</description></item><item><title>How to Get Started With Loki</title><link>https://nicolevanderhoeven.com/blog/20240510-how-to-get-started-with-loki/</link><pubDate>Fri, 10 May 2024 18:12:09 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20240510-how-to-get-started-with-loki/</guid><description>&lt;p&gt;If you were looking for how to get started with Loki, here&amp;rsquo;s a video where Senior Developer Advocates Jay Clifford and Nicole van der Hoeven talk about what Loki is, how to ingest logs with Loki, how to deploy Loki, and finally how to visualize your logs with Grafana.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/1uk8LtQqsZQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Doing It in Public: Observability for PKM</title><link>https://nicolevanderhoeven.com/blog/20240405-doing-it-in-public-observability-for-pkm/</link><pubDate>Fri, 05 Apr 2024 17:26:42 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20240405-doing-it-in-public-observability-for-pkm/</guid><description>&lt;p&gt;The quest of learning in public with Personal Knowledge Management is really about making what you learn observable and exposing your process, rather than your result, early and often. This is a rendition of a talk I gave at the PKM Summit in Utrecht, the Netherlands, on March 23rd, 2024, and it relates concepts borrowed from performance engineering and software development to PKM systems.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/i-uNtkre1aE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>How to do continuous profiling right with Grafana Pyroscope and Ryan Perry, (Grafana Office Hours #26)</title><link>https://nicolevanderhoeven.com/blog/20240119-goh26-how-to-do-continuous-profiling-right-with-grafana-pyroscope/</link><pubDate>Fri, 19 Jan 2024 18:09:01 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20240119-goh26-how-to-do-continuous-profiling-right-with-grafana-pyroscope/</guid><description>&lt;p&gt;My friend &lt;a href="https://javaducky.com"&gt;Paul Balogh&lt;/a&gt; and I interview &lt;a href="https://ryanperry.io"&gt;Ryan Perry&lt;/a&gt;, co-founder of Grafana Pyroscope, about how to do continuous profiling right. Ryan, and the rest of the Pyroscope team, joined Grafana Labs, where he is now a Director of Engineer. Ryan discusses the main concerns in continuous profiling and how to avoid those pitfalls. Pyroscope is an open-source project for aggregating continuous profiling data about your system&amp;rsquo;s resources.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/pzNRvMQzrJ0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="links"&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Pyroscope &lt;a href="https://grafana.com/docs/pyroscope/"&gt;docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pyroscope &lt;a href="https://pyroscope.io/"&gt;site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Pyroscope &lt;a href="https://github.com/grafana/pyroscope"&gt;repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Weigh in on the &lt;a href="https://github.com/open-telemetry/oteps/pull/239"&gt;OpenTelemetry Profiling Data Model&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Entendiendo los sintéticos (Café con Grafana #008)</title><link>https://nicolevanderhoeven.com/blog/20240111-ccg008-enteniendo-los-sint%C3%A9ticos/</link><pubDate>Thu, 11 Jan 2024 16:00:25 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20240111-ccg008-enteniendo-los-sint%C3%A9ticos/</guid><description>&lt;p&gt;En este episodio de Café con Grafana les traemos a Marcelo Magallón, experto en monitoreo sintético, quien viene precisamente a contarnos que es en sí un sintético. Él nos va a mostrar algunos ejemplos, casos de uso y mucha mas diversión!&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/fXNSqrUtiJo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Lee la documentación sobre el monitoreo de sintéticos &lt;a href="https://grafana.com/docs/grafana-cloud/monitor-public-endpoints/installation/"&gt;en Grafana Cloud aquí&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>How to Deploy Grafana Beyla on Kubernetes as a Sidecar Container</title><link>https://nicolevanderhoeven.com/blog/20240109-how-to-deploy-grafana-beyla-on-kubernetes-as-a-sidecar-container/</link><pubDate>Tue, 09 Jan 2024 13:41:38 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20240109-how-to-deploy-grafana-beyla-on-kubernetes-as-a-sidecar-container/</guid><description>&lt;p&gt;Principal Staff Engineer Nikola Grčevski demonstrates how to deploy Grafana Beyla on Kubernetes as a sidecar container. Grafana Beyla is an eBPF auto-instrumentation tool for application observability: you just have to tell it what to listen to, give it permissions, and deploy it&amp;ndash; and you can see metrics and logs from that component or service without having to do any manual instrumentation.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/d7clTdz0bA4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="links"&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/beyla/latest/setup/kubernetes/"&gt;Instructions for deploying Grafana Beyla on Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/beyla"&gt;Grafana Beyla on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Introduction to eBPF With Grafana Beyla (Grafana Office Hours #25)</title><link>https://nicolevanderhoeven.com/blog/20240105-goh25-introduction-to-ebpf-with-grafana-beyla/</link><pubDate>Fri, 05 Jan 2024 18:03:52 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20240105-goh25-introduction-to-ebpf-with-grafana-beyla/</guid><description>&lt;p&gt;Nikola Grčevski, Principal Software Engineer at Grafana Labs, gives us an introduction to eBPF with Grafana Beyla. We discuss what is eBPF, how you can use it to auto-instrument applications, and how to get started with Beyla. eBPF observability is all the rage because we all want automagical instrumentation&amp;ndash; but does it live up to that promise? Nikola&amp;rsquo;s here to tell us what eBPF can and can&amp;rsquo;t do, and where he&amp;rsquo;d like to take Beyla next.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ZEUzucqXUnQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="links"&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/beyla"&gt;Grafana Beyla repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/monitor-applications/beyla/"&gt;Grafana Beyla docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/monitor-applications/application-observability/"&gt;Application Observability docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>AI Microscopy with Grafana, Theia Scientific, and Volkov Labs (Grafana Office Hours #24)</title><link>https://nicolevanderhoeven.com/blog/20231215-goh24-ai-microscopy-with-grafana-theia-scientific-volkov-labs/</link><pubDate>Fri, 15 Dec 2023 17:42:58 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20231215-goh24-ai-microscopy-with-grafana-theia-scientific-volkov-labs/</guid><description>&lt;p&gt;What do you get when you combine AI microscopy with Grafana? Well, in this case, you get the Theiascope platform: an application for doing real-time analysis on microscopy images using a combination of Grafana, Prometheus, and PostgreSQL/Timescale. The Theiascope platform was a collaboration between Dr. Christopher Field, Co-Founder/President/ Principal Investigator at Theia Scientific and Mikhail Volkov, Founder/CEO of Volkov Labs.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/BgRd-RAFMEE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Getting Started with OpenTelemetry (Grafana Office Hours #23)</title><link>https://nicolevanderhoeven.com/blog/20231208-goh23-getting-started-with-opentelemetry/</link><pubDate>Fri, 08 Dec 2023 17:00:23 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20231208-goh23-getting-started-with-opentelemetry/</guid><description>&lt;p&gt;Principal Engineer Juraci Paixão Kröhling talks to my colleague &lt;a href="https://javaducky.com"&gt;Paul Balogh&lt;/a&gt; and me about getting started with OpenTelemetry: what it is, why everyone&amp;rsquo;s talking about it, and how to instrument your systems and improve their reliability and observability. Juraci is a contributor to open source projects like Jaeger and OpenTelemetry.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Xhh9V7uRP88?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Repasemos el G-stack (Café con Grafana #005)</title><link>https://nicolevanderhoeven.com/blog/20231130-ccg005-repasemos-el-g-stack/</link><pubDate>Thu, 30 Nov 2023 13:57:52 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20231130-ccg005-repasemos-el-g-stack/</guid><description>&lt;p&gt;En este episodio de Café con Grafana tenemos a Raul Marin, Solutions Engineer (Ingeniero de soluciones?) quien viene a darnos una repasada completisima de todo el stack de Grafana. TODO! Pues hay muchos que no conocen todas las herramientas, caracteristicas y posibilidades que Grafana Labs viene a ofrecer.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/irUr96JV-Sg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Dimensionando el Grafana Suite (Café con Grafana #004)</title><link>https://nicolevanderhoeven.com/blog/20231123-ccg004-dimensionando-el-grafana-suite/</link><pubDate>Thu, 23 Nov 2023 13:51:25 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20231123-ccg004-dimensionando-el-grafana-suite/</guid><description>&lt;p&gt;Almudena Vivanco viene a platicarnos de todos los experimentos y pruebas a las que someten a toda la suite de Grafana. Desde Mimir hasta k6 ella pone al limite todos los elementos constantemente. Además nos dará muchos tips de su experiencia para usar Grafana y mucho mas!&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/O9tAkdKMvDg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>(ES) Cómo hacer pruebas de carga con Grafana k6 (Café con Grafana #003)</title><link>https://nicolevanderhoeven.com/blog/20231108-ccg003-c%C3%B3mo-hacer-pruebas-de-carga-con-grafana-k6/</link><pubDate>Wed, 08 Nov 2023 13:43:50 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20231108-ccg003-c%C3%B3mo-hacer-pruebas-de-carga-con-grafana-k6/</guid><description>&lt;p&gt;Daniel González Lopes nos viene a demostrar cómo hacer pruebas de carga con Grafana k6 desde zero, y cómo utilizar k6 para ejecutar otros tipos de pruebas. En este episodio para principiantes, hablaremos también sobre la relación entre pruebas y observabilidad.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/NF2R-Zk9iek?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/k6"&gt;Repositorio de k6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/k6/latest/"&gt;Documentación de k6&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Combining Frontend and Backend Performance With John Hill (Grafana Office Hours #18)</title><link>https://nicolevanderhoeven.com/blog/20231103-goh18-combining-frontend-and-backend-performance-with-john-hill/</link><pubDate>Fri, 03 Nov 2023 12:30:43 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20231103-goh18-combining-frontend-and-backend-performance-with-john-hill/</guid><description>&lt;p&gt;In this episode of Grafana Office Hours, my colleagues &lt;a href="https://testingwithmarie.com"&gt;Marie Cruz&lt;/a&gt;, &lt;a href="https://javaducky.com"&gt;Paul Balogh&lt;/a&gt;, and I talk to John Hill, a Web UI Test Engineer and Grafana k6 champion, to talk about how the Grafana and k6 ecosystems can be used to ensure performance in mission-critical applications like NASA&amp;rsquo;s Open MCT.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/8Z67vAkv3J0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>(ES) Observando Bitácoras With Matías Chomicki (Café con Grafana #002)</title><link>https://nicolevanderhoeven.com/blog/20231102-ccg002-observando-bit%C3%A1coras-with-mat%C3%ADas-chomicki/</link><pubDate>Thu, 02 Nov 2023 12:25:53 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20231102-ccg002-observando-bit%C3%A1coras-with-mat%C3%ADas-chomicki/</guid><description>&lt;p&gt;Hoy hababa con mis colegas &lt;a href="https://www.srperf.com/"&gt;Leandro Melendez&lt;/a&gt; and Matías Chomicki sobre observabilidad de logs en Grafana: qué son, con qué se comen, qué tienen que ver con Loki, otras plataformas donde se pueden usar, y muchos detalles mas!&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/2eA93JHQD3U?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>(TL) Ano ang relasyon ng testing at observabilidad?</title><link>https://nicolevanderhoeven.com/blog/20231101-relasyon-ng-testing-at-observabilidad/</link><pubDate>Wed, 01 Nov 2023 12:19:46 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20231101-relasyon-ng-testing-at-observabilidad/</guid><description>&lt;p&gt;Ano ang relasyon ng testing sa observabilidad? Sa video na ito, pinag-uusapan namin ng kaibigan kong si &lt;a href="https://testingwithmarie.com"&gt;Marie Cruz&lt;/a&gt; kung ano ang testing, ano ang observabilidad, at bakit dapat nating gamitin pero para pabutihin ang ating mga aplikasyon.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/rC9trgeMYyk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Real User Monitoring With Grafana Faro (Grafana Office Hours #17)</title><link>https://nicolevanderhoeven.com/blog/20231027-goh17-real-user-monitoring-with-grafana-faro/</link><pubDate>Fri, 27 Oct 2023 07:00:19 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20231027-goh17-real-user-monitoring-with-grafana-faro/</guid><description>&lt;p&gt;My friend &lt;a href="https://testingwithmarie.com"&gt;Marie Cruz&lt;/a&gt; and I chat with Software Engineers Kostas Pelelis and Marco Schaefer to discuss what Grafana Faro is, why it&amp;rsquo;s important to have a real user monitoring solution, and how to get started with it.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/lUYj28znIu8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="useful-links"&gt;Useful links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/monitor-applications/frontend-observability/"&gt;Frontend observability docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/faro-web-sdk"&gt;Grafana Faro repo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>(ES) Grafana Como Código (Café con Grafana #01)</title><link>https://nicolevanderhoeven.com/blog/20231026-ccg001-grafana-como-c%C3%B3digo/</link><pubDate>Thu, 26 Oct 2023 06:55:37 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20231026-ccg001-grafana-como-c%C3%B3digo/</guid><description>&lt;p&gt;En este episodio platicamos con Joan López de la Franca, Ingeniero de software senior en Grafana.
El nos viene a platicar de las funcionalidades de Grafana como código, que es, como funciona, cuando conviene utilizarlo e incluso nos traerá algunos demos al respecto.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/OqGFN22dvhQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Emergent Load Testing - TestCon Europe 2023</title><link>https://nicolevanderhoeven.com/blog/20231025-emergent-load-testing-testconeu/</link><pubDate>Wed, 25 Oct 2023 20:05:36 +0300</pubDate><guid>https://nicolevanderhoeven.com/blog/20231025-emergent-load-testing-testconeu/</guid><description>&lt;p&gt;I presented at &lt;a href="https://testcon.lt/"&gt;TestCon Europe 2023&lt;/a&gt; in Vilnius, Lithuania about emergent load testing, and how to use it to find the limits of your system. My talk was called &lt;a href="https://events.pinetool.ai/3078/#sessions/100686?referrer%5Bpathname%5D=%2Fsessions&amp;amp;referrer%5Bsearch%5D=&amp;amp;referrer%5Btitle%5D=Sessions"&gt;Emergent load testing: Rules for Organized Chaos&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can find the slides &lt;a href="https://slides.nicolevanderhoeven.com/2023-emergent-load-testing-testconeu/"&gt;here&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/JUJ_0079.jpg" alt="Me speaking at TestCon Europe 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/JUJ_0102.jpg" alt="Portrait snapshot of me presenting at TestCon Europe 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/JUJ_0193.jpg" alt="Wide shot of me talking about agency, feedback, and affordances" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/JUJ_0208.jpg" alt="Me at the podium at TestCon Europe 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>What is Grafana Agent? (Grafana Office Hours #16)</title><link>https://nicolevanderhoeven.com/blog/20231020-goh16-what-is-grafana-agent/</link><pubDate>Fri, 20 Oct 2023 12:55:11 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20231020-goh16-what-is-grafana-agent/</guid><description>&lt;p&gt;What is Grafana Agent? Senior Software Engineer Paschalis Tsilias tells us about what telemetry collectors do, why they&amp;rsquo;re useful, what you&amp;rsquo;d have to do without them, and how to get started with Grafana Agent. He is joined by Developer Advocates Nicole van der Hoeven and Paul Balogh.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/i0mA0w_MCPQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="useful-links"&gt;Useful links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/grafana/agent"&gt;Grafana Agent repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/agent/"&gt;Documentation on Grafana Agent&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Agentless Monitoring for Prometheus in Grafana Cloud (Grafana Office Hours #15)</title><link>https://nicolevanderhoeven.com/blog/20231013-goh15-agentless-monitoring-for-prometheus-in-grafana-cloud/</link><pubDate>Fri, 13 Oct 2023 10:56:15 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20231013-goh15-agentless-monitoring-for-prometheus-in-grafana-cloud/</guid><description>&lt;p&gt;Did you know you could do agentless monitoring for Prometheus in Grafana Cloud? Senior Software Engineer Matt Nolf talks to me and my coworker &lt;a href="https://javaducky.com"&gt;Paul Balogh&lt;/a&gt; about the new Metrics Endpoint integration and how you can use it to collect Prometheus metrics from publicly addressable hosts&amp;ndash; WITHOUT using Grafana Agent.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/EYR5lQJ_kG8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/monitor-infrastructure/integrations/integration-reference/integration-metrics-endpoint/"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/blog/2023/09/21/introducing-agentless-monitoring-for-prometheus-in-grafana-cloud/"&gt;Blog post&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Distributed tracing with Grafana Cloud k6 (Grafana Office Hours #14)</title><link>https://nicolevanderhoeven.com/blog/20231007-goh14-distributed-tracing-with-grafana-cloud-k6/</link><pubDate>Sat, 07 Oct 2023 08:31:03 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20231007-goh14-distributed-tracing-with-grafana-cloud-k6/</guid><description>&lt;p&gt;My friend &lt;a href="https://testingwithmarie.com"&gt;Marie Cruz&lt;/a&gt; and I interview Senior Software Engineer Łukasz Gut about a new feature: Distributed Tracing with Grafana Cloud k6. He discusses what distributed tracing is, why it matters, and how it can help teams find reliability issues faster.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/petbezEmIw4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>How to Deploy Grafana on Kubernetes (Grafana Office Hours #13)</title><link>https://nicolevanderhoeven.com/blog/20230929-goh13-how-to-deploy-grafana-on-kubernetes/</link><pubDate>Fri, 29 Sep 2023 17:30:49 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20230929-goh13-how-to-deploy-grafana-on-kubernetes/</guid><description>&lt;p&gt;My coworker Usman Ahmad and I talk about how to deploy Grafana on Kubernetes for beginners: what Kubernetes is, how it&amp;rsquo;s an evolution of distributed computing, what its relationship to Docker is, other things you might need to know to work with Kubernetes, and how you can deploy Grafana on your own Kubernetes clusters.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/DEv5wtZxNCk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Documentation on how to deploy Grafana on Kubernetes &lt;a href="https://grafana.com/docs/grafana/latest/setup-grafana/installation/kubernetes/"&gt;here&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>OpenTelemetry demo app with Grafana, Tempo, Loki, and Prometheus (Grafana Office Hours #06)</title><link>https://nicolevanderhoeven.com/blog/20230728-goh06-open-telemetry-demo-app-with-grafana-tempo-loki-prometheus/</link><pubDate>Fri, 28 Jul 2023 20:25:37 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20230728-goh06-open-telemetry-demo-app-with-grafana-tempo-loki-prometheus/</guid><description>&lt;p&gt;DevOps &lt;a href="https://www.linkedin.com/in/blueswen/"&gt;Engineer Blueswen Liu&lt;/a&gt; 劉義瑋 joins us to walk us through some OpenTelemetry demo apps he created, instrumented with Grafana, Loki, Prometheus, and Tempo.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/dXR8WNm5uos?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Load testing and tracing with k6 and Tempo</title><link>https://nicolevanderhoeven.com/blog/20230518-load-testing-and-tracing-with-k6-and-tempo/</link><pubDate>Thu, 18 May 2023 22:41:42 +1000</pubDate><guid>https://nicolevanderhoeven.com/blog/20230518-load-testing-and-tracing-with-k6-and-tempo/</guid><description>&lt;p&gt;At &lt;a href="https://grafana.com/about/events/observabilitycon/2023/sydney/"&gt;ObservabilityCON on the Road 2023 in Sydney, Australia&lt;/a&gt;, I talked about why you should use load testing and distributed tracing, how to do it with k6 and Tempo, and the benefits of being able to see beyond traditional black-box testing.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ZP2aa5qjNOg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.google.com/presentation/d/1rC8kifF6X1ZSH8jgh-yUp6NfgK_UaLiOG8TWLa5dQBQ/edit?usp=sharing"&gt;Check out the slides here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/Distributed+tracing"&gt;Distributed tracing&lt;/a&gt; (notes)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/xk6-distributed-tracing"&gt;xk6-distributed-tracing&lt;/a&gt; (notes)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/ocr-2023-syd-01.jpeg" alt="Photo of the crowd at OCR Sydney" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>How to Avoid the Most Common Kubernetes Monitoring Mistakes</title><link>https://nicolevanderhoeven.com/blog/20230516-how-to-avoid-the-most-common-kubernetes-monitoring-mistakes/</link><pubDate>Tue, 16 May 2023 22:41:16 +1000</pubDate><guid>https://nicolevanderhoeven.com/blog/20230516-how-to-avoid-the-most-common-kubernetes-monitoring-mistakes/</guid><description>&lt;p&gt;For &lt;a href="https://grafana.com/about/events/observabilitycon/2023/singapore/"&gt;ObservabilityCON on the Road Singapore 2023&lt;/a&gt;, I talked about some mistakes people make when monitoring applications within Kubernetes clusters. I also demonstrated Grafana&amp;rsquo;s Kubernetes Monitoring solution and how it can be a shortcut for engineers looking to get started quickly.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/ocr-2023-sin-01.jpg" alt="Photo of me speaking at OCR Singapore 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="resources"&gt;Resources&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.google.com/presentation/d/1rC8kifF6X1ZSH8jgh-yUp6NfgK_UaLiOG8TWLa5dQBQ/edit?usp=sharing"&gt;Slides here&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/Monitoring+Kubernetes"&gt;Monitoring Kubernetes in general&lt;/a&gt; (notes)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notes.nicolevanderhoeven.com/Grafana+Kubernetes+Monitoring"&gt;The Grafana Kubernetes Monitoring feature&lt;/a&gt; (notes)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="https://nicolevanderhoeven.com/assets/ocr-2023-sin-02.jpg" alt="Photo of the crowd at OCR Singapore 2023" loading="lazy" decoding="async"&gt;
&lt;/p&gt;</description></item><item><title>Grafana Cloud k6 (k6 Office Hours #83)</title><link>https://nicolevanderhoeven.com/blog/20230324-koh-83-grafana-cloud-k6/</link><pubDate>Fri, 24 Mar 2023 18:00:00 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20230324-koh-83-grafana-cloud-k6/</guid><description>&lt;p&gt;With the release of Grafana Cloud k6, you can get observability and performance testing in the same platform. Senior Product Manager Mark Meier and Frontend Lead Simon Legander join me to talk about what Grafana Cloud k6 is, how you can use it, and demonstrate what it can do to improve your system&amp;rsquo;s reliability.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grafana.com/products/cloud/k6/"&gt;Sign up to Grafana Cloud k6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grafana.com/docs/grafana-cloud/k6/"&gt;Learn more about Grafana Cloud k6&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/oIBNIsZaN_8?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Introducing Grafana Cloud k6</title><link>https://nicolevanderhoeven.com/blog/20230321-introducing-grafana-cloud-k6/</link><pubDate>Tue, 21 Mar 2023 15:20:58 +0000</pubDate><guid>https://nicolevanderhoeven.com/blog/20230321-introducing-grafana-cloud-k6/</guid><description>&lt;p&gt;Grafana Cloud k6 is a feature available to all users of Grafana Cloud. It allows you to run load and performance tests right from the comfort of your Grafana Cloud instance, without needing to create a separate account on k6 Cloud. Grafana Cloud k6 helps you get started quickly with a GUI Test Builder or with test scripts written in JavaScript, and then visualize your test results in real-time, alongside your other Grafana dashboards that monitor your system infrastructure. With Grafana Cloud k6, you can get a holistic look at your system&amp;rsquo;s performance&amp;ndash; on any environment.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://grafana.com/products/cloud/k6/"&gt;Sign up to Grafana Cloud k6&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://k6.io/docs/cloud/integrations/grafana-app/"&gt;Learn more about Grafana Cloud k6&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/OMh7bWk2qnQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Observability Trends and Future Best Practices (k6 Office Hours #59)</title><link>https://nicolevanderhoeven.com/blog/20220812-koh59-observability-trends-and-future-best-practices/</link><pubDate>Fri, 12 Aug 2022 16:19:13 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20220812-koh59-observability-trends-and-future-best-practices/</guid><description>&lt;p&gt;What are some observability trends and best practices in 2022 and going forward? Technical Program Manager Daniel González Lopes joins Developer Advocates Nicole van der Hoeven and Paul Balogh to chat about trending concepts and new areas of exploration in the field of observability. We&amp;rsquo;re going to talk about distributed tracing, continuous profiling, eBPF monitoring, and more!&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/4NPCzt5eF9w?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Why Is Everyone Talking About Chaos Engineering? (k6 Office Hours #56)</title><link>https://nicolevanderhoeven.com/blog/20220715-koh56-why-is-everyone-talking-about-chaos-engineering/</link><pubDate>Fri, 15 Jul 2022 18:00:13 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20220715-koh56-why-is-everyone-talking-about-chaos-engineering/</guid><description>&lt;p&gt;Why is everyone talking about chaos engineering anyway? How different is it from testing? What does it have to do with performance? In this k6 Office Hours, k6 Technical Program Manager Vince Huang joins me and my colleague, Paul Balogh, to talk about these topics and more.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/GXEB2LZ4wfw?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>How to migrate to Kubernetes, with Carlos Ruiz Lantero (k6 Office Hours #55)</title><link>https://nicolevanderhoeven.com/blog/20220708-koh55-how-to-migrate-to-kubernetes/</link><pubDate>Fri, 08 Jul 2022 17:00:57 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20220708-koh55-how-to-migrate-to-kubernetes/</guid><description>&lt;p&gt;k6 Cloud Backend developer Carlos Ruiz Lantero joins Developer Advocates Nicole van der Hoeven and Paul Balogh to discuss how to migrate to Kubernetes. Carlos has been working on migrating k6 Cloud services from ECS to EKS, and in this video, he shares his best practices for migration and things he wishes he&amp;rsquo;d done differently.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/wPX0QP45Yo4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Performance Objective: Intro to Load Testing With k6 and Grafana</title><link>https://nicolevanderhoeven.com/blog/20211123-intro-to-load-testing-with-k6-and-grafana/</link><pubDate>Tue, 23 Nov 2021 17:05:06 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20211123-intro-to-load-testing-with-k6-and-grafana/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/fjq-JmrLjPc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;I spoke at the Performance Objective meetup to talk about how to use k6 and Grafana for beginners. I always enjoy talking to like-minded engineers, and I think sharing ideas in a meetup context is probably the best way to do it.&lt;/p&gt;</description></item><item><title>Basics of load testing with k6 and Grafana in 20 minutes</title><link>https://nicolevanderhoeven.com/blog/20211012-basics-of-load-testing-with-k6-and-grafana/</link><pubDate>Tue, 12 Oct 2021 01:04:02 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20211012-basics-of-load-testing-with-k6-and-grafana/</guid><description>&lt;p&gt;This was a video I pre-recorded in preparation for &lt;a href="https://nicolevanderhoeven.com/blog/20211005-testing-with-k6-and-grafana-better-together/"&gt;the first Grafana EMEA virtual meetup&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/gvounvDSDGg?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;In mid-June (just three months ago), k6 joined the Grafana Labs family. Many people didn&amp;rsquo;t quite understand what the connection was between k6 and Grafana, but I thought it made a lot of sense.&lt;/p&gt;
&lt;p&gt;Google&amp;rsquo;s Site Reliability Engineering book talks about 4 golden signals that we should measure in a system: latency, traffic, errors, and saturation. Load testing provides 3 of those (latency, traffic, and errors), but it doesn&amp;rsquo;t show saturation, and it doesn&amp;rsquo;t give us visibility into the system.&lt;/p&gt;
&lt;p&gt;Grafana brings observability. k6 brings data. They work really well together, which is why we&amp;rsquo;ve been using each other&amp;rsquo;s products for a few years now, before there was ever any talk of an acquisition.&lt;/p&gt;
&lt;p&gt;In this video, I talk about why k6 and Grafana are better together and also demonstrate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;how to run a simple script in k6 OSS&lt;/li&gt;
&lt;li&gt;how to make sense of the results of a load test&lt;/li&gt;
&lt;li&gt;test execution options: running locally, sending results to k6 Cloud, and running a test from k6 Cloud&amp;ndash; all triggered using the CLI&lt;/li&gt;
&lt;li&gt;two different integration options to bring k6 and Grafana together: the k6 Cloud Grafana data source plugin and Prometheus Remote Write&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Testing With k6 + Grafana: Better Together (Grafana virtual meetup EMEA)</title><link>https://nicolevanderhoeven.com/blog/20211005-testing-with-k6-and-grafana-better-together/</link><pubDate>Tue, 05 Oct 2021 21:49:13 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20211005-testing-with-k6-and-grafana-better-together/</guid><description>&lt;p&gt;In this first EMEA session of the Grafana Labs virtual meetups, I talked about how to use k6 and Grafana together to get the full performance picture for a software application. Observability, using tools like Prometheus and Grafana, lets us see what&amp;rsquo;s going on inside the application, and load testing, using k6, helps us get those insights earlier on in software cycles, such as during pre-production.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/MUd5xuuxt0A?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Intro to Load Testing With k6 and Grafana (webinar)</title><link>https://nicolevanderhoeven.com/blog/20210916-intro-to-load-testing-with-k6-and-grafana/</link><pubDate>Thu, 16 Sep 2021 22:11:16 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210916-intro-to-load-testing-with-k6-and-grafana/</guid><description>&lt;p&gt;Tonight I did a webinar with Grafana Labs&amp;ndash; the first k6-related webinar since the acquisition. I was more than a little nervous to give it, because I knew I was introducing k6 to a lot of new users, but also to Grafana for the first time. I think it went pretty well! I was still quite relieved when it was over, however. :)&lt;/p&gt;
&lt;p&gt;In the webinar, I talk about:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;why it&amp;rsquo;s still a good idea to do load testing in pre-production&lt;/li&gt;
&lt;li&gt;what k6 is&lt;/li&gt;
&lt;li&gt;why k6 and Grafana together make sense&lt;/li&gt;
&lt;li&gt;and how to integrate k6 and Grafana&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There&amp;rsquo;s quite a bit of demo in it, and I also had the k6 CEO, Robin Gustafsson, join me for Q&amp;amp;A as a nice treat.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/tFsIgbqXbxM?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Check out the full webinar &lt;a href="https://grafana.com/go/webinar/intro-to-load-testing-with-grafana-and-k6/"&gt;here&lt;/a&gt;&amp;ndash; it&amp;rsquo;s already up on the Grafana site. You can also go through my slides &lt;a href="https://docs.google.com/presentation/d/1WOA50nqIv1NoiHBxGIH_JM02rZqSjX81gHTlwPJ5i1U/edit?usp=sharing"&gt;here&lt;/a&gt;, if you&amp;rsquo;d like.&lt;/p&gt;</description></item><item><title>Schrödinger's Pokémon: k6 and Grafana edition</title><link>https://nicolevanderhoeven.com/blog/20210908-schrodingers-pokemon-k6-and-grafana/</link><pubDate>Wed, 15 Sep 2021 18:22:31 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210908-schrodingers-pokemon-k6-and-grafana/</guid><description>&lt;p&gt;Earlier this year, I gave a presentation at New Relic&amp;rsquo;s FutureStack conference about &lt;a href="https://nicolevanderhoeven.com/blog/20210730-schrodingers-pokemon/"&gt;chaos engineering with k6 and New Relic&lt;/a&gt;. A few months ago, k6 got acquired by &lt;a href="https://grafana.com"&gt;Grafana Labs&lt;/a&gt;, and so I wanted to redo it, but with the Grafana stack this time.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the result, and I think I like this iteration even better:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/2QHs_HEX7r0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;I presented this talk at &lt;a href="https://www.youtube.com/watch?v=jSgH3I8_ldk"&gt;TestCon Europe 2021&lt;/a&gt; today, although the audio sync issues were not great, so I recommend you watch the video above instead.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.google.com/presentation/d/11HakdG0w2RsOunVnD6qPkTfTPpBxtXFECK_ynSOBraE/edit"&gt;Slides are here.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>How to do continuous performance testing, with Lee Barnes (k6 Office Hours #26)</title><link>https://nicolevanderhoeven.com/blog/20210827-koh26-continuous-performance-testing-with-k6/</link><pubDate>Fri, 27 Aug 2021 09:34:13 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210827-koh26-continuous-performance-testing-with-k6/</guid><description>&lt;p&gt;&lt;a href="https://twitter.com/USI_LeeBarnes"&gt;Lee Barnes&lt;/a&gt; and I got connected because we are both speaking at &lt;a href="https://testcon.lt/"&gt;TestCon Europe 2021&lt;/a&gt; this year, and I thought it would be nice to have a chat with him before the conference to get a sneak peek at what he&amp;rsquo;s presenting about: continuous performance testing. Lee is the CEO of &lt;a href="https://utopiasolutions.com/"&gt;Utopia Solutions&lt;/a&gt;, and he&amp;rsquo;s been in the testing industry for decades, so I really appreciated his insights on where the industry is going.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/5pd0G-jBOTo?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;Catch Lee&amp;rsquo;s talk &lt;a href="https://testcon.lt/Lee-Barnes/"&gt;here&lt;/a&gt; and mine &lt;a href="https://testcon.lt/Nicole-van-der-Hoeven/"&gt;here&lt;/a&gt;!&lt;/p&gt;</description></item><item><title>Monitoring your k6 load test: how to install Grafana and Prometheus on a Kubernetes cluster</title><link>https://nicolevanderhoeven.com/blog/20210811-how-to-install-grafana-prometheus-in-kubernetes/</link><pubDate>Wed, 11 Aug 2021 18:55:49 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210811-how-to-install-grafana-prometheus-in-kubernetes/</guid><description>&lt;p&gt;Running a load test is half of the equation, and not having the right observability tools to see how your application responds to the load can sometimes flat-out invalidate a test.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s how to install open-source tools Grafana and Prometheus on a Kubernetes cluster in DigitalOcean and how a performance user could use them for increased visibility during a load test.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/GL2v81xYuAQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>A tester's overview of Grafana Labs open-source projects</title><link>https://nicolevanderhoeven.com/blog/20210719-grafana-labs-overview/</link><pubDate>Mon, 19 Jul 2021 18:23:33 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210719-grafana-labs-overview/</guid><description>&lt;p&gt;Since the acquisition of k6 by Grafana Labs, the entire k6 team has been absorbed into the new, larger team that we&amp;rsquo;re suddenly a part of. Grafana Labs maintains a lot of projects, so I was very quickly overwhelmed with things to learn about all of them. Here&amp;rsquo;s my attempt to make sense of the Grafana Labs landscape, and perhaps it can help some of you as well:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/_DB-lNZW7LQ?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Acquisition talk with CEOs Raj Dutt (Grafana) and Robin Gustafsson (k6) (k6 Office Hours #19)</title><link>https://nicolevanderhoeven.com/blog/20210702-koh-raj-robin/</link><pubDate>Fri, 02 Jul 2021 21:04:13 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210702-koh-raj-robin/</guid><description>&lt;p&gt;This week on k6 Office Hours, &lt;a href="https://simme.dev"&gt;Simme&lt;/a&gt; and I were joined by two CEOs: k6 CEO &lt;a href="https://www.linkedin.com/in/robinegustafsson/"&gt;Robin Gustafsson&lt;/a&gt; and Grafana Labs CEO &lt;a href="https://twitter.com/nopzor"&gt;Raj Dutt&lt;/a&gt;. It was a little nerve-wracking to have two CEOs on the stream, but it did give us the opportunity to ask both of them pointed questions on Grafana Labs&amp;rsquo;s acquisition of k6, including any plans they have for how both companies could integrate better in the future.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/sfWIB-myito?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>What you need to know about Grafana Labs's acquisition of k6</title><link>https://nicolevanderhoeven.com/blog/20210630-gl-acquisition/</link><pubDate>Wed, 30 Jun 2021 18:29:24 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210630-gl-acquisition/</guid><description>&lt;p&gt;Recently, during Grafanaconline 2021, &lt;a href="https://grafana.com/about/press/2021-06-17-grafana-labs-brings-modern-open-source-load-testing-to-observability-with-acquisition-of-k6/"&gt;Grafana Labs CEO Raj Dutt announced&lt;/a&gt; the acquisition of k6&amp;ndash; the company I work for. What does this mean? Here&amp;rsquo;s a video I made to explain it all:&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/t1agJsLwrGE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://simme.dev"&gt;Simme&lt;/a&gt; and I have also discussed the acquisition twice on k6 Office Hours:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/watch?v=RrDo2wMeV80"&gt;once with our CEO, Robin Gustafsson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;and another time with &lt;a href="https://www.youtube.com/watch?v=sfWIB-myito"&gt;both Robin and Raj, Grafana Labs CEO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TL;DW: We unanimously agree it&amp;rsquo;s a positive thing. I myself am cautiously optimistic about the future of both k6 and Grafana Labs.&lt;/p&gt;</description></item><item><title>k6 is part of Grafana Labs! AMA with CEO Robin Gustafsson (k6 Office Hours #17)</title><link>https://nicolevanderhoeven.com/blog/20210618-koh-with-robin-grafana/</link><pubDate>Fri, 18 Jun 2021 22:26:49 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210618-koh-with-robin-grafana/</guid><description>&lt;p&gt;On this week&amp;rsquo;s Office Hours, &lt;a href="https://simme.dev"&gt;Simme&lt;/a&gt; and I were joined by &lt;a href="https://www.linkedin.com/in/robinegustafsson/"&gt;Robin Gustafsson&lt;/a&gt;, the CEO of k6, to make a big announcement: k6 has been acquired by Grafana Labs.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/RrDo2wMeV80?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;The folks at Grafana Labs have been fans of k6 for a while, and we&amp;rsquo;ve been fans (and users) of their work since almost the beginning of k6. While a surprise to many, Grafana and k6 together is a combination that makes sense.&lt;/p&gt;
&lt;p&gt;Read &lt;a href="https://grafana.com/about/press/2021-06-17-grafana-labs-brings-modern-open-source-load-testing-to-observability-with-acquisition-of-k6/"&gt;Grafana&amp;rsquo;s press release here&lt;/a&gt; to hear more about this milestone.&lt;/p&gt;</description></item><item><title>Application Performance Monitoring using Netdata and k6, with Odysseas Lamtzidis (k6 Office Hours)</title><link>https://nicolevanderhoeven.com/blog/20210528-koh-odysseas/</link><pubDate>Fri, 28 May 2021 23:24:48 +0200</pubDate><guid>https://nicolevanderhoeven.com/blog/20210528-koh-odysseas/</guid><description>&lt;p&gt;This week, we had &lt;a href="https://twitter.com/odysseas_lam"&gt;Odysseas Lamtzidis&lt;/a&gt; on the show to talk about &lt;a href="https://netdata.cloud"&gt;Netdata&lt;/a&gt;, which is an application performance monitoring tool that prides itself on having the easiest setup ever. Odysseas admitted that it might not have all the bells and whistles of other monitoring platforms, it Just Works. I see this as being very interesting especially for testers like me, who just want to have something set up but might not want to be bothered by the implementation.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Y2dVJssTemI?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Learning how to use k6 live with Nočnica Fee from New Relic (k6 Office Hours)</title><link>https://nicolevanderhoeven.com/blog/20210515-koh-nica/</link><pubDate>Fri, 14 May 2021 21:53:09 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20210515-koh-nica/</guid><description>&lt;p&gt;We were happy to welcome &lt;a href="https://www.twitch.tv/serverlessmom"&gt;Nočnica Fee&lt;/a&gt; from &lt;a href="https://www.twitch.tv/new_relic"&gt;New Relic&lt;/a&gt; to k6 Office Hours. She very bravely volunteered to learn how to use k6&amp;ndash; live! Talk about pressure. But she handled it like a champ!&lt;/p&gt;
&lt;p&gt;We also talked about why observability is both particularly important and particularly difficult in serverless architecture. There will definitely be a part two at some point!&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/6oMmRiXzvFc?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>How to get started with chaos engineering (k6 Office Hours)</title><link>https://nicolevanderhoeven.com/blog/20210430-koh-pokemon/</link><pubDate>Fri, 30 Apr 2021 21:53:09 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20210430-koh-pokemon/</guid><description>&lt;p&gt;Recently, I&amp;rsquo;ve been learning more about chaos engineering. In this week&amp;rsquo;s k6 Office Hours, I shared my experience as a tester getting started with Kubernetes, chaos engineering with &lt;a href="https://github.com/simskij/xk6-chaos"&gt;xk6-chaos&lt;/a&gt; and k6, and observability with &lt;a href="https://newrelic.com"&gt;New Relic&lt;/a&gt;.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/gVwJZPo30rk?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>k6 Office Hours 05: Observability with Daniel González Lopes</title><link>https://nicolevanderhoeven.com/blog/20210312-k6-office-hours05/</link><pubDate>Fri, 12 Mar 2021 21:53:09 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20210312-k6-office-hours05/</guid><description>&lt;p&gt;Our first repeat guest, Daniel González Lopes, also from &lt;a href="https://k6.io"&gt;k6&lt;/a&gt;, joined us today to talk about how to use observability in conjunction with load testing. We talked about the differences between metrics, logs, and traces, and how to implemented distributed tracing.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ADkd18AdaEA?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>k6 Office Hours 02: Observability with New Relic</title><link>https://nicolevanderhoeven.com/blog/20210219-office-hours-02/</link><pubDate>Fri, 19 Feb 2021 23:24:58 +0100</pubDate><guid>https://nicolevanderhoeven.com/blog/20210219-office-hours-02/</guid><description>&lt;p&gt;For this week&amp;rsquo;s Office Hours, &lt;a href="https://simme.dev"&gt;Simme&lt;/a&gt; and I invited &lt;a href="https://twitter.com/gspncr"&gt;Gary Spencer&lt;/a&gt; from &lt;a href="https://newrelic.com"&gt;New Relic&lt;/a&gt; to talk to us about why he&amp;rsquo;s recently started using k6, and why an observability platform like New Relic is the perfect companion for performance testing and observability.&lt;/p&gt;
&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/TbRVFTXGUPU?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item></channel></rss>