我在Web api中使用了应用程序见解。它运作良好。当前,我们的控制器需要调用一个类库(由nuget包引用)。我需要在类库中使用应用程序洞察力。没有例外,但“应用程序见解”中未记录任何内容。我编写如下代码。我们的TelemetryConfiguration已在控制器中初始化。
var telemetryClient = new TelemetryClient();
var customEvent = new Microsoft.ApplicationInsights.DataContracts.EventTelemetry
{
Name = "helloworld",
};
// customEvent.Metrics.Add({ "latency", 42});
telemetryClient.TrackEvent(customEvent);
我该怎么做才能使应用程序见解发挥作用?
答案 0 :(得分:0)
通常,以下步骤足以登录到App Insights:
1-在WebApi启动类和库项目中,通过nuget添加App Insights程序集。
Microsoft.ApplicationInsights
2-在启动类中注册App Insights:
services.AddApplicationInsightsTelemetry(Configuration);
3-在appsettings.json中设置您的检测密钥:
"ApplicationInsights": {
"InstrumentationKey": "<Your instrumentation key here>"
}
4-在您需要的任何类中,注入一个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-在您的控制器中注入您的班级
namespace MyApiNamesPace
{
public class MyController : ControllerBase
{
private readonly IMyClass _myClass;
public MyClass(IMyClass myClass)
{
_myClass = myClass;
}
public IActionResult myAction()
{
_myClass.MyClassMethod();
}
}
}
5-不要忘记在启动类中的DI容器中注册您的类:
services.AddScoped<IMyClass, MyClass>();
编程愉快!