如何在 .net 标准库中使用 application insights?
How to use application insights in .net standard library?
我在网络中使用过应用程序洞察 api。它运作良好。目前,我们的控制器需要调用一个 class 库(由 nuget 包引用)。我需要在 class 库中使用 application insight。没有例外,但应用程序洞察中没有任何记录。我写的代码如下。我们的 TelemetryConfiguration 已经在控制器中初始化了。
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- 在您的初创公司中注册 App Insights class:
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- 在你的控制器中注入你的 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>();
编程愉快!!
我在网络中使用过应用程序洞察 api。它运作良好。目前,我们的控制器需要调用一个 class 库(由 nuget 包引用)。我需要在 class 库中使用 application insight。没有例外,但应用程序洞察中没有任何记录。我写的代码如下。我们的 TelemetryConfiguration 已经在控制器中初始化了。
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- 在您的初创公司中注册 App Insights class:
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- 在你的控制器中注入你的 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>();
编程愉快!!