All posts

#Observability

7 posts

SREObservabilityPrometheusGrafana

Unbounded Cardinality, Zero Alerts, and 14-Second Dashboard Loads: The Structural Limits of the Grafana Azure Monitor Plugin

The Grafana Azure Monitor datasource plugin connects directly to Azure Monitor at query time. On a 12-panel dashboard, that means 12 sequential ARM API calls on every open — 14 seconds before the first chart renders. It cannot feed Mimir alerting rules. It cannot attach environment labels without custom queries per panel. And promoting Azure tags as Prometheus labels explodes cardinality to thousands of series per resource group. This post documents the five structural gaps and the specific design decisions in a push-based exporter that close each one.

Read
SREObservabilityGrafanaAlloy

How Alloy's Default max_shards Turned a Mimir Blip Into a Production Monitoring Blackout

When Grafana Mimir slowed down, Alloy's default retry configuration — 200 parallel shard workers — consumed the majority of CPU on a shared VM, starving the co-located business process and forcing an engineer to kill the observability agent during an active incident. Here's the exact three-layer fix and why shared-VM deployments require explicit resource budgets at every level.

Read
SREGrafanaAlloyPlatformEngineeringObservability

The Self-Silencing Anti-Pattern: Why Your Observability Stack Goes Blind When You Need It Most

The system effectively silences its own diagnostics during the moment of maximum operational need.

Read
GrafanaTerraformPlatform EngineeringObservability

The Terraform Module That Has No Provider: How a Pure YAML Registry Drives a Multi-Tenant Grafana Platform

We onboard products to two Grafana Cloud stacks — dashboards, alert rules, RBAC, LBAC, contact points, OnCall — by editing one YAML file. No Terraform file changes. The key architectural decision was a provider-free Terraform module that reads the registry and derives everything else. This post covers the pattern, why it works, and where it breaks.

Read
GrafanaTerraformObservabilityPlatform Engineering

The Grafana Terraform Provider Silently Drops LBAC Rules — and the Three-Layer Fix

When we codified Grafana Cloud multi-tenancy as Terraform, label-based access control rules applied cleanly in the plan and silently did nothing at runtime. The provider ignores LBAC config on Terraform-provisioned datasources. This post covers what actually works: a three-layer architecture splitting access control across provider aliases, manually-created datasource UIDs, and Alloy write-time label enforcement.

Read
SREAIOpsLLMKubernetes

Building an SRE Agent: From Playbook to Autonomous Incident Response

What happens when you put an LLM in the incident response loop? We built an SRE Agent on AKS that runs playbooks, queries Grafana, and generates post-mortems. Here's what worked, what didn't, and what we learned about trusting AI in production.

Read
ObservabilityPrometheusMimirFinOps

Why Cardinality Kills Observability Platforms (and How to Stop It)

Cardinality is the silent killer of Prometheus-based observability platforms. Here's how it happens, how to detect it early, and the label schema discipline that keeps ingestion costs sane at scale.

Read