Gap-10: Container Apps Observe (B → A) — Observability playbook + Dapr tracing#1642
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.
plugin/skills/appinsights-instrumentation/references/container-apps.md
Outdated
Show resolved
Hide resolved
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: 544 files
|
| File | Tokens | Limit | Over By |
|---|---|---|---|
.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 |
4200 | 2000 | +2200 |
.github/skills/skill-authoring/SKILL.md |
839 | 500 | +339 |
plugin/skills/appinsights-instrumentation/SKILL.md |
934 | 500 | +434 |
plugin/skills/azure-ai/SKILL.md |
817 | 500 | +317 |
plugin/skills/azure-aigateway/SKILL.md |
1258 | 500 | +758 |
plugin/skills/azure-aigateway/references/policies.md |
2342 | 2000 | +342 |
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 |
1185 | 500 | +685 |
plugin/skills/azure-compute/SKILL.md |
755 | 500 | +255 |
plugin/skills/azure-compute/workflows/vm-recommender/vm-recommender.md |
2393 | 2000 | +393 |
plugin/skills/azure-cost/SKILL.md |
1861 | 500 | +1361 |
plugin/skills/azure-deploy/SKILL.md |
1643 | 500 | +1143 |
plugin/skills/azure-deploy/references/pre-deploy-checklist.md |
2204 | 2000 | +204 |
plugin/skills/azure-deploy/references/recipes/azd/ef-migrations.md |
2006 | 2000 | +6 |
plugin/skills/azure-deploy/references/recipes/azd/errors.md |
3429 | 2000 | +1429 |
plugin/skills/azure-deploy/references/troubleshooting.md |
2038 | 2000 | +38 |
plugin/skills/azure-diagnostics/SKILL.md |
1132 | 500 | +632 |
plugin/skills/azure-diagnostics/aks-troubleshooting/networking.md |
2147 | 2000 | +147 |
plugin/skills/azure-diagnostics/aks-troubleshooting/node-issues.md |
2003 | 2000 | +3 |
plugin/skills/azure-enterprise-infra-planner/SKILL.md |
991 | 500 | +491 |
plugin/skills/azure-enterprise-infra-planner/references/constraints/compute-apps.md |
2022 | 2000 | +22 |
plugin/skills/azure-hosted-copilot-sdk/SKILL.md |
966 | 500 | +466 |
plugin/skills/azure-kubernetes/SKILL.md |
2266 | 500 | +1766 |
plugin/skills/azure-kusto/SKILL.md |
2149 | 500 | +1649 |
plugin/skills/azure-messaging/SKILL.md |
967 | 500 | +467 |
plugin/skills/azure-prepare/SKILL.md |
2767 | 500 | +2267 |
plugin/skills/azure-prepare/references/aspire.md |
4003 | 2000 | +2003 |
plugin/skills/azure-prepare/references/plan-template.md |
2559 | 2000 | +559 |
plugin/skills/azure-prepare/references/recipes/azd/aspire.md |
3069 | 2000 | +1069 |
plugin/skills/azure-prepare/references/recipes/azd/terraform.md |
3012 | 2000 | +1012 |
plugin/skills/azure-prepare/references/research.md |
2217 | 2000 | +217 |
plugin/skills/azure-prepare/references/resources-limits-quotas.md |
3322 | 2000 | +1322 |
plugin/skills/azure-prepare/references/security.md |
2133 | 2000 | +133 |
plugin/skills/azure-prepare/references/services/functions/bicep.md |
3065 | 2000 | +1065 |
plugin/skills/azure-prepare/references/services/functions/templates/SPEC-composable-templates.md |
6187 | 2000 | +4187 |
plugin/skills/azure-prepare/references/services/functions/templates/recipes/composition.md |
4649 | 2000 | +2649 |
plugin/skills/azure-prepare/references/services/functions/terraform.md |
3358 | 2000 | +1358 |
plugin/skills/azure-quotas/SKILL.md |
3445 | 500 | +2945 |
plugin/skills/azure-quotas/references/commands.md |
2644 | 2000 | +644 |
plugin/skills/azure-resource-lookup/SKILL.md |
1288 | 500 | +788 |
plugin/skills/azure-resource-visualizer/SKILL.md |
2054 | 500 | +1554 |
plugin/skills/azure-storage/SKILL.md |
1180 | 500 | +680 |
plugin/skills/azure-upgrade/SKILL.md |
1001 | 500 | +501 |
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 |
906 | 500 | +406 |
plugin/skills/entra-app-registration/SKILL.md |
2067 | 500 | +1567 |
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 |
2870 | 500 | +2370 |
plugin/skills/microsoft-foundry/foundry-agent/create/create.md |
3016 | 2000 | +1016 |
plugin/skills/microsoft-foundry/foundry-agent/deploy/deploy.md |
5555 | 2000 | +3555 |
plugin/skills/microsoft-foundry/foundry-agent/eval-datasets/eval-datasets.md |
2342 | 2000 | +342 |
plugin/skills/microsoft-foundry/foundry-agent/eval-datasets/references/trace-to-dataset.md |
4268 | 2000 | +2268 |
plugin/skills/microsoft-foundry/foundry-agent/observe/observe.md |
2547 | 2000 | +547 |
plugin/skills/microsoft-foundry/foundry-agent/trace/references/kql-templates.md |
2701 | 2000 | +701 |
plugin/skills/microsoft-foundry/foundry-agent/troubleshoot/troubleshoot.md |
2164 | 2000 | +164 |
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/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>
plugin/skills/appinsights-instrumentation/references/container-apps.md
Outdated
Show resolved
Hide resolved
- 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>
| | Log Table | Content | Retention | | ||
| |-----------|---------|-----------| | ||
| | `ContainerAppConsoleLogs_CL` | stdout/stderr from containers | Workspace default | | ||
| | `ContainerAppSystemLogs_CL` | Platform events (scaling, restarts, image pulls) | Workspace default | |
There was a problem hiding this comment.
These Markdown tables use a double leading pipe (||), which renders as an extra empty first column in most Markdown renderers. Change the rows to start with a single | so the table displays correctly.
| | Metric | Description | Dimensions | | ||
| |--------|-------------|-----------| | ||
| | `Replicas` | Current replica count | `revision` | | ||
| | `Requests` | HTTP request count | `statusCode`, `statusCodeCategory`, `revision`, `replica` | | ||
| | `UsageNanoCores` | CPU usage per replica | `revision`, `replica` | | ||
| | `WorkingSetBytes` | Memory usage per replica | `revision`, `replica` | | ||
| | `RestartCount` | Container restart count | `revision`, `replica` | | ||
| | `RxBytes` / `TxBytes` | Network I/O | `revision`, `replica` | |
There was a problem hiding this comment.
Same table formatting issue here: the double leading || adds an unintended empty column. Update these tables to use a single leading | per row so they render as intended.
| | Language | Package | Init Pattern | | ||
| |----------|---------|-------------| | ||
| | Node.js | `@azure/monitor-opentelemetry` | Call `useAzureMonitor()` before app startup | | ||
| | Python | `azure-monitor-opentelemetry` | Call `configure_azure_monitor()` at entry | | ||
| | .NET | `Azure.Monitor.OpenTelemetry.AspNetCore` | `builder.Services.AddOpenTelemetry().UseAzureMonitor()` | | ||
| | Java | Agent JAR (manual) | Set `JAVA_TOOL_OPTIONS=-javaagent:/agent/applicationinsights-agent.jar` | |
There was a problem hiding this comment.
Same table formatting issue here: the double leading || adds an unintended empty column. Update these tables to use a single leading | per row so they render as intended.
|
|
||
| ## Environment-Level Log Analytics | ||
|
|
||
| By default, Container Apps environments use a Log Analytics workspace. Configure it at environment creation: |
There was a problem hiding this comment.
The wording and placeholders here are likely to cause setup errors: --logs-workspace-id expects the Log Analytics Workspace customerId (GUID), not an ARM resource ID, and Container Apps environments don’t necessarily have Log Analytics configured unless you set it during creation (or update later). Recommend clarifying what <workspace-id> means (e.g., customerId) and adjusting the text to reflect that Log Analytics is configured when you choose --logs-destination log-analytics (plus optionally mention the env update path if supported by your guidance).
| az containerapp env create \ | ||
| --name <env-name> \ | ||
| --resource-group <rg> \ | ||
| --logs-workspace-id <workspace-id> \ | ||
| --logs-workspace-key $WORKSPACE_KEY \ | ||
| --logs-destination log-analytics |
There was a problem hiding this comment.
The wording and placeholders here are likely to cause setup errors: --logs-workspace-id expects the Log Analytics Workspace customerId (GUID), not an ARM resource ID, and Container Apps environments don’t necessarily have Log Analytics configured unless you set it during creation (or update later). Recommend clarifying what <workspace-id> means (e.g., customerId) and adjusting the text to reflect that Log Analytics is configured when you choose --logs-destination log-analytics (plus optionally mention the env update path if supported by your guidance).
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.