未为部署在 Service Fabric Linux 集群上的 .Net 核心应用生成应用洞察

Posted

技术标签:

【中文标题】未为部署在 Service Fabric Linux 集群上的 .Net 核心应用生成应用洞察【英文标题】:Application insights not generated for .Net core app deployed on service fabric Linux cluster 【发布时间】:2020-07-16 05:10:30 【问题描述】:

我有一个部署在 Service Fabric Linux 集群上的 .Net 核心应用程序。应用洞察在应用中配置。

Startup.cs

public void ConfigureServices(IServiceCollection services)
                    
            ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions aiOptions
                = new ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions
                
                    EnableAdaptiveSampling = false,

                    EnableQuickPulseMetricStream = false,

                    InstrumentationKey = "xxx"
                ;

services.AddApplicationInsightsTelemetry(aiOptions);

我有一个 controller 类,它有一些操作方法并记录信息。

[HttpPost]
public ActionResult actionMethod(...)
       
            TraceLine("------------------------------------");
            //some code
       

private static void TraceLine(string msg)
        
            msg = $">> DateTime.UtcNow.ToString("o"): msg";
            Log.Information(msg);
        

我使用的是 Serilog,在 appsettings.json & Program.cs 中配置

当我通过 Postman 直接从本地点击操作方法(甚至不将其托管在本地 sf 集群上)时,我看到应用洞察力正在生成并推送到 azure。

azure app insights snapshot

但是当我点击部署在 Azure 服务结构上的操作方法时,我看不到任何洞察力。

我在这里错过了什么?

非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

好吧,我们需要在这里检查几件事:

1) 云上托管的集群的部署参数文件中的应用洞察 URL 和检测密钥 (Cloud.xml)

2) 在检查 Cloud.xml 之后,最好的方法是访问日志文件并检查实际问题。

有一个描述 here 解释了如何发现日志文件的存储位置。

可以使用RDP访问本机,说明here。

【讨论】:

感谢您的回复。 Cloud.xml 看起来不错。访问 RDP 只显示 DOS cmd 提示符。而且我真的不知道如何处理 dos 提示符。 我能够解决这个问题并发布了答案。感谢您的帮助!【参考方案2】:

我能够通过在我的应用程序中使用 Microsoft.ApplicationInsights.ServiceFabric.Native SDK 来记录应用见解,从而解决了这个问题。

请参阅ApplicationInsights-ServiceFabric 中的 .NetCore 部分,了解如何为 Service Fabric 应用程序配置洞察力。

【讨论】:

以上是关于未为部署在 Service Fabric Linux 集群上的 .Net 核心应用生成应用洞察的主要内容,如果未能解决你的问题,请参考以下文章

为 Service Fabric 配置 Azure 部署

Service Fabric Actors:使用最新版本的 Service Fabric nuget 包部署 Actors 时出现的问题

在本地部署 Service Fabric 项目:“FABRIC_E_IMAGEBUILDER_UNEXPECTED_ERROR”

将NodeJ部署到Service Fabric Cluster

Service Fabric 群集部署失败

Service Fabric 群集卡在状态 = 正在部署