我们部署了Azure Web角色,该角色一直在使用Application Insights(版本1.0.0.4220),但是,我们正在检查我们的数据配额.是否可以配置Application Insights忽略特定的URL?
我们有一个状态Web服务,可以获得大量流量,但从不抛出任何错误.如果我可以排除这一个服务URL,我可以减少一半的数据使用量.
我已经在我的asp.net 4.6 Web应用程序中添加了应用程序见解.
这也添加了文件 Service References\Application Insights\ConnectedService.json
这个文件的内容:
{
"ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider",
"Version": "7.1.719.1",
"GettingStartedDocument": {
"Uri": "https://go.microsoft.com/fwlink/?LinkID=613413"
}
}
这个档案是什么?它似乎没有为我的应用程序提供任何逻辑,似乎并不需要任何工作.
我遇到的问题是我的IdentityServer的/ connect/introspect端点有时真的很慢(一次调用10秒).如下所示,大多数呼叫(18k)快速执行(<250ms).
我启用了新的Application Insights分析,大多数慢速跟踪如下所示:
正如Application Insights剖析器页面上所述:
BLOCKED_TIME表示代码正在等待另一个资源可用,例如等待同步对象,等待线程可用或等待请求完成.
但我没有理由相信这应该等待一些事情.请求中没有高峰,因此我认为没有可用的线程或其他东西.内存似乎对我们的应用服务计划没有问题,因为它总是大约40%.我也挖掘了IdentityServer4的来源,但无法确定任何原因.所以现在我有点卡住了.有人能指出这些缓慢请求的可能原因吗?或者指出我确定原因的好方向?任何帮助都感激不尽!
使用一些额外信息进行编辑:我们使用IdentityServer4.EntityFramework在sql azure db中存储引用令牌.我查看了Application Insights,这些慢速请求中的查询执行时间不到50毫秒.所以我猜它不是数据库.
c# profiler json.net azure-application-insights identityserver4
我已将Application Insights添加到我的应用程序中.
一段时间后,我正确地看到浏览器页面加载时间,但其他图表都没有显示任何数据.
我看到了这个:

当我期待这样的事情时:

这两个ASP.NET MVC 5应用程序位于同一解决方案中,并且都部署到Azure.
在这两种情况下:
dc.services.visualstudio.com/v2/track);ApplicationInsights.config在网络根目录中有一个;Application_Start()方法Global.asax.cs的方式TelemetryConfiguration.Active.InstrumentationKey = "the_key"请注意,我在ApplicationInsights.config文件中没有检测密钥,因为我多次部署网站,并根据此建议设置检测密钥.
我已经重置了所有内容(在添加Application Insights SDK以监控您的ASP.NET应用程序之后)但是,在至少1/2小时之后,我没有看到任何服务器响应时间,服务器请求或失败的请求.
我该如何解决?
目前在Azure中,当WebJob抛出异常时,异常会被JobHost(某种程度上)捕获并处理,然后将异常记录到可通过托管webjob的Web App刀片提供的仪表板中.有没有办法拦截错误处理或覆盖它,以便我可以插入我的Application Insights实例?
我需要保留所有遥测,因为我们将其用于分析.
根据这篇文章,我可以运行以下Analytics查询来确定抽样率:
requests
| where timestamp > ago(1d)
| summarize 100/avg(itemCount) by bin(timestamp, 1h)
| render areachart
Run Code Online (Sandbox Code Playgroud)
结果显示一些严重抽样,特别是在白天只保留了约十分之一的项目:
让我感到困惑的是,Azure Portal阻止采样设置为100%:
也许这只反映了摄取采样?自适应采样仍可能在服务器上进行.
如何使用Application Insights的ASP.NET核心库完全禁用采样?(即Microsoft.ApplicationInsights.AspNetCore 1.0.2)
目前,这是我能找到的唯一配置,并且没有任何取样:
var appInsightsConfiguration = new ConfigurationBuilder()
.AddApplicationInsightsSettings(
developerMode: false,
instrumentationKey: Configuration["ApplicationInsights:InstrumentationKey"])
.Build();
services.AddApplicationInsightsTelemetry(appInsightsConfiguration);
Run Code Online (Sandbox Code Playgroud) asp.net-core-mvc azure-application-insights asp.net-core asp.net-core-1.0
当我使用右键单击Visual Studio中的解决方案资源管理器中的ASP.NET应用程序时,可以使用"添加应用程序洞察遥测..."菜单选项将应用程序指向现有的Application Insights资源,生成的文件更改包括添加两个项目到.csproj文件:
<ApplicationInsightsResourceId>/subscriptions/$guid/resourcegroups/$rgname>/providers/microsoft.insights/components/$name</ApplicationInsightsResourceId>
<ApplicationInsightsAnnotationResourceId>/subscriptions/$guid/resourcegroups/$rgname/providers/microsoft.insights/components/$name</ApplicationInsightsAnnotationResourceId>
Run Code Online (Sandbox Code Playgroud)
我已经省略了一些信息 - $guid是Azure订阅GUID, $rgname并且$name分别是给Application Insights资源组和资源的名称.
每个元素之间有什么区别?他们似乎有相同的信息.
如果我想将遥测发送到差异环境中的不同Application Insights资源,文档告诉我需要在代码中为每个环境设置检测密钥 - 这很好 - 但是这些设置呢?它们是否用于驱动Visual Studio中的上下文相关菜单选项以外的任何其他内容?我是否需要在其他环境中担心它们?
我有可能失败的 Azure 函数(Http 触发器)。我还为它配置了 Application Insights。
如果出现错误(哪个更好):
Application Insight 能够记录异常。我真的没有看到同时记录错误和抛出异常的意义。
指导方针是什么?什么是好的做法?
我正在向我的资源组添加 Azure 应用程序服务计划。我希望它成为 .NET Core 3 Web API 的 Linux 主机。此外,我想使用 Application Insights。但是,在使用 Azure 门户时,将 Application Insights 添加到 Linux .NET Core 3 应用程序的选项呈灰色显示。Application Insights 目前不支持。我有另一个 Linux Web 应用程序,它在运行时使用 Node LTS,这使我可以毫无问题地添加 Application Insights。将 Application Insights 添加到在 Azure Linux Web 应用程序中运行的 .NET Core 3 Web API 是否需要做一些特殊的事情?
azure azure-resource-manager azure-application-insights azure-web-app-service
我想知道应用程序见解如何与cookie一起使用,因为我想了解用户和会话跟踪,所以我一直在研究和...
以下是该理论的简要介绍:
每当Application Insights SDK收到没有应用程序洞察用户跟踪cookie的请求(由Application Insights JS代码段设置)时,它将设置此cookie并启动新会话.(来自apmtips)
2.
UserTelemetryInitializer使用在用户浏览器中运行的Application Insights JavaScript检测代码生成的ai_user cookie中提取的值,更新所有遥测项目的User上下文的Id和AcquisitionDate属性.
SessionTelemetryInitializer更新所有遥测项的Session上下文的Id属性,其值从用户浏览器中运行的ApplicationInsights JavaScript检测代码生成的ai_session cookie中提取.(来自azure文档(使用ApplicationInsights.config配置Application Insights SKD))
所以有两个cookie:ai_session和ai_user.
这是我的问题:
试图删除它们我使用ASP.NET Web应用程序使用Web Api的默认模板创建了一个项目,其中包括MVC和Web Api.
做研究我发现这种方法禁用它们但我没有任何WebSessionTrackingTelemetryModule.所以我注释掉了"UserTelemetryInitializer"和"SessionTelemetryInitializer",这就是我所拥有的:
<TelemetryInitializers>
<Add Type="Microsoft.ApplicationInsights.Extensibility.Web.SyntheticTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />
<Add Type="Microsoft.ApplicationInsights.Extensibility.Web.ClientIpHeaderTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />
<Add Type="Microsoft.ApplicationInsights.Extensibility.Web.UserAgentTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />
<Add Type="Microsoft.ApplicationInsights.Extensibility.Web.OperationNameTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />
<Add Type="Microsoft.ApplicationInsights.Extensibility.Web.OperationIdTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />
<!--<Add Type="Microsoft.ApplicationInsights.Extensibility.Web.UserTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" />-->
<!--<Add Type="Microsoft.ApplicationInsights.Extensibility.Web.SessionTelemetryInitializer, Microsoft.ApplicationInsights.Extensibility.Web" …Run Code Online (Sandbox Code Playgroud) azure-application-insights ×10
azure ×4
c# ×4
asp.net ×2
asp.net-core ×1
asp.net-mvc ×1
json ×1
json.net ×1
profiler ×1