Skip to content

Gap-10: Container Apps Observe (B → A) — Observability playbook + Dapr tracing#1642

Open
paulyuk wants to merge 5 commits intomainfrom
pass-equity-gap-10
Open

Gap-10: Container Apps Observe (B → A) — Observability playbook + Dapr tracing#1642
paulyuk wants to merge 5 commits intomainfrom
pass-equity-gap-10

Conversation

@paulyuk
Copy link
Copy Markdown
Member

@paulyuk paulyuk commented Apr 1, 2026

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.

Starting assessment — domain experts should review.

Closes #1618 | Parent: #1608
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@paulyuk paulyuk requested a review from JasonYeMSFT as a code owner April 1, 2026 17:37
Copilot AI review requested due to automatic review settings April 1, 2026 17:37
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 1, 2026

Details# 🔍 Token Analysis Report

@github-copilot-for-azure/scripts@1.0.0 tokens
node --import tsx src/tokens/cli.ts compare --base origin/main --head HEAD --markdown

fatal: path 'plugin/skills/appinsights-instrumentation/references/container-apps.md' exists on disk, but not in 'origin/main'

📊 Token Change Report

Comparing origin/mainHEAD

Summary

Metric Value
📈 Total Change +1,554 tokens (+171%)
Before 908 tokens
After 2,462 tokens
Files Changed 2

Changed Files

File Before After Change
plugin/skills/appinsights-instrumentation/references/container-apps.md - 1,528 +1528
plugin/skills/appinsights-instrumentation/SKILL.md 908 934 +26 (+3%)

@github-copilot-for-azure/scripts@1.0.0 tokens
node --import tsx src/tokens/cli.ts check --markdown

📊 Token Limit Check Report

Checked: 544 files
Exceeded: 75 files

⚠️ Files Exceeding Token Limits

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.

simonjj and others added 2 commits April 6, 2026 12:28
- 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>
Copilot AI review requested due to automatic review settings April 6, 2026 19:46
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

paulyuk and others added 2 commits April 6, 2026 13:00
- 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>
Copilot AI review requested due to automatic review settings April 7, 2026 18:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.

Comment on lines +26 to +29
| Log Table | Content | Retention |
|-----------|---------|-----------|
| `ContainerAppConsoleLogs_CL` | stdout/stderr from containers | Workspace default |
| `ContainerAppSystemLogs_CL` | Platform events (scaling, restarts, image pulls) | Workspace default |
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment on lines +37 to +44
| 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` |
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment on lines +52 to +57
| 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` |
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.

## Environment-Level Log Analytics

By default, Container Apps environments use a Log Analytics workspace. Configure it at environment creation:
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copilot uses AI. Check for mistakes.
Comment on lines +14 to +19
az containerapp env create \
--name <env-name> \
--resource-group <rg> \
--logs-workspace-id <workspace-id> \
--logs-workspace-key $WORKSPACE_KEY \
--logs-destination log-analytics
Copy link

Copilot AI Apr 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Gap-10: Container Apps Observe (B → A) — Observability playbook, ARG queries, Dapr tracing

3 participants