簡體   English   中英

如何在 .net 標准庫中使用應用洞察?

[英]How to use application insights in .net standard library?

我在 web api 中使用了應用程序洞察力。 它運作良好。 目前,我們的 controller 需要調用一個 class 庫(參考 nuget 包)。 我需要在 class 庫中使用應用程序洞察力。 沒有例外,但沒有登錄應用程序洞察力。 我編寫代碼如下。 我們的 TelemetryConfiguration 已經在 controller 中初始化。

var telemetryClient = new TelemetryClient();
var customEvent = new Microsoft.ApplicationInsights.DataContracts.EventTelemetry
{
    Name = "helloworld",
};
// customEvent.Metrics.Add({ "latency", 42});
telemetryClient.TrackEvent(customEvent);

我應該怎么做才能使應用程序洞察力發揮作用?

通常,以下步驟足以登錄 App Insights:

1- 在您的 WebApi 啟動 class 和您的庫項目中,通過 nuget 添加 App Insights 程序集。

Microsoft.ApplicationInsights

2- 在您的啟動 class 中注冊 App Insights:

services.AddApplicationInsightsTelemetry(Configuration);

3- 在 appsettings.json 中設置您的儀器密鑰:

"ApplicationInsights": {
  "InstrumentationKey": "<Your instrumentation key here>"
}

4- 在您需要的任何 class 中,注入 TelemetryClient 並使用它。

using Microsoft.ApplicationInsights

namespace MyNamesPace
{
    public class MyClass
    {
        private readonly TelemetryClient _telemetryClient;

        public MyClass(TelemetryClient telemetryClient)
        {
            _telemetryClient= telemetryClient;
        }

        public myClassMethod()
        {
            // Use your _telemetryClient instance
            _telemetryClient.TrackEvent("Your Telemetry Event");
        }
    }
}

4- 在您的 controller 中注入您的 class

namespace MyApiNamesPace
{
    public class MyController : ControllerBase
    {
        private readonly IMyClass _myClass;

        public MyClass(IMyClass myClass)
        {
            _myClass = myClass;
        }

        public IActionResult myAction()
        {
            _myClass.MyClassMethod();
        }
    }
}

5- 不要忘記在您的 DI 容器中注冊您的 class,在啟動 class 中:

services.AddScoped<IMyClass, MyClass>();

快樂編程!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM