Основанный на Service Fabric сайт ASP.NET Core отправляет счетчики производительности в Application Insights.
У меня есть кластер Service Fabric, на котором размещается веб- сайт ASP.NET Core. Я также использую Application Insights для анализа производительности сайта. Чтобы собрать метрики во время выполнения и переслать их в Application Insights, я добавил следующую строку...
AddApplicationInsightsTelemetry("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
..в середине следующего стандартного кода для настройки веб-сайта внутри экземпляра службы Service Fabric...
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return new ServiceInstanceListener[]
{
new ServiceInstanceListener(serviceContext =>
new HttpSysCommunicationListener(serviceContext, "ServiceEndpoint", (url, listener) =>
{
return new WebHostBuilder()
.UseHttpSys()
.ConfigureServices(
services => services
.AddSingleton<StatelessServiceContext>(serviceContext)
.AddApplicationInsightsTelemetry("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"))
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
.UseUrls(url)
.Build();
}))
};
}
Глядя на метрики Application Insights, я получаю следующее сообщение об ошибке трассировки...
В нем говорится, что он не мог собрать 3 счетчика производительности. Я не уверен, как исправить эту ошибку, так как все целевые узлы кластера имеют эти счетчики, что подтверждается с помощью системного монитора, чтобы проверить, что они существуют. Кроме того, различные показатели правильно собираются. Application Insights действительно перечисляет запросы на веб-сайт. Так что это в основном работает.
У кого-нибудь есть идеи, в чем может быть проблема?
1 ответ
Метрики счетчика производительности ASP.NET недоступны, если вы используете основное веб-приложение Asp.Net.