grafana-azure
Skill37 starsChanged 4 months agoMITView on GitHub
Deploy Grafana OSS to Azure Container Apps. Use when deploying Grafana for metrics, logs, and traces visualization with optional PostgreSQL backend.
1 other project uses a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- microsoft/agentic-journeysedited, first seen Sep 30, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 1
- microsoft/agentic-journeys★ 564% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- container-apps-deploymentSkill
- data-access-abstractionSkill
- journey-runnerSkill
- journey-templateSkill
- journey-test-harnessSkill
- n8n-azureSkill
- superset-azureSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 109
Run the checked-in verifier from the repository root:
- Distinctive: line 126
Add Azure Files for persistent storage
- Distinctive: line 139
Use these Azure MCP Server tools for Grafana deployments:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Grafana Azure Deployment Skill
Deploy Grafana OSS to Azure Container Apps using Bicep and Azure Developer CLI (azd).
Reproducibility Verified: This deployment has been tested multiple times from scratch. Deploy time: ~2 minutes.
Overview
Grafana is an open-source observability platform for metrics, logs, and traces visualization. This skill deploys Grafana OSS (not Azure Managed Grafana) to Azure Container Apps.
Prerequisites and Portability
Require Azure CLI, Azure Developer CLI 1.28.0 or later, and Node.js LTS or later for portable verification. Don't require OpenSSL, Bash command substitution, or host-specific shell scripts. See ../../../docs/tool-installation.md.
Critical: Infrastructure Generation
This skill provides Grafana-specific configuration only. Infrastructure (Bicep, azure.yaml) should be generated fresh each time by the official azure-prepare → azure-validate → azure-deploy pipeline. Do NOT rely on pre-existing infra code.
Critical: Subscription Context
ALWAYS set AZURE_SUBSCRIPTION_ID explicitly before running azd up. Read it with az account show --query id -o tsv, then pass the returned value to azd env set AZURE_SUBSCRIPTION_ID <subscription-id>.
Without this, azd and Azure MCP tools will fail silently or produce incomplete deployments. The azure_deploy_app_logs tool also requires subscription context.
Critical: Bicep Output Naming
Bicep outputs MUST use SCREAMING_SNAKE_CASE (e.g., GRAFANA_URL, GRAFANA_FQDN) for azd to map them into environment values. Without this, azd env get-value returns "key not found".
Architecture
graph TB
subgraph RG["Azure Resource Group"]
LA["Log Analytics Workspace"]
subgraph CAE["Container Apps Environment"]
GF["Grafana Container App<br/>Port 3000 · SQLite (default)<br/>Scale 0-3 replicas"]
end
end
LA -->|logs & metrics| CAEQuick Start (Verified)
# 1. Register providers (one-time per subscription)
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
# 2. Create environment
azd env new my-grafana-env
# 3. Set required variables (replace placeholders)
azd env set AZURE_SUBSCRIPTION_ID "<subscription-id>"
azd env set AZURE_LOCATION "westus"
azd env set GRAFANA_ADMIN_PASSWORD "<securely-generated-secret>"
# 4. Deploy (~2 minutes)
azd up
# 5. Access Grafana
azd env get-value GRAFANA_URL
# Login: admin / <your GRAFANA_ADMIN_PASSWORD>Deployment time breakdown:
- Resource Group: ~4s
- Log Analytics: ~25s
- Container Apps Environment: ~38s
- Grafana Container App: ~10s
- Total: ~2 minutes
Environment Variables
Grafana is configured via environment variables in the Container App:
| Variable | Description | Value |
GF_SECURITY_ADMIN_USER | Admin username | From parameter |
GF_SECURITY_ADMIN_PASSWORD | Admin password | From secret |
GF_SERVER_HTTP_PORT | HTTP port | 3000 |
GF_SERVER_ROOT_URL | Public URL | Auto-configured |
GF_AUTH_ANONYMOUS_ENABLED | Anonymous access | false |
See config/environment-variables.md for full list.
Health Probes
| Type | Path | Port | Interval |
| Liveness | /api/health | 3000 | 30s |
| Readiness | /api/health | 3000 | 10s |
| Startup | /api/health | 3000 | 10s (30 failures allowed) |
Outputs
After deployment:
- GRAFANA_URL: Public HTTPS URL
- GRAFANA_FQDN: Container App FQDN
- GRAFANA_ADMIN_USER: Admin username
Verification
Run the checked-in verifier from the repository root:
node .github/scripts/verify-grafana.mjsThe verifier reads GRAFANA_URL through azd, requires HTTP 200 from /api/health, asserts database: "ok", and prints the deployment URL. Verify authenticated browser login separately with the deployed admin credentials. Retrieve a generated password only in a private terminal, and never print or paste it into the agent session or shared logs.
Scaling
- Min replicas: 0 (scale to zero when idle)
- Max replicas: 3
- Scaling rule: HTTP concurrent requests (10 per replica)
Storage Considerations
By default, Grafana uses SQLite which stores data in the container. For production:
- Add Azure Files for persistent storage
- Or use PostgreSQL/MySQL backend
Tear Down
azd down --force --purgeNote: Teardown takes 3-5 minutes (Container Apps environment deletion is slow).
Azure MCP Tools
Use these Azure MCP Server tools for Grafana deployments:
| Tool | When to Use |
azure_bicep_schema | Get latest schemas for Microsoft.App/containerApps and Microsoft.App/managedEnvironments |
azure_deploy_architecture | Generate Mermaid architecture diagrams for the Grafana deployment |
azure_deploy_plan | Validate the deployment plan before azd up — use target=ContainerApp |
azure_deploy_app_logs | Fetch container logs from Log Analytics when troubleshooting startup or 502 issues |
Troubleshooting
See troubleshooting.md for common issues and lessons learned.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

