Monitorování aplikace v Azure Container Apps Preview

Azure Container Apps shromažďuje širokou škálu dat o vaší aplikaci typu kontejner a ukládá je pomocí Log Analytics. Tento článek popisuje dostupné protokoly a způsob zápisu a zobrazení protokolů.

Zápis do protokolu

Když zapisujete do streamů standardního výstupu (stdout) nebo standardní chyby (stderr),agenti protokolování Container Apps zapíšou protokoly pro každou zprávu.

Při protokolování zprávy se v tabulce protokolů shromáždí následující informace:

Vlastnost Poznámky
RevisionName
ContainerAppName
ContainerGroupID
ContainerGroupName
ContainerImage
ContainerID Jedinečný identifikátor kontejneru. Tuto hodnotu můžete použít k identifikaci selhání kontejneru.
Stream Ukazuje, stdout jestli se k protokolování používá nebo stderr .
EnvironmentName

Jednoduchý text vs. strukturovaná data

Můžete protokolovat jeden textový řetězec nebo řádek serializovaných dat JSON. Informace se zobrazují různě v závislosti na typu dat, která se protokolují.

Datový typ Popis
Jeden řádek textu Ve sloupci se Log_s zobrazí text.
Serializovaný JSON Data se analyzují agentem protokolování a zobrazují se ve sloupcích, které odpovídají názvům vlastností objektu JSON.

Zobrazení protokolů

Data protokolovaná prostřednictvím aplikace kontejneru se ukládají ve ContainerAppConsoleLogs_CL vlastní tabulce v pracovním prostoru služby Log Analytics. Protokoly můžete zobrazit prostřednictvím Azure Portal nebo pomocí rozhraní příkazového řádku.

Nastavte název skupiny prostředků a pracovního prostoru služby Log Analytics a pak pomocí LOG_ANALYTICS_WORKSPACE_CLIENT_ID následujících příkazů načtěte .

RESOURCE_GROUP="my-containerapps"
LOG_ANALYTICS_WORKSPACE="containerapps-logs"

LOG_ANALYTICS_WORKSPACE_CLIENT_ID=`az monitor log-analytics workspace show --query customerId -g $RESOURCE_GROUP -n $LOG_ANALYTICS_WORKSPACE --out tsv`

K zobrazení protokolů na příkazovém řádku použijte následující příkaz rozhraní příkazového řádku.

az monitor log-analytics query \
  --workspace $LOG_ANALYTICS_WORKSPACE_CLIENT_ID \
  --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'my-container-app' | project ContainerAppName_s, Log_s, TimeGenerated | take 3" \
  --out table

Následující výstup ukazuje typ odpovědi, která se má očekávat od příkazu rozhraní příkazového řádku.

ContainerAppName_s    Log_s                 TableName      TimeGenerated
--------------------  --------------------  -------------  ------------------------
my-container-app      listening on port 80  PrimaryResult  2021-10-23T02:09:00.168Z
my-container-app      listening on port 80  PrimaryResult  2021-10-23T02:11:36.197Z
my-container-app      listening on port 80  PrimaryResult  2021-10-23T02:11:43.171Z

Další kroky