cloudparts

GrizzlyArchived

Grafana Labs’ deprecated grr command line tool for keeping Grafana dashboards, alert rules and data sources as YAML, JSON or Jsonnet files and pushing them to Grafana.

Type
Open source
Made by
Grafana Labs
License
Apache 2.0
Status
Archived since 1 July 2025
Facts checked
23 October 2026

What it is

Grizzly describes observability resources as files in a Kubernetes-like format: an apiVersion, a kind (Dashboard, DashboardFolder, Datasource, AlertRuleGroup, contact points and notification policies, library elements, Prometheus rule groups or Grafana Cloud synthetic monitoring checks), metadata with a name and folder, and a spec holding the resource itself. You write these by hand in YAML or JSON, or generate them with Jsonnet, often with libraries such as Grafonnet. grr diff compares the files with what is live, grr apply uploads them through Grafana’s HTTP API, grr pull downloads existing resources (useful for copying dashboards between instances), and grr watch re-applies on every save. Contexts hold each instance’s URL and service account token.

Its last notable feature, grr serve, ran a local proxy in front of a real Grafana: dashboards were read from disk and rendered with Grafana’s UI and data sources without being published, and saving in the browser wrote the change back to the file. With -w it reloaded on file changes, including dashboards generated by Jsonnet or by TypeScript, Go or Python code. Grafana Labs deprecated Grizzly in May 2025 and has since archived it; its last release is 0.7.1 (January 2025), and Homebrew plans to disable the formula in February 2027.

Why teams pick it

  • Dashboards, alert rules and data sources kept in git and applied from CI, so a deploy updates monitoring along with the code
  • First-class Jsonnet: generate many similar dashboards and rules from shared libraries such as the monitoring mixins
  • grr serve let you edit and review file-based dashboards in a real Grafana without publishing them
  • No state file: it diffs local files against the live instance directly

Watch out for

  • Archived and unsupported: no fixes, including security fixes, and its documentation site is offline
  • Built on older Grafana APIs that were not designed for tooling, which forced workarounds and is why Grafana Labs replaced it
  • Covers fewer resources than the Grafana Terraform provider, which also manages Grafana Cloud resources such as collectors and access
  • Pulled data sources come back without their secure passwords, which have to be filled in by hand

Alternatives, recommended first

What all infrastructure as code have in common →Compare side by side →
TerraformCommercialThe most widely used infrastructure-as-code tool: declare resources in HCL, review a plan, and apply it through provider plugins.CrossplaneOpen sourceTurns a Kubernetes cluster into a control plane for infrastructure: you declare a bucket or a database as a Kubernetes object, and controllers create it and keep putting it back if it drifts.+1 UpjetAWS Cloud Development Kit (CDK)AWSDefine AWS infrastructure in TypeScript, Python, Java, C# or Go; the CDK turns it into CloudFormation templates and CloudFormation deploys them.AWS CloudFormationAWSAWS’s own infrastructure-as-code service: describe resources in a JSON or YAML template and CloudFormation creates them as one stack, in order, and rolls back on failure.+1 AWS Serverless Application Model (SAM)EncoreOpen sourceA backend framework for TypeScript and Go in which services declare the databases, topics, buckets and cron jobs they need as typed objects in code; Encore reads those declarations and runs them locally or provisions them in your AWS or GCP account.HashiCorp PackerCommercialBuilds machine images (AMIs, Azure and Google images, VMware, Docker) from one HCL template, so every server starts already configured.HCP WaypointCommercialHashiCorp’s hosted internal developer platform: developers create apps and add databases from templates that run Terraform modules in HCP Terraform.NitricOpen sourceA multi-language framework in which code asks for APIs, buckets, queues, topics and databases through an SDK; at deploy time Nitric collects those requests and a provider plugin turns them into AWS, Google Cloud or Azure resources, through Pulumi or generated Terraform.OpenTofuOpen sourceThe open-source fork of Terraform, created after HashiCorp’s 2023 licence change: same HCL, same providers, tofu instead of terraform.PulumiOpen sourceInfrastructure as code in TypeScript, Python, Go, C#, Java, YAML or HCL: a program declares resources, and Pulumi’s engine diffs them against saved state and calls the cloud APIs through providers.Serverless FrameworkCommercialA CLI that turns one serverless.yml file of functions and the events that trigger them into a CloudFormation stack, and deploys it with your code to AWS Lambda.SpaceliftCommercialA hosted or self-hosted platform that runs Terraform, OpenTofu, Pulumi, CloudFormation, Kubernetes and Ansible changes from Git, with plans on pull requests, approvals and guardrails written as OPA policies, and workers you can run in your own network.SSTOpen sourceA TypeScript framework that defines a whole app, from Next.js front end to functions, containers and databases, in one config file and deploys it to your own AWS or Cloudflare account.WingPreviewOpen sourceA programming language for the cloud that puts infrastructure and the code that runs on it in one program: the compiler turns it into Terraform for AWS, Azure or Google Cloud plus JavaScript for the functions, and can also run it all in a local simulator.

How it fits with other technologies

dashboard.yaml, then `grr diff` and `grr apply` · yaml

apiVersion: grizzly.grafana.com/v1alpha1
kind: Dashboard
metadata:
  name: prod-overview
  folder: general
spec:
  schemaVersion: 17
  tags:
    - templated
  timezone: browser
  title: Production Overview
  uid: prod-overview

# $ grr config create-context instance
# $ grr config set grafana.url http://localhost:3000
# $ grr config set grafana.token <service-account-token>
# $ grr diff dashboard.yaml
# $ grr apply dashboard.yaml    -> Dashboard/prod-overview added

See it in a real stack

No architecture uses Grizzly yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2020–2026

Malcolm Holmes, an engineer at Grafana Labs, made the first commit in March 2020. The early README called Grizzly “a utility for managing Jsonnet dashboards” through the Grafana REST API, built to work with monitoring mixins, packages of Jsonnet dashboards and alerts. Its status was “Alpha. This is a proof of concept.”

Over the next four years it grew from dashboards to folders, data sources, Prometheus and Grafana alert rules, contact points and Grafana Cloud synthetic monitoring checks, moved from Jsonnet-only conventions to Kubernetes-style resource files, and in 2024 added grr serve for editing file-based dashboards inside a live Grafana.

In May 2025 Grafana Labs announced that Grizzly would be phased out in favour of grafanactl. Its first CLI had been built on APIs that were not very tooling-friendly, and the newer Grafana APIs treat every resource the same way, so a fresh tool was simpler than a Grizzly 2.0. grafanactl dropped built-in Jsonnet, leaving that to jsonnet itself, and has in turn been replaced by gcx.

Why it’s built this way

Jsonnet as the main way to write resources
Dashboards are large JSON documents with much repetition. Jsonnet functions and libraries, as used in the monitoring mixins, generate them from a few lines.
Kubernetes-style resource envelopes
An apiVersion, kind, metadata and spec let one tool handle dashboards, alert rules and synthetic checks in the same files, independent of the language that produced them.
Talk to the live API, keep no state
Diffing files against the running Grafana avoids a separate state file, at the cost of having to work around APIs that were not designed for tooling.

Timeline

  1. 2020

    First commit by Malcolm Holmes; 0.0.1 in July

  2. 2021

    0.1.0 released; Kubernetes-style resource files documented

  3. 2024

    grr serve for reviewing file-based dashboards in Grafana

  4. 2025

    Last release 0.7.1 (January); deprecated in favour of grafanactl (May)

  5. 2026

    Repository moved to grafana-cold-storage and archived

Sources8 · facts checked 23 October 2026

Improve this page on GitHub