Skip to main content

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-f004d490 is only the default-domain suffix in app URLs, not the env name).
  • Log Analytics workspace: workspace-rgbilkodemo6lnV, customerId 71443731-9feb-41b1-9e27-fff4e4ebf098.
  • App Insights: appi-bilko, appId 69e12981-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.
  • MC #104266 (completed 2026-06-23)
  • MC #104228 (GCP decommission, closed)
  • Azure subscription: 5b0b4d9b-e677-464e-abf0-5170cbce3b8e
  • Resource group: rg-bilko-demo (swedencentral)