Bilko ACA Telemetry & Observability Wiring (Azure)
Context
GCP Cloud Monitoring dashboard (070613fa) was decommissioned 2026-06-23 after migration to Azure (MC #104228 closed). This page documents the ACA→Log Analytics + App Insights telemetry wiring done as follow-on MC #104266.
Resources
- Container App Environment:
bilko-demo-env(NOTE:purplebeach-f004d490is only the default-domain suffix in app URLs, not the env name). - Log Analytics workspace:
workspace-rgbilkodemo6lnV, customerId71443731-9feb-41b1-9e27-fff4e4ebf098. - App Insights:
appi-bilko, appId69e12981-9ebb-47ef-9dbd-5cf69fa87c40. - Workbook:
dcaef4e3-9bc7-48ae-8e1b-bd382a73889e"Bilko Observability — Prod+Stage (Azure)". - 4 ACA apps: bilko-api-demo, bilko-web-demo, bilko-api-stage, bilko-web-stage.
Root cause that was fixed
ACA env appLogsConfiguration.destination was not effectively set → ContainerApp logs not reaching the workspace. Fixed via:
az containerapp env update -n bilko-demo-env -g rg-bilko-demo --logs-destination log-analytics --logs-workspace-id 71443731-... --logs-workspace-key <key>Result: ContainerAppSystemLogs_CL now flows (tool-verified 54 rows/15m, sustained).
App Insights instrumentation
Each ACA app needs env var APPLICATIONINSIGHTS_CONNECTION_STRING (from az monitor app-insights component show -g rg-bilko-demo -n appi-bilko --query connectionString -o tsv), set via az containerapp update -n <app> -g rg-bilko-demo --set-env-vars APPLICATIONINSIGHTS_CONNECTION_STRING=<value>. All 4 apps confirmed set.
KNOWN REMAINING GAP (important for runbook)
Setting the env var ALONE does not produce App Insights request/dependency telemetry — requests table = 0. The app code must initialize the App Insights SDK (Node: applicationinsights package; Spring Boot: azure-monitor starter). Until then, App-Insights-request-based workbook panels stay empty. The KQL log panel (ContainerAppSystemLogs_CL) and ACA platform-metric panels work regardless. Track app-code SDK init as a separate CodeCraft task if request tracing is needed.
Troubleshooting note
az monitor log-analytics query returns a FLAT array [{col:val}] — do NOT filter with --query "tables[0].rows" (returns empty falsely). az monitor app-insights query uses {tables:[{rows}]} shape.
Verification queries (runbook)
- Logs:
ContainerAppSystemLogs_CL | where TimeGenerated > ago(20m) | count(workspace 71443731) — expect >0. - Env vars:
az containerapp show -g rg-bilko-demo -n <app> --query "properties.template.containers[0].env[?name=='APPLICATIONINSIGHTS_CONNECTION_STRING']". - Availability: availabilityResults pass rate on appi-bilko.
Related
- MC #104266 (completed 2026-06-23)
- MC #104228 (GCP decommission, closed)
- Azure subscription: 5b0b4d9b-e677-464e-abf0-5170cbce3b8e
- Resource group: rg-bilko-demo (swedencentral)
No comments to display
No comments to display