前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP.NET Core 本地调试时如何禁用Application Insights

ASP.NET Core 本地调试时如何禁用Application Insights

作者头像
Edi Wang
发布2019-07-09 10:01:10
1.1K0
发布2019-07-09 10:01:10
举报
文章被收录于专栏:汪宇杰博客汪宇杰博客

微软智能云Azure的Application Insights服务是一种应用程序监控系统,给运维带来了极大的方便。但有时候会遇到一些小麻烦,我们来看看如何解决。

我遇到的问题是,ASP.NET Core应用安装了Application Insights服务以后,默认情况下竟然是不区分环境的。这会导致本地开发调试代码的时候,有大量无用的监控数据,比如错误、异常、程序响应时间等,被发送到了Azure,和生产上的监控数据合并到了一起。而本地的这些数据,其实是对生产环境的污染,容易让Azure的智能监测服务误判,从而给运维人员发假警报。所以我需要一种方式,能够禁用本地的Application Insights监控,只有上线以后才启动。

(Debug时候产生的监控数据)

调教 VS2017

Tools > Options > Project and Solutions > Web Projects 下面,勾选 Disable local Application Insights for Asp.Net Core web projects.

代码更改

首先,在开发环境使用的appsettings.Development.json里,用空GUID覆盖InstrumentationKey

"ApplicationInsights": {

"InstrumentationKey": "00000000-0000-0000-0000-000000000000"

}

打开Startup.cs,把以下代码插入Configure()方法的下面:

if (env.IsDevelopment())

{

TelemetryConfiguration.Active.DisableTelemetry = true;

TelemetryDebugWriter.IsTracingDisabled = true;

//...

}

Application Insights的前端JS库,可以用environment标签忽略掉本地环境

<environment exclude="Development">

@Html.Raw(JavaScriptSnippet.FullScript)

</environment>

现在,本地跑一下应用,可以看到诊断工具里已经没有Application Insights的消息了。

稍等一段时间(比如我的监控图表周期是24小时)。现在你的生产环境监控数据就不会混进奇怪的东西啦~

原先Application map里会出现localhost,现在也没有了,证明我们的调整成功了!

参考资料:https://stackoverflow.com/questions/32057441/disable-application-insights-in-debug

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 汪宇杰博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档