因此,我创建了一个配置微服务的 Application Insights 的类库。这些是 Application Insights 配置方法:

这就是我在每个微服务的 Startup.cs 类中使用它们的方式:

但是,数据不会在 Log Analytics 中“保存”,因此我无法对数据运行任何查询(它始终返回 0 个结果)。
我认为这可能是因为每个微服务的 Program.cs 中存在以下代码:
我认为应用程序见解记录器可能未正确配置(未明确设置检测密钥)。但是,我尝试将 TelemetryConfiguration 的检测密钥设置为硬编码的检测密钥,但它没有执行任何操作。
我确实阅读了此文档:https://learn.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core 但我似乎没有错过任何步骤(我调用 AddApplicationInsights 和添加ApplicationInsightsKubernetesEnricher)。
我想知道是否有人可以看到这个问题,我真的不知道如何通过实时指标而不是 Log Analytics 查看数据。
注意:在使用完全相同的代码(当您right click on project > Setup Application Insights和它完美运行时 VS 生成的默认代码)实现库之前,我确实尝试添加应用程序见解。
非常感谢!
我有一个简单的 Asp.Net Core Web API 应用程序。对于此示例,我遵循此处的官方文档: https: //learn.microsoft.com/en-us/azure/azure-monitor/app/asp-net-core
.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.18.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
应用程序设置.json
{
"ApplicationInsights": {
"LogLevel": {
"Default": "Information"
},
"InstrumentationKey": "my-instrumentation-key",
"EnableAdaptiveSampling": false,
"EnablePerformanceCounterCollectionModule": false
},
"Logging": {
"LogLevel": {
"Default": "Information"
}
},
"AllowedHosts": "*"
}
Run Code Online (Sandbox Code Playgroud)
启动.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "WebApiMonitoring", Version = "v1" });
});
services.AddApplicationInsightsTelemetry();
}
Run Code Online (Sandbox Code Playgroud)
控制器.cs
[HttpGet]
public IEnumerable<WeatherForecast> …Run Code Online (Sandbox Code Playgroud) azure azure-application-insights azure-web-app-service asp.net-core asp.net-core-webapi