Criar o perfil de aplicativos web ASP.NET Core Azure Linux com o Application Insights ProfilerProfile ASP.NET Core Azure Linux web apps with Application Insights Profiler

Esse recurso está atualmente na visualização.This feature is currently in preview.

Descubra quanto tempo é gasto em cada método do seu aplicativo Web em tempo real ao usar o Application Insights.Find out how much time is spent in each method of your live web application when using Application Insights. O Application Insights Profiler agora está disponível para aplicativos de web do ASP.NET core hospedados no Linux no Serviço de Aplicativo do Azure.Application Insights Profiler is now available for ASP.NET Core web apps that are hosted in Linux on Azure App Service. Este guia fornece instruções passo a passo sobre como os rastreamentos do Profiler podem ser coletados para aplicativos web do ASP.NET Core Linux.This guide provides step-by-step instructions on how the Profiler traces can be collected for ASP.NET Core Linux web apps.

Depois de concluir este passo a passo, seu aplicativo poderá coletar rastreamentos de Profiler como os rastreamentos que são mostrados na imagem.After you complete this walkthrough, your app can collect Profiler traces like the traces that are shown in the image. Neste exemplo, o rastreamento do Profiler indica que uma solicitação da web específica está lenta por causa do tempo gasto na espera.In this example, the Profiler trace indicates that a particular web request is slow because of time spent waiting. O afunilamento no código que está reduzindo a velocidade do aplicativo é marcado por um ícone de chamas.The hot path in the code that's slowing the app is marked by a flame icon. O método Sobre na seção HomeController seção está reduzindo a velocidade do aplicativo web porque está chamando a função Thread.Sleep.The About method in the HomeController section is slowing the web app because the method is calling the Thread.Sleep function.

Rastreamentos do Criador de Perfil

Pré-requisitosPrerequisites

As seguintes instruções se aplicam a todos os ambientes de desenvolvimento do Windows, Linux e Mac:The following instructions apply to all Windows, Linux, and Mac development environments:

Configurar o projeto localmenteSet up the project locally

  1. Abra uma janela do prompt de comando no seu computador.Open a Command Prompt window on your machine. As seguintes instruções são compatíveis com todos os ambientes de desenvolvimento do Windows, Linux e Mac.The following instructions work for all Windows, Linux, and Mac development environments.

  2. Crie um aplicativo Web MVC ASP.NET Core:Create an ASP.NET Core MVC web application:

    dotnet new mvc -n LinuxProfilerTest
    
  3. Altere o diretório de trabalho para a pasta raiz do projeto.Change the working directory to the root folder for the project.

  4. Adicione o pacote do NuGet para coletar os rastreamentos do Profiler:Add the NuGet package to collect the Profiler traces:

    dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore
    
  5. Habilite o Application Insights em Program.cs:Enable Application Insights in Program.cs:

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseApplicationInsights() // Add this line of code to Enable Application Insights
            .UseStartup<Startup>();
    
  6. Habilite o Profiler em Startup.cs:Enable Profiler in Startup.cs:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddServiceProfiler(); // Add this line of code to Enable Profiler
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
    }
    
  7. Adicione uma linha de código na seção HomeController.cs para atrasar aleatoriamente alguns segundos:Add a line of code in the HomeController.cs section to randomly delay a few seconds:

        using System.Threading;
        ...
    
        public IActionResult About()
            {
                Random r = new Random();
                int delay = r.Next(5000, 10000);
                Thread.Sleep(delay);
                return View();
            }
    
  8. Salve e confirme suas alterações no repositório local:Save and commit your changes to the local repository:

        git init
        git add .
        git commit -m "first commit"
    

Criar o aplicativo web para Linux para hospedar seu projetoCreate the Linux web app to host your project

  1. Crie o ambiente de aplicativo web usando o Serviço de Aplicativo no Linux:Create the web app environment by using App Service on Linux:

    Criar o aplicativo web para Linux

  2. Crie as credenciais de implantação:Create the deployment credentials:

    Observação

    Registre sua senha para usar posteriormente ao implantar seu aplicativo web.Record your password to use later when deploying your web app.

    Criar as credenciais de implantação

  3. Escolha as opções de implantação.Choose the deployment options. Configure um repositório Git local no aplicativo web seguindo as instruções no Portal do Azure.Set up a local Git repository in the web app by following the instructions on the Azure portal. Um repositório Git é criado automaticamente.A Git repository is automatically created.

    Configurar o repositório Git

Para obter mais opções de implantação, consulte este artigo.For more deployment options, see this article.

Implante o seu projetoDeploy your project

  1. Na janela do prompt de comando, navegue até a pasta raiz de seu projeto.In your Command Prompt window, browse to the root folder for your project. Adicione um repositório remoto de Git para apontar para o repositório no Serviços de Aplicativos:Add a Git remote repository to point to the repository on App Service:

    git remote add azure https://<username>@<app_name>.scm.azurewebsites.net:443/<app_name>.git
    
    • Use o username que você usou para criar as credenciais de implantação.Use the username that you used to create the deployment credentials.
    • Use o nome do aplicativo que você usou para criar o aplicativo web por meio do Serviço de Aplicativo no Linux.Use the app name that you used to create the web app by using App Service on Linux.
  2. Implante o projeto efetuando push nas alterações para o Azure:Deploy the project by pushing the changes to Azure:

    git push azure master
    

Você deverá ver uma saída semelhante ao exemplo a seguir:You should see output similar to the following example:

```
Counting objects: 9, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (9/9), 1.78 KiB | 911.00 KiB/s, done.
Total 9 (delta 3), reused 0 (delta 0)
remote: Updating branch 'master'.
remote: Updating submodules.
remote: Preparing deployment for commit id 'd7369a99d7'.
remote: Generating deployment script.
remote: Running deployment command...
remote: Handling ASP.NET Core Web Application deployment.
remote: ......
remote:   Restoring packages for /home/site/repository/EventPipeExampleLinux.csproj...
remote: .
remote:   Installing Newtonsoft.Json 10.0.3.
remote:   Installing Microsoft.ApplicationInsights.Profiler.Core 1.1.0-LKG
…

```

Adicionar o Application Insights para monitorar seus aplicativos webAdd Application Insights to monitor your web apps

  1. Crie um recurso Application Insights.Create an Application Insights resource.

  2. Copie o valor de iKey do recurso do Application Insights e defina as seguintes configurações nos seus aplicativos web:Copy the iKey value of the Application Insights resource and set the following settings in your web apps:

    APPINSIGHTS_INSTRUMENTATIONKEY: [YOUR_APPINSIGHTS_KEY]
    

    Quando as configurações de aplicativo são alteradas, o site é reiniciado automaticamente.When the app settings are changed, the site automatically restarts. Depois que as novas configurações são aplicadas, o Profiler é executado imediatamente por dois minutos.After the new settings are applied, the Profiler immediately runs for two minutes. O Profiler, em seguida, é executado por dois minutos a cada hora.The Profiler then runs for two minutes every hour.

  3. Gere algum tráfego para seu site.Generate some traffic to your website. Você pode gerar tráfego atualizando a página Sobre do site algumas vezes.You can generate traffic by refreshing the site About page a few times.

  4. Aguarde de dois a cinco minutos para os eventos serem agregados ao Application Insights.Wait two to five minutes for the events to aggregate to Application Insights.

  5. Navegue até o painel de Desempenho do Application Insights no Portal do Azure.Browse to the Application Insights Performance pane in the Azure portal. Você pode exibir os rastreamentos do Profiler no canto inferior direito do painel.You can view the Profiler traces at the bottom right of the pane.

    Exibir rastreamentos do Profiler

Problemas conhecidosKnown issues

Agora o botão não funciona para Linux Profiler de perfilProfile Now button doesn't work for Linux Profiler

A versão do Linux do criador de perfil do App Insights ainda não dá suporte sob demanda de criação de perfil usando o perfil agora botão.The Linux version of the App Insights profiler does not yet support on demand profiling using the profile now button.

Próximas etapasNext steps

Se você usar contêineres personalizados hospedados pelos Serviço de Aplicativo do Azure, siga as instruções em Habilitar o Criador de Perfil de Serviço para um aplicativo em contêineres do ASP.NET Core para habilitar o Application Insights Profiler.If you use custom containers that are hosted by Azure App Service, follow the instructions in Enable Service Profiler for a containerized ASP.NET Core application to enable Application Insights Profiler.

Relate quaisquer problemas ou sugestões ao repositório do GitHub do Application Insights: ApplicationInsights-Profiler-AspNetCore: Problemas.Report any issues or suggestions to the Application Insights GitHub repository: ApplicationInsights-Profiler-AspNetCore: Issues.