我无法弄清楚如何为aspnetcore项目配置AI。我已经做了以下内容:ApplicationInsights dotnet核心自定义初始化程序
services.AddSingleton<ITelemetryInitializer, AppInsightsInitializer>();
services.AddApplicationInsightsTelemetry(Configuration);
当我需要的用户的loggedIn和服务名,所以我有了这个初始化:
public class AppInsightsInitializer : ITelemetryInitializer
{
private IHttpContextAccessor _httpContextAccessor;
public AppInsightsInitializer(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor ?? throw new ArgumentNullException("httpContextAccessor");
}
public void Initialize(ITelemetry telemetry)
{
var httpContext = _httpContextAccessor.HttpContext;
telemetry.Context.Properties["appname"] = "MyCoolService";
if (httpContext != null && httpContext.User.Identity.IsAuthenticated == true && httpContext.User.Identity.Name != null)
{
telemetry.Context.User.AuthenticatedUserId = httpContext.User.Identity.Name;
}
}
}
我没有applicationinights.config文件(我的理解他们是不需要的)
问题:我有4个条目的每个日志(相同的ID)。数据是正确的。我也有在日志下面errror:
AI: Error collecting 9 of the configured performance counters. Please check the configuration. Counter \Process(??APP_WIN32_PROC??)\% Processor Time: Failed to perform the first read for performance counter. Please make sure it exists.
Category: Process, counter: % Processor Time, instance Counter \Memory\Available Bytes: Failed to register performance counter.
Category: Memory, counter: Available Bytes, instance: .
Counter \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec: Failed to perform the first read for performance counter. Please make sure it exists.
Category: ASP.NET Applications, counter: Requests/Sec, instance MyCoolv3.Api.exe Counter \.NET CLR Exceptions(??APP_CLR_PROC??)\# of Exceps Thrown/sec: Failed to perform the first read for performance counter. Please make sure it exists.
Category: .NET CLR Exceptions, counter: # of Exceps Thrown/sec, instance Counter \ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time: Failed to perform the first read for performance counter. Please make sure it exists.
Category: ASP.NET Applications, counter: Request Execution Time, instance MyCoolv3.Api.exe Counter \Process(??APP_WIN32_PROC??)\Private Bytes: Failed to perform the first read for performance counter. Please make sure it exists. Category: Process, counter: Private Bytes, instance Counter \Process(??APP_WIN32_PROC??)\IO Data Bytes/sec: Failed to perform the first read for performance counter. Please make sure it exists.
Category: Process, counter: IO Data Bytes/sec, instance Counter \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue: Failed to perform the first read for performance counter. Please make sure it exists. Category: ASP.NET Applications, counter: Requests In Application Queue, instance MyCoolv3.Api.exe
Counter \Processor(_Total)\% Processor Time: Failed to register performance counter. Category: Processor, counter: % Processor Time, instance: _Total.
我使用:
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.1.0-beta1" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
相关问题:如果我想以编程方式在Program.cs中的WebBuilder上使用UseApplicationInsights()时添加遥测密钥,但在启动配置(这是我从keyvault加载遥测密钥的位置)之前执行的。我想过在WebBuilder上调用UseConfiguration(xx)并从xx中检索配置,然后将其用作UseApplicationInsights的参数......想法? – MarkD