feat: add Azure monitoring dashboard project (APIM + Container Apps) - #137
Merged
Conversation
New sample project demonstrating Azure API Management + Azure Container Apps with a .NET and a Java service instrumented for distributed tracing via Azure Monitor, plus an Azure Monitor Workbook giving RED metrics, an SLO tile, and a log-filtering panel for root-cause analysis. Verified locally: both apps build, run, and complete a real cross-service order through a shared Docker network; Terraform validates against the installed provider schema and resolves its full local dependency graph via terraform plan up to the Azure auth boundary; the Workbook JSON is well-formed. Not run through a real terraform apply — no Azure credentials in this environment, matching every other Azure project in this repo.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New project:
azure-monitoring-dashboard— a .NET and a Java sample app behind Azure API Management, running on Azure Container Apps, instrumented for distributed tracing via Azure Monitor, plus an Azure Monitor Workbook giving RED metrics (rate/errors/duration), an SLO tile, and a log-filtering panel for root-cause analysis.dotnet-orders-api(ASP.NET Core, externally exposed via APIM) callsjava-inventory-api(Spring Boot, internal-only) to reserve stock — a real cross-service, cross-language call chain to trace end to end.Azure.Monitor.OpenTelemetry.AspNetCoreSDK, Java via the auto-instrumenting Application Insights Java agent (-javaagent, zero code changes) — worth comparing.dotnet-orders-apion purpose, so the error-rate/SLO panels have real non-zero data instead of a flat 100% success line.What was verified locally (no Azure credentials in this environment)
dotnet-orders-api → java-inventory-apichain (demo_project.sh, also wired as CI at.github/workflows/verify-azure-monitoring-dashboard.yml).fmt,validate, and a fullterraform planresolve the entire local dependency graph correctly (every resource, reference, and attribute name confirmed against the actual installed provider schema viaterraform providers schema -json) —planonly stops at the expected Azure-auth boundary (azCLI not present here).What was NOT verified (documented in the project README as an explicit boundary)
terraform apply— no Azure credentials available, same as every other Azure project in this repo. Section "3-Deploy to Azure" in the project README is the real deploy walkthrough, meant to be run against a real subscription.Test plan
./demo_project.shrun end-to-end — builds both images, places a real order through the cross-service chain, validates Terraform, validates Workbook JSON. All green.terraform fmt -check -recursive/terraform validate/terraform plan(dummy vars, no real apply)README.mdproject table updated (row 22)terraform applyagainst an actual Azure subscription (left for whoever deploys this for real — see project README)https://claude.ai/code/session_01DgVRQrXf1xhAHKYsV2xVAQ