我的应用程序是ASP.NET Core 6应用程序。我正在使用Application Insights的遥测客户端并调用GetMetric
以在Azure门户中记录自定义指标。
我使用的是Microsoft.ApplicationInsights.AspNetCore
版本2.21.0
使用构造函数注入遥测客户端:
public RaftService (ILogger<RaftService> logger,
IHttpClientFactory clientFactory,
IOptions<RaftOptions> raftOptions,
IOrderNoteService orderNoteService,
TelemetryClient telemetryClient)
{
_logger = logger;
_clientFactory = clientFactory;
_options = raftOptions;
_orderNoteService = orderNoteService;
_telemetryClient = telemetryClient;
}
我调用GetMetric
和TrackValue
方法如下:
var _paymentAPIStatusCodeMetric = _telemetryClient.GetMetric("PaymentAPIStatusCode");
_paymentAPIStatusCodeMetric.TrackValue(Convert.ToInt32(response.StatusCode));
我在appsettings.json
文件中指定连接字符串,如下所示:
当我在VS 2022中本地运行应用程序时,我可以看到指标被记录。我的TelemetryClient
对象如下所示。我看到检测键被分配,连接字符串被填充。
当我将应用程序部署为应用程序服务时,不会记录自定义指标。我的TelemetryClient
对象如下所示-由于某种原因,未在TelemetryConfiguration
中填充instrumentation键,DisableTelemetry
显示为true。
你知道为什么在Azure中将应用程序作为应用程序服务运行时使用Instrumentation Key = ""
和DisableTelemetry = true
吗?
我猜,由于未设置检测密钥,因此自定义指标不会记录在Azure门户中。
任何帮助都将不胜感激。
1条答案
按热度按时间zbwhf8kr1#
请按如下方式更改您的代码。
那你可以宣布死亡。
最后,您可以查看日志。