Azure Application Insights 在实时指标中显示事件,但不显示事件表

问题描述 投票:0回答:1

我正在从 ASP.NET Core 8 Web API 记录自定义事件。我可以看到这些事件在发送后不久就显示在实时指标中,但我无法在任何“事件”表中找到它们以供稍后查询。

我已检查 Log Analytics 中的“customEvents”表,还检查了 Log Analytics 工作区中的“AppEvents”表。自从在实时指标中看到这些事件以来已经超过 24 小时了,我认为这足以进行处理。我有什么遗漏的吗?

我正在运行自定义

ITelemetryInitializer
,但它仅根据请求和依赖项遥测运行:

public class TelemetryInitializer : ITelemetryInitializer
{
    public void InitializeTelemetry(ITelemetry telemetry)
    {
        if (telemetry is DependencyTelemetry dependency)
        {
            // manipulate dependency data
        }

        if (telemetry is RequestTelemetry request)
        {
            // manipulate request data
        }
    }
}

我的大部分配置都是在

appsettings.json
中完成的:

"ApplicationInsights": {
    "InstrumentationKey": "redacted",
    "DeveloperMode": false,
    "EnableAdaptiveSampling": true,
    "EnableRequestTrackingTelemetryModule": true,
    "EnablePerformanceCountersCollectionModule": false,
    "EnableActiveTelemetryConfigurationSetup": true,
    "InitialSamplingPercentage": 5,
    "SamplingSettings": {
      "MaxTelemetryItemsPerSecond": 5,
      "ExcludedTypes": "Event",
      "IncludedTypes": "Exception;Dependency;Trace;Request"
    }
}

我怀疑

AdaptiveSampling
与此有关,但我不确定为什么这会让我在实时指标中看到它,然后在表格中看不到它。

c# azure azure-application-insights asp.net-core-8
1个回答
0
投票

我可以使用默认值和您共享的配置在实时指标、事务搜索和日志中查看自定义事件。

实时指标: enter image description here

交易搜索:

enter image description here

日志 - 应用程序洞察: enter image description here

以及 LogAnalytics - AppEvents 表中。

enter image description here

我的Program.cs文件:

builder.Services.AddApplicationInsightsTelemetry(new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions
{
    ConnectionString = builder.Configuration["APPLICATIONINSIGHTS_CONNECTION_STRING"]
});

我的

TelemetryInitializer.cs
文件:

private readonly TelemetryClient _tc;
if (telemetry is EventTelemetry eventTel)
{
    if (eventTel.Name == "CustomEventName" && eventTel.Properties.ContainsKey("CustProp1"))
    {
        _tc.TrackEvent(eventTel.Name, eventTel.Properties, eventTel.Metrics);
    }   
}

我的控制器类:

  private readonly TelemetryClient _tc;
  public WeatherForecastController(TelemetryClient tc,ILogger<WeatherForecastController> logger)
  {
     _tc = tc;
     _logger = logger;
  }
 [HttpGet(Name = "GetWeatherForecast")]
 public IEnumerable<WeatherForecast> Get()
 { 
     var customEventTel = new EventTelemetry("CustomEventName");
     customEventTel.Properties.Add("CustomProperty", "SamValTest1");
     _tc.TrackEvent(customEventTel);
     ------
 }

没有

EventTelemetry

 _tc.TrackEvent("CustomEventName", new Dictionary<string, string>
 {
    { "CustProp1", "SamValTest1" },
    { "CustProp2", "SamValTest2" }
 });

我怀疑

AdaptiveSampling
与此有关,

  • 自适应采样有助于减少已配置属性的遥测数据。
  • 是的,问题似乎出在您的自适应采样配置上。
  • "ExcludedTypes": "Event",
    文件中删除
    appsettings.json
    并检查一次。
© www.soinside.com 2019 - 2024. All rights reserved.