Gap-10: Container Apps Observe (B → A) — Observability playbook + Dapr tracing - #1642
Conversation
There was a problem hiding this comment.
Pull request overview
Adds an Azure Container Apps observability reference focused on environment Log Analytics configuration, log/metric sources, and end-to-end tracing (including Dapr), plus practical ARG/KQL queries.
Changes:
- Documented environment-level Log Analytics setup and how to interpret system vs console logs.
- Summarized built-in metrics and provided Application Insights/OpenTelemetry SDK setup guidance.
- Added distributed tracing guidance (including Dapr config) and a small ARG + KQL query library.
Details# 🔍 Token Analysis Report
fatal: path 'plugin/skills/appinsights-instrumentation/references/container-apps.md' exists on disk, but not in 'origin/main' 📊 Token Change ReportComparing Summary
Changed Files
📊 Token Limit Check ReportChecked: 585 files
|
| File | Tokens | Limit | Over By |
|---|---|---|---|
.github/skills/analyze-skill-issues/SKILL.md |
2109 | 500 | +1609 |
.github/skills/analyze-test-run/SKILL.md |
2471 | 500 | +1971 |
.github/skills/file-test-bug/SKILL.md |
628 | 500 | +128 |
.github/skills/sensei/README.md |
3531 | 2000 | +1531 |
.github/skills/sensei/SKILL.md |
3026 | 500 | +2526 |
.github/skills/sensei/references/EXAMPLES.md |
3701 | 2000 | +1701 |
.github/skills/sensei/references/LOOP.md |
4181 | 2000 | +2181 |
.github/skills/sensei/references/SCORING.md |
4299 | 2000 | +2299 |
.github/skills/skill-authoring/SKILL.md |
839 | 500 | +339 |
plugin/skills/airunway-aks-setup/SKILL.md |
1025 | 500 | +525 |
plugin/skills/appinsights-instrumentation/SKILL.md |
937 | 500 | +437 |
plugin/skills/azure-ai/SKILL.md |
820 | 500 | +320 |
plugin/skills/azure-aigateway/SKILL.md |
1261 | 500 | +761 |
plugin/skills/azure-aigateway/references/policies.md |
2342 | 2000 | +342 |
plugin/skills/azure-cloud-migrate/SKILL.md |
848 | 500 | +348 |
plugin/skills/azure-cloud-migrate/references/services/container-apps/cloudrun-deployment-guide.md |
2029 | 2000 | +29 |
plugin/skills/azure-cloud-migrate/references/services/container-apps/deployment-guide.md |
2458 | 2000 | +458 |
plugin/skills/azure-cloud-migrate/references/services/container-apps/fargate-deployment-guide.md |
2587 | 2000 | +587 |
plugin/skills/azure-cloud-migrate/references/services/functions/lambda-to-functions.md |
2600 | 2000 | +600 |
plugin/skills/azure-cloud-migrate/references/services/functions/runtimes/javascript.md |
2181 | 2000 | +181 |
plugin/skills/azure-compliance/SKILL.md |
1188 | 500 | +688 |
plugin/skills/azure-compute/SKILL.md |
1090 | 500 | +590 |
plugin/skills/azure-compute/workflows/vm-recommender/vm-recommender.md |
2631 | 2000 | +631 |
plugin/skills/azure-compute/workflows/vm-troubleshooter/vm-troubleshooter.md |
2509 | 2000 | +509 |
plugin/skills/azure-cost/SKILL.md |
1980 | 500 | +1480 |
plugin/skills/azure-deploy/SKILL.md |
1645 | 500 | +1145 |
plugin/skills/azure-deploy/references/pre-deploy-checklist.md |
4692 | 2000 | +2692 |
plugin/skills/azure-deploy/references/recipes/azd/errors.md |
4004 | 2000 | +2004 |
plugin/skills/azure-deploy/references/troubleshooting.md |
2038 | 2000 | +38 |
plugin/skills/azure-diagnostics/SKILL.md |
1423 | 500 | +923 |
plugin/skills/azure-enterprise-infra-planner/SKILL.md |
1002 | 500 | +502 |
plugin/skills/azure-enterprise-infra-planner/references/constraints/compute-apps.md |
2022 | 2000 | +22 |
plugin/skills/azure-hosted-copilot-sdk/SKILL.md |
1263 | 500 | +763 |
plugin/skills/azure-kubernetes/SKILL.md |
2606 | 500 | +2106 |
plugin/skills/azure-kubernetes/azure-kubernetes-automatic-readiness/SKILL.md |
3609 | 500 | +3109 |
plugin/skills/azure-kusto/SKILL.md |
2152 | 500 | +1652 |
plugin/skills/azure-messaging/SKILL.md |
821 | 500 | +321 |
plugin/skills/azure-prepare/SKILL.md |
3359 | 500 | +2859 |
plugin/skills/azure-prepare/references/aspire.md |
4617 | 2000 | +2617 |
plugin/skills/azure-prepare/references/plan-template.md |
2617 | 2000 | +617 |
plugin/skills/azure-prepare/references/recipes/azd/aspire.md |
2275 | 2000 | +275 |
plugin/skills/azure-prepare/references/recipes/azd/terraform.md |
3555 | 2000 | +1555 |
plugin/skills/azure-prepare/references/research.md |
2274 | 2000 | +274 |
plugin/skills/azure-prepare/references/resources-limits-quotas.md |
3322 | 2000 | +1322 |
plugin/skills/azure-prepare/references/security.md |
2147 | 2000 | +147 |
plugin/skills/azure-prepare/references/services/functions/bicep.md |
3127 | 2000 | +1127 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/composition.md |
2813 | 2000 | +813 |
plugin/skills/azure-prepare/references/services/functions/terraform.md |
3404 | 2000 | +1404 |
plugin/skills/azure-prepare/references/services/sql-database/bicep.md |
2037 | 2000 | +37 |
plugin/skills/azure-quotas/SKILL.md |
2821 | 500 | +2321 |
plugin/skills/azure-quotas/references/commands.md |
2644 | 2000 | +644 |
plugin/skills/azure-resource-lookup/SKILL.md |
1394 | 500 | +894 |
plugin/skills/azure-resource-visualizer/SKILL.md |
2122 | 500 | +1622 |
plugin/skills/azure-storage/SKILL.md |
1228 | 500 | +728 |
plugin/skills/azure-upgrade/SKILL.md |
1249 | 500 | +749 |
plugin/skills/azure-upgrade/references/languages/java/INSTRUCTION.md |
2724 | 2000 | +724 |
plugin/skills/azure-upgrade/references/languages/java/package-specific/com.microsoft.azure.management.md |
2215 | 2000 | +215 |
plugin/skills/azure-upgrade/references/languages/java/templates/PLAN_TEMPLATE.md |
2411 | 2000 | +411 |
plugin/skills/azure-upgrade/references/languages/java/templates/PROGRESS_TEMPLATE.md |
2315 | 2000 | +315 |
plugin/skills/azure-upgrade/references/languages/java/templates/SUMMARY_TEMPLATE.md |
2190 | 2000 | +190 |
plugin/skills/azure-upgrade/references/services/functions/automation.md |
3463 | 2000 | +1463 |
plugin/skills/azure-upgrade/references/services/functions/consumption-to-flex.md |
2773 | 2000 | +773 |
plugin/skills/azure-validate/SKILL.md |
950 | 500 | +450 |
plugin/skills/entra-agent-id/SKILL.md |
4001 | 500 | +3501 |
plugin/skills/entra-app-registration/SKILL.md |
2070 | 500 | +1570 |
plugin/skills/entra-app-registration/references/api-permissions.md |
2545 | 2000 | +545 |
plugin/skills/entra-app-registration/references/cli-commands.md |
2211 | 2000 | +211 |
plugin/skills/entra-app-registration/references/console-app-example.md |
2752 | 2000 | +752 |
plugin/skills/entra-app-registration/references/oauth-flows.md |
2375 | 2000 | +375 |
plugin/skills/microsoft-foundry/SKILL.md |
3840 | 500 | +3340 |
plugin/skills/microsoft-foundry/foundry-agent/create/create.md |
4315 | 2000 | +2315 |
plugin/skills/microsoft-foundry/foundry-agent/create/references/toolbox.md |
2851 | 2000 | +851 |
plugin/skills/microsoft-foundry/foundry-agent/deploy/deploy.md |
6133 | 2000 | +4133 |
plugin/skills/microsoft-foundry/foundry-agent/eval-datasets/eval-datasets.md |
2494 | 2000 | +494 |
plugin/skills/microsoft-foundry/foundry-agent/eval-datasets/references/generate-seed-dataset.md |
2088 | 2000 | +88 |
plugin/skills/microsoft-foundry/foundry-agent/eval-datasets/references/trace-to-dataset.md |
4325 | 2000 | +2325 |
plugin/skills/microsoft-foundry/foundry-agent/invoke/invoke.md |
2084 | 2000 | +84 |
plugin/skills/microsoft-foundry/foundry-agent/observe/observe.md |
2941 | 2000 | +941 |
plugin/skills/microsoft-foundry/foundry-agent/observe/references/continuous-eval.md |
3860 | 2000 | +1860 |
plugin/skills/microsoft-foundry/foundry-agent/trace/references/kql-templates.md |
2701 | 2000 | +701 |
plugin/skills/microsoft-foundry/models/deploy-model/SKILL.md |
1640 | 500 | +1140 |
plugin/skills/microsoft-foundry/models/deploy-model/capacity/SKILL.md |
1739 | 500 | +1239 |
plugin/skills/microsoft-foundry/models/deploy-model/customize/SKILL.md |
2235 | 500 | +1735 |
plugin/skills/microsoft-foundry/models/deploy-model/customize/references/customize-workflow.md |
3335 | 2000 | +1335 |
plugin/skills/microsoft-foundry/models/deploy-model/preset/SKILL.md |
1226 | 500 | +726 |
plugin/skills/microsoft-foundry/models/deploy-model/preset/references/preset-workflow.md |
5534 | 2000 | +3534 |
plugin/skills/microsoft-foundry/quota/quota.md |
2288 | 2000 | +288 |
plugin/skills/microsoft-foundry/quota/references/capacity-planning.md |
2080 | 2000 | +80 |
plugin/skills/microsoft-foundry/references/agent-metadata-contract.md |
2373 | 2000 | +373 |
plugin/skills/microsoft-foundry/references/sdk/foundry-sdk-py.md |
2162 | 2000 | +162 |
Consider moving content to
references/subdirectories.
Automated token analysis. See skill authoring guidelines for best practices.
- Fix: LA workspace not required (was 'requires', now 'by default') - Fix: add missing --logs-workspace-key CLI param - Fix: metric dimensions now include replica (was missing on 5/6 metrics) - Fix: rename Java 'Auto-agent JAR' to 'Agent JAR (manual)' (ACA has no auto-instrumentation) - Fix: Dapr endpoint placeholder clarified as OTel Collector, not App Insights - Fix: ARG query checks all containers, not just containers[0] - Fix: remove undocumented ReplicaCount_d column - Fix: rename misleading 'Request latency' section to 'Console log volume' - Add: actual request latency KQL using App Insights requests table All fixes validated against official Microsoft ACA documentation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… reference - Bump metadata.version 1.0.2 → 1.0.3 (required by Skill Structure check) - Link references/container-apps.md from SKILL.md (required by Markdown References check) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Dapr: clarify tracing spans are conditional on config, not automatic - ARG query: use mv-expand kind=outer to include apps with no env vars - Update trigger test snapshot for new 'observability' keyword Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Snapshot header link goo.gl/fbAQLP → jestjs.io/docs/snapshot-testing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Jon Gallant (jongio)
left a comment
There was a problem hiding this comment.
The guide covers environment setup, metrics, SDK integration, tracing, and KQL queries well. Previous feedback on table formatting, ARG queries, and Dapr wording was addressed. Four items below.
- Clarify --logs-workspace-id expects Customer ID (GUID), not ARM resource ID - Add note about Azure Monitor destination table names (no _CL suffix) - Rename 'Request latency by revision' to 'by app instance' (matches query grouping) - Add az containerapp env dapr-component set command for ACA-native Dapr config Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Hey Paul! Great work on the observability guide — the KQL library and Dapr tracing sections are really solid. I went through it from the ACA side and found a few small things worth tightening up (workspace ID clarification, table name schema note for Azure Monitor vs Log Analytics, a query title mismatch, and the Dapr deployment command). Nothing major — just precision stuff. I put the fixes in #2024 which targets your branch directly, so you can just merge it in when you get a chance. Tested across 5 models and everything looks good. Thanks! |
container-apps.md: - Clarify --logs-workspace-id expects Customer ID (GUID), not ARM ID - Add Azure Monitor vs Log Analytics table name note (_CL suffix) - Use secrets pattern for App Insights connection string (secretref) - Clarify Dapr config is applied via CLI/Bicep, not raw YAML - Fix query title 'by revision' to 'by instance' (cloud_RoleInstance) Incorporates Simon's 4 fixes from PR #2024 (closed due to fork divergence) plus additional copilot-reviewer and JonG items. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…r-Azure into pass-equity-gap-10
🧪 E2E Skill Validation — Container Apps Observability (PR #1642)Tested the observability skill docs end-to-end against a live Container App with App Insights in Results
Key Validations
🐛 Bug Found: ARG Query Uses Unsupported KQL SyntaxThe ARG query in the skill uses
Fix: Remove Command output logsResource Group: Log Analytics Workspace: Container Apps Environment: App Insights: Container App: Console Log KQL Output (sample): System Log KQL Output (sample): EventSource_s: KEDA Built-in Metrics Available: ARG Error: Cleanup: |
ARG KQL dialect doesn't support kind=outer (only Log Analytics does). Use mv-expand + isnotempty filter instead. Found via E2E testing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Jon Gallant (jongio)
left a comment
There was a problem hiding this comment.
Addresses all my prior feedback cleanly - secrets pattern, Dapr YAML clarification, table name note, and title rename all look good. E2E validation results confirm correctness across the board.
One small suggestion on the ARG query below, otherwise this is solid.
Addresses jongio's non-blocking suggestion: clarify that the ARG query drops Container Apps with no env vars, so users know the audit isn't exhaustive. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2a0e2f2
|
📌 Follow-up enhancement filed: #2149 After this PR ships, we plan to refactor Container Apps templates to use a dynamic MCP tool pattern (analogous to Manvir Kaur (@manvkaur)'s Functions work in #1949), which would replace ~2,033 lines of hardcoded templates with runtime fetches from Azure-Samples + 3-tier fallback. This is intentionally not blocking this PR — we want to ship the proven, hand-curated templates now and layer the optimization after. |
Jon Gallant (jongio)
left a comment
There was a problem hiding this comment.
All prior feedback addressed - workspace ID clarification, secrets pattern for connection strings, Log Analytics vs Azure Monitor table naming, Dapr config deployment note, query title corrections, and ARG query limitation docs. E2E validated. Content is solid and actionable. Approving.
Closes #1618 | Parent: #1608
1 file: container-apps.md — Environment Log Analytics setup, system vs app logs, built-in metrics, distributed tracing, Dapr observability, ARG queries, KQL.