Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
I den här självstudien lägger du till en OpenTelemetry-insamlare som en sidovagnscontainer i en Linux-app (bring-your-own-code) i Azure App Service. Anpassade containrar finns i Självstudie: Konfigurera en sidovagnscontainer för anpassad container i Azure App Service.
I Azure App Service kan du lägga till upp till nio sidovagnscontainrar för varje Linux-app. Med sidovagnscontainrar kan du distribuera extra tjänster och funktioner till dina Linux-appar utan att göra dem nära kopplade till huvudcontainern (inbyggd). Du kan till exempel lägga till övervaknings-, loggnings-, konfigurations- och nätverkstjänster som sidovagnscontainrar. En OpenTelemetry-insamlares sidovagn är ett sådant övervakningsexempel.
Mer information om sidocontainer i App Service finns i:
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Först skapar du de resurser som används i självstudien. De används för det här scenariot och krävs inte för sidovagnscontainrar i allmänhet.
Kör följande kommandon i Azure Cloud Shell. Se till att ange <environment-name>
.
git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs
cd app-service-sidecar-tutorial-prereqs
azd env new <environment-name>
azd provision
När du uppmanas till det anger du valfri prenumeration och region. Till exempel:
När distributionen är klar bör du se följande utdata:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Azure container registry name = <registry-name> Managed identity resource ID = <managed-identity-resource-id> Managed identity client ID = <managed-identity-client-id> Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/<subscription-id>/resourceGroups/<group-name>
Kopiera dessa utdatavärden för senare. Du kan också hitta dem i portalen på hanteringssidorna för respektive resurser.
Anteckning
azd provision
använder de inkluderade mallarna för att skapa följande Azure-resurser:
AcrPull
för resursgruppen (för att hämta avbildningar från registret).I det här steget distribuerar du en mall ASP.NET Core-program. Kör följande kommandon i Azure Cloud Shell. Ersätt <app-name>
med ett unikt appnamn.
cd ~
dotnet new webapp -n MyFirstAzureWebApp --framework net8.0
cd MyFirstAzureWebApp
az webapp up --name <app-name> --os-type linux
Efter några minuter distribueras det här .NET-webbprogrammet som MyFirstAzureWebApp.dll till en ny App Service-app.
I det här avsnittet lägger du till en sidovagnscontainer i din Linux-app.
På appens hanteringssida går du till den vänstra menyn och väljer Distributionscenter.
Välj banderollen Intresserad av att lägga till containrar som ska köras tillsammans med din app? Klicka här om du vill prova.
När sidan laddas om väljer du fliken Containrar (ny).
Välj Lägg till och konfigurera den nya containern på följande sätt:
azd provision
Välj Använd.
I exempelscenariot är sidovagnen otel-collector konfigurerad för att exportera OpenTelemetry-data till Azure Monitor, men den behöver anslutningssträng som en miljövariabel (se OpenTelemetry-konfigurationsfilen för avbildningen otel-collector).
Du konfigurerar miljövariabler för containrar som alla App Service-appar genom att konfigurera appinställningar. Appinställningarna är tillgängliga för alla containrar i appen.
Gå till App Service-appens hanteringssida.
På den vänstra menyn väljer du Miljövariabler.
Lägg till en appinställning genom att välja Lägg till och konfigurera den på följande sätt:
azd provision
. Om du förlorade Cloud Shell-sessionen kan du även hitta den på sidan Översikt för Application Insight-resursen under Anslutningssträng.Välj Använd och sedan Tillämpa och sedan Bekräfta.
I det här steget skapar du instrumentationen för din app enligt stegen som beskrivs i OpenTelemetry .NET-nollkodsinstrumentationen.
Tillbaka i Cloud Shell skapar du startup.sh med följande rader.
cat > startup.sh << 'EOF'
#!/bin/bash
# Download the bash script
curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O
# Install core files
sh ./otel-dotnet-auto-install.sh
# Enable execution for the instrumentation script
chmod +x $HOME/.otel-dotnet-auto/instrument.sh
# Setup the instrumentation for the current shell session
. $HOME/.otel-dotnet-auto/instrument.sh
export OTEL_SERVICE_NAME="MyFirstAzureWebApp-Azure"
export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318"
export OTEL_TRACES_EXPORTER="otlp"
export OTEL_METRICS_EXPORTER="otlp"
export OTEL_LOGS_EXPORTER="otlp"
# Run your application with instrumentation
OTEL_SERVICE_NAME=myapp OTEL_RESOURCE_ATTRIBUTES=deployment.environment=staging,service.version=1.0.0 dotnet /home/site/wwwroot/MyFirstAzureWebApp.dll
EOF
Distribuera den här filen till din app med följande Azure CLI-kommando. Om du fortfarande är i katalogen ~/MyFirstAzureWebApp behövs inga andra parametrar eftersom az webapp up
du redan har angett standardvärden för resursgruppen och appnamnet.
az webapp deploy --src-path startup.sh --target-path /home/site/startup.sh --type static
Tips
Den här metoden distribuerar startup.sh-filen separat från ditt program. På så sätt är instrumentationskonfigurationen separat från programkoden. Du kan dock använda andra distributionsmetoder för att distribuera skriptet tillsammans med ditt program.
På appens hanteringssida går du till den vänstra menyn och väljer Konfiguration.
Ange Startkommando till /home/site/startup.sh. Det är samma sökväg som du distribuerade till i föregående steg.
Välj Spara och sedan Fortsätt.
Sidovagnen otel-collector bör exportera data till Application Insights nu.
Gå tillbaka till webbläsarfliken för och uppdatera sidan några gånger för https://<app-name>.azurewebsites.net
att generera några webbbegäranden.
Gå tillbaka till översiktssidan för resursgruppen och välj sedan den Application Insights-resurs som azd up
skapades. Nu bör du se vissa data i standarddiagrammen.
Anteckning
I det här mycket vanliga övervakningsscenariot är Application Insights bara ett av de OpenTelemetry-mål som du kan använda, till exempel Jaeger, Prometheus och Zipkin.
När du inte längre behöver miljön kan du ta bort resursgrupperna och alla relaterade resurser. Kör bara dessa kommandon i Cloud Shell:
cd ~/MyFirstAzureWebApp
az group delete --yes
cd ~/app-service-sidecar-tutorial-prereqs
azd down
Sidecar-containrar delar samma nätverksvärd som huvudcontainern, så att huvudcontainern (och andra sidovagnscontainrar) kan nå valfri port på sidovagnen med localhost:<port>
.
Exemplet startup.sh använder localhost:4318
för att komma åt port 4318 på sidovagnen otel-collector.
I dialogrutan Redigera container används inte portrutan för närvarande av App Service. Du kan använda den som en del av sidovagnsmetadata, till exempel för att ange vilken port sidovagnen lyssnar på.
Du kan använda en liknande metod för att instrumentera appar i andra språkstackar. Mer information finns i Dokumentation om OpenTelemetry:
Händelser
17 mars 21 - 21 mars 10
Gå med i mötesserien för att skapa skalbara AI-lösningar baserat på verkliga användningsfall med andra utvecklare och experter.
Registrera dig nuUtbildning
Modul
Implementera observerbarhet i ett .NET-molnbaserat program med OpenTelemetry - Training
Lär dig mer om observerbarhet och hur du implementerar det i ett molnbaserat program. Använd OpenTelemetry-paket för att mata ut loggar, mått och spåra data och analysera data i Application Insights och program från tredje part.
Certifiering
Microsoft Certified: Azure Developer Associate - Certifications
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.