{"id":47594880,"url":"https://github.com/ericchansen/azure-sre-agent-demo","last_synced_at":"2026-04-01T17:59:32.109Z","repository":{"id":345604897,"uuid":"1179185454","full_name":"ericchansen/azure-sre-agent-demo","owner":"ericchansen","description":"Azure SRE Agent demos, experiments, and bug reports","archived":false,"fork":false,"pushed_at":"2026-03-30T21:53:53.000Z","size":347,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-30T23:46:56.999Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Bicep","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericchansen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-11T19:20:36.000Z","updated_at":"2026-03-26T03:19:01.000Z","dependencies_parsed_at":"2026-03-20T12:08:25.650Z","dependency_job_id":null,"html_url":"https://github.com/ericchansen/azure-sre-agent-demo","commit_stats":null,"previous_names":["ericchansen/azure-sre-agent-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ericchansen/azure-sre-agent-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fazure-sre-agent-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fazure-sre-agent-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fazure-sre-agent-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fazure-sre-agent-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericchansen","download_url":"https://codeload.github.com/ericchansen/azure-sre-agent-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericchansen%2Fazure-sre-agent-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290739,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-01T17:59:31.477Z","updated_at":"2026-04-01T17:59:32.099Z","avatar_url":"https://github.com/ericchansen.png","language":"Bicep","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Azure SRE Agent Demo\n\nAn end-to-end, live-demo environment showing [Azure SRE Agent](https://sre.azure.com/docs/overview) detecting and remediating a real application failure — automatically. Built for conference talks, internal show-and-tells, and hands-on workshops.\n\n\u003e 🌐 **[View the full documentation site →](https://ericchansen.github.io/azure-sre-agent-demo/)**\n\n\u003e **What is Azure SRE Agent?** An AI-powered site reliability agent that continuously monitors your Azure resources. When something breaks it [investigates telemetry](https://sre.azure.com/docs/capabilities/root-cause-analysis), [correlates it with source code](https://sre.azure.com/docs/concepts/workspace-tools), and [remediates](https://sre.azure.com/docs/capabilities/incident-response) — all without a human opening five tabs at 3 AM.\n\u003e\n\u003e 📖 **Official docs:** [sre.azure.com/docs](https://sre.azure.com/docs/)\n\n---\n\n## The story\n\nA live e-commerce storefront — **[Cacao \u0026 Co.](https://github.com/ericchansen/webstore)** — runs on Azure Container Apps, fully instrumented with OpenTelemetry. An Azure SRE Agent monitors the environment. During the demo:\n\n| Step | What happens | Who does it |\n|------|-------------|-------------|\n| **1. Healthy baseline** | Visitors browse products, add to cart, and complete checkout. Telemetry flows to Application Insights. | The app |\n| **2. Break checkout** | A \"bad deployment\" sets `DEMO_BROKEN_CHECKOUT=true`. The checkout API starts returning **503** with a 1.5 s delay while the rest of the site stays up. | You (one-click workflow) |\n| **3. Detection** | SRE Agent sees the spike in 503 errors and failed dependency calls in Application Insights. | Azure SRE Agent |\n| **4. Investigation** | The agent correlates logs, metrics, and traces. It maps the failure back to the source code via the [connected GitHub repo](https://sre.azure.com/docs/concepts/workspace-tools). | Azure SRE Agent |\n| **5. Remediation** | Depending on [run mode](https://sre.azure.com/docs/concepts/run-modes), the agent either **recommends** or **executes** a fix (rollback the env var). | Azure SRE Agent |\n| **6. Recovery** | Checkout returns to 201. Telemetry confirms the fix. | The app |\n\nThe failure and recovery are fully repeatable — run it as many times as you need.\n\n---\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────────┐\n│  Azure SRE Agent  (eastus2)                                     │\n│  rg-webstore-sre-agent                                          │\n│                                                                 │\n│  ┌───────────────────────┐    ┌─────────────────────────────┐   │\n│  │  SRE Agent            │    │  Application Insights       │   │\n│  │  (Microsoft.App/      │    │  + Log Analytics Workspace  │   │\n│  │   agents)             │    │                             │   │\n│  └───────────┬───────────┘    └─────────────────────────────┘   │\n│              │  monitors \u0026 investigates                          │\n└──────────────┼──────────────────────────────────────────────────┘\n               │\n               ▼\n┌─────────────────────────────────────────────────────────────────┐\n│  Webstore Application  (centralus)                              │\n│  rg-webstore-staging                                            │\n│                                                                 │\n│  ┌───────────────┐  ┌────────────┐  ┌────────┐  ┌───────────┐  │\n│  │ Container App │  │ PostgreSQL │  │  ACR   │  │ Key Vault │  │\n│  │ (Next.js)     │  │ Flexible   │  │        │  │           │  │\n│  └───────────────┘  └────────────┘  └────────┘  └───────────┘  │\n│         │                                                       │\n│  ┌──────┴────────────────────────────────────────────────────┐  │\n│  │  OpenTelemetry  ──▶  Application Insights (telemetry)     │  │\n│  └───────────────────────────────────────────────────────────┘  │\n└─────────────────────────────────────────────────────────────────┘\n```\n\n**Key telemetry flow:** The webstore sends requests, dependencies, and exceptions to Application Insights via the [Azure Monitor OpenTelemetry SDK](https://learn.microsoft.com/azure/azure-monitor/app/opentelemetry-enable). The SRE Agent queries that same App Insights instance to detect anomalies.\n\n---\n\n## Repositories\n\n| Repo | What it contains |\n|------|-----------------|\n| **[azure-sre-agent-demo](https://github.com/ericchansen/azure-sre-agent-demo)** (this repo) | SRE Agent Bicep templates, demo workflows, documentation |\n| **[webstore](https://github.com/ericchansen/webstore)** | Next.js e-commerce app with built-in failure mode, OpenTelemetry instrumentation, Docker + Azure Container Apps deployment |\n\n---\n\n## Quick start\n\n### Prerequisites\n\n- Azure subscription with `Contributor` role ([+ `User Access Administrator` for RBAC](https://sre.azure.com/docs/get-started/create-and-setup#prerequisites))\n- [Azure CLI](https://learn.microsoft.com/cli/azure/install-azure-cli) v2.60+\n- [GitHub CLI](https://cli.github.com/) (for workflow dispatch)\n- The [webstore](https://github.com/ericchansen/webstore) deployed to Azure Container Apps (see the webstore README)\n\n### 1. Deploy the SRE Agent\n\nFollow the step-by-step guide in [`infra/sre-agent/README.md`](infra/sre-agent/README.md), or use the [portal wizard](https://sre.azure.com/docs/get-started/create-and-setup) at [sre.azure.com](https://sre.azure.com).\n\n### 2. Connect data sources\n\nIn the SRE Agent setup, connect:\n- **Code** → the [webstore](https://github.com/ericchansen/webstore) GitHub repo ([docs](https://sre.azure.com/docs/get-started/create-and-setup#connect-your-code-repository))\n- **Azure resources** → the `rg-webstore-staging` resource group ([docs](https://sre.azure.com/docs/get-started/create-and-setup#add-azure-resource-access))\n\n### 3. Configure repo secrets \u0026 variables\n\nThis repo's GitHub Actions workflows need OIDC credentials for Azure:\n\n**Secrets** (per environment):\n| Secret | Value |\n|--------|-------|\n| `AZURE_CLIENT_ID` | App registration client ID (federated credential) |\n| `AZURE_TENANT_ID` | Entra ID tenant ID |\n| `AZURE_SUBSCRIPTION_ID` | Subscription containing the Container App |\n\n**Variables** (per environment):\n| Variable | Example |\n|----------|---------|\n| `CONTAINER_APP_NAME` | `ca-webstore-staging` |\n| `RESOURCE_GROUP` | `rg-webstore-staging` |\n\n### 4. Run the demo\n\nSee the [**Demo script**](https://ericchansen.github.io/azure-sre-agent-demo/docs/demo-script) for a step-by-step walkthrough — what to click, what to show, and what to say.\n\n---\n\n## Demo workflows\n\nTwo GitHub Actions workflows automate the break / fix cycle:\n\n### 🔴 [Demo: Break Checkout](.github/workflows/demo-break.yml)\n\n1. Generates 30 baseline requests (healthy signal for contrast)\n2. Sets `DEMO_BROKEN_CHECKOUT=true` on the Container App\n3. Polls until checkout returns **503**\n\n```bash\ngh workflow run \"Demo: Break Checkout\" -f environment=staging\n```\n\n### 🟢 [Demo: Reset Checkout](.github/workflows/demo-reset.yml)\n\n1. Sets `DEMO_BROKEN_CHECKOUT=false`\n2. Polls until checkout returns **201**\n\n```bash\ngh workflow run \"Demo: Reset Checkout\" -f environment=staging\n```\n\n---\n\n## Repository structure\n\n```\n├── README.md                          ← you are here\n├── docs-site/                         ← Docusaurus documentation site\n│   ├── docs/                          ← markdown content (overview, demo script, etc.)\n│   └── src/                           ← landing page, custom CSS\n├── .github/\n│   └── workflows/\n│       ├── demo-break.yml             ← break checkout (workflow dispatch)\n│       ├── demo-reset.yml             ← reset checkout (workflow dispatch)\n│       └── deploy-docs.yml            ← auto-deploy docs to GitHub Pages\n└── infra/\n    └── sre-agent/\n        ├── README.md                  ← Bicep deployment guide\n        └── bicep/\n            ├── minimal-sre-agent.bicep\n            ├── sre-agent-resources.bicep\n            ├── role-assignments-minimal.bicep\n            ├── role-assignments-target.bicep\n            └── webstore-sre-agent.parameters.json\n```\n\n---\n\n## How Azure SRE Agent works (for presenters)\n\nIf you're presenting this demo and need to explain the product, here are the key concepts:\n\n### Incident response flow\n\n\u003e Alert fires → Agent acknowledges → Gathers context (logs, metrics, traces, deploys) → Forms hypotheses → Validates each one → Resolves or escalates\n\nThe agent doesn't run a script — it **reasons** about your specific situation. Each investigation builds [persistent memory](https://sre.azure.com/docs/concepts/memory) that makes future investigations faster.\n\n### Run modes\n\n| Mode | Behavior | Best for |\n|------|----------|----------|\n| **Review** | Agent proposes an action, you approve/deny | Production, critical infra |\n| **Autonomous** | Agent executes immediately, reports what it did | Non-prod, trusted recurring tasks |\n\nStart with Review. Switch to Autonomous once you trust the patterns. ([docs](https://sre.azure.com/docs/concepts/run-modes))\n\n### Connectors\n\nThe agent has **built-in access** to Azure Monitor, App Insights, Log Analytics, and Resource Graph. You can extend it with [connectors](https://sre.azure.com/docs/concepts/connectors) for GitHub, Teams, Outlook, Kusto, PagerDuty, ServiceNow, and any custom API via [MCP](https://sre.azure.com/docs/concepts/skills).\n\n### What makes it different\n\n| vs. Runbooks | vs. Dashboards | vs. Scripts |\n|-------------|---------------|-------------|\n| Runbooks go stale. The agent learns from every investigation and builds [persistent memory](https://sre.azure.com/docs/concepts/memory). | Dashboards surface data for *you* to interpret. The agent interprets, hypothesizes, and acts. | Scripts run the same steps regardless. The agent adapts to the specific situation. |\n\n---\n\n## Learn more\n\n| Topic | Link |\n|-------|------|\n| **Azure SRE Agent overview** | [sre.azure.com/docs/overview](https://sre.azure.com/docs/overview) |\n| **Create your first agent** | [sre.azure.com/docs/get-started/create-and-setup](https://sre.azure.com/docs/get-started/create-and-setup) |\n| **Incident response** | [sre.azure.com/docs/capabilities/incident-response](https://sre.azure.com/docs/capabilities/incident-response) |\n| **Root cause analysis** | [sre.azure.com/docs/capabilities/root-cause-analysis](https://sre.azure.com/docs/capabilities/root-cause-analysis) |\n| **Run modes (Review vs Autonomous)** | [sre.azure.com/docs/concepts/run-modes](https://sre.azure.com/docs/concepts/run-modes) |\n| **Connectors** | [sre.azure.com/docs/concepts/connectors](https://sre.azure.com/docs/concepts/connectors) |\n| **Memory \u0026 knowledge** | [sre.azure.com/docs/concepts/memory](https://sre.azure.com/docs/concepts/memory) |\n| **Deep context (code understanding)** | [sre.azure.com/docs/concepts/workspace-tools](https://sre.azure.com/docs/concepts/workspace-tools) |\n| **Official Bicep samples** | [github.com/microsoft/sre-agent](https://github.com/microsoft/sre-agent) |\n\n---\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericchansen%2Fazure-sre-agent-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericchansen%2Fazure-sre-agent-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericchansen%2Fazure-sre-agent-demo/lists"}