我無法弄清楚如何爲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