The problem with manual processes

Your team has dozens of alert rules across staging and production. Someone tweaks a threshold in production on Friday afternoon, and by Monday no one remembers what changed or why. That’s configuration drift: live resources silently diverging from their intended state. Manual resource management creates three recurring problems like this that grow worse as your team scales.

ProblemWhat happens
DriftAnyone with edit access can change a resource in the UI with no review, so the live version diverges from what you intended
DuplicationTeams recreate similar resources instead of sharing one source; fixes don’t propagate
No audit trailYou can’t answer “who changed what, when, and why” at scale

How as code solves this

By using Grafana as code, you’ll gain:

  • Version control. Every change is a Git commit with context.
  • Code review. Pull requests catch mistakes before they reach production.
  • Automation. CI/CD ensures what’s in the repo is what’s deployed.
  • Reproducibility. Spin up identical resources in any environment from the same code.

Script

Your team has dozens of alert rules across staging and production. Someone tweaks a threshold in prod on Friday afternoon. By Monday, no one remembers what changed or why. That’s configuration drift: live resources silently diverging from their intended state.

Manual resource management has three core problems. First, drift. Anyone with edit access can change anything, and there’s no review process. Second, duplication. Teams recreate similar alert rules instead of sharing a single source of truth, so fixes don’t propagate. Third, no audit trail. You can’t answer “who changed what, when, and why” without digging through Grafana’s history one resource at a time.

Managing resources as code solves all three. Every change lives in a Git commit with a message explaining why. Pull requests give your team a review gate. And automation ensures the code is the single source of truth: what’s in the repo is what’s deployed.