• 【Azure 应用程序见解】在Docker中运行的ASP.NET Core应用如何开启Application Insights的Profiler Trace呢? 


    问题描述

    使用Azure Application Insights收集AKS中ASP.NET Core应用的监控数据,自动收集请求的Trace情况,用于分析单个请求在应用内部的耗时及处理事件情况,参考Application Insights的文档,功能“Profiler Trace”可以追踪请求详情,但是在中国区的Application Insights中,确没有发现Profiler Trace功能。这里需要如何在Docker文件中配置呢?

    期望结果 实际结果

    那这里需要如何设置才能查看到Profiler Trace呢?

    问题解决

    根据示例的Docker代码,需要在构建镜像时候配置正确的Application Insights Connect String。而在文档中使用的是APPINSIGHTS_INSTRUMENTATIONKEY的方式,所以这里需要修改为APPLICATIONINSIGHTS_CONNECTION_STRING, 并且需要在其中必须包含Profiler 的Endpoint: ProfilerEndpoint=https://profiler.monitor.azure.cn/ 。

    FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build-env
    WORKDIR /app
    
    # Copy everything and build
    COPY . ./
    
    # Adding a reference to hosting startup package
    RUN dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore -v 2.*
    
    # Restore & publish the app
    RUN dotnet publish -c Release -o out
    
    # Build runtime image
    FROM mcr.microsoft.com/dotnet/aspnet:3.1
    
    # Create an argument to allow docker builder to passing in application insights key.
    # For example: docker build . --build-arg APPINSIGHTS_CONNECTION_STRING=YOUR_APPLICATIONINSIGHTS_INSTRUMENTATION_CONNECTION_STRING
    ARG APPINSIGHTS_CONNECTION_STRING
    # Making sure the argument is set. Fail the build of the container otherwise.
    RUN test -n "$APPINSIGHTS_CONNECTION_STRING"
    
    # Light up Application Insights and Service Profiler
    ENV APPLICATIONINSIGHTS_CONNECTION_STRING $APPINSIGHTS_CONNECTION_STRING
    ENV ASPNETCORE_HOSTINGSTARTUPASSEMBLIES Microsoft.ApplicationInsights.Profiler.AspNetCore
    
    WORKDIR /app
    COPY --from=build-env /app/out .
    ENTRYPOINT ["dotnet", "EnableServiceProfilerForContainerApp.dll"]

    APPLICATIONINSIGHTS_CONNECT_STRING格式如下:

    InstrumentationKey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx;EndpointSuffix=applicationinsights.azure.cn;IngestionEndpoint=https://chinaeast2-0.in.applicationinsights.azure.cn/;ProfilerEndpoint=https://profiler.monitor.azure.cn/  

    参考资料

    Enable Service Profiler for containerized ASP.NET Core applicationhttps://github.com/microsoft/ApplicationInsights-Profiler-AspNetCore/tree/main/examples/EnableServiceProfilerForContainerApp

    Profile production applications in Azure with Application Insights:https://docs.microsoft.com/en-us/azure/azure-monitor/app/profiler-overview#view-profiler-data

    当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

  • 相关阅读:
    运维必备:Oracle自备份精简教程(linux及win)
    Ansible11:变量详解【转】
    Ansible10:Playbook的角色与包含【转】
    Nginx下Redmine配置
    centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记
    nginx 出现413 Request Entity Too Large问题的解决方法
    linux 安装redmine 遇到的问题
    linux编译ruby1.8.7 出现OPENSSL错误
    Linux下安装项目管理工具Redmine
    (转载)Go语言开发环境配置
  • 原文地址:https://www.cnblogs.com/lulight/p/14621310.html
Copyright © 2020-2023  润新知