我是否应该为每个系统应用程序或每个环境提供应用程序洞察资源?

时间:2016-01-14 21:57:44

标签: asp.net-mvc azure azure-application-insights

我的系统由2个WebApi个应用,1个MVC / WebApi应用组成,用作STS,主要MVC网站加载angular。这些将托管在azure中。我应该为每个环境中的每个组件提供1 AppInsights个资源(4个应用程序* 3个env = 12个AppInsights资源)或者我应该只为每个环境设置一个并在所有环境中共享密钥在一个环境中使用不同的应用程序,以便我的所有遥测都以一个“桶”结束?

如果拥有遥测/分析经验的人可以提供一些意见,那将会有很大的帮助。

1 个答案:

答案 0 :(得分:0)

取决于你,而且相当主观。需要考虑的事项:

  • 这实际上取决于您希望能够一起分析的数据。如果您希望能够通过所有图层跟踪相同的用户/请求,您可以为所有图层使用一个资源,并通过所有请求/等传递类似相关ID的内容,以便能够看到一些波纹通过所有层次。跨资源/跨资源进行分析很复杂,通常需要使用连续导出和门户外的其他工具

  • 但是,如果不同的团队拥有不同的层,他们可能希望以不同的方式进行遥测,因此他们可能都想要自己的“应用程序”。

  • 每个应用程序允许拥有的不同命名自定义属性和指标的数量是有限制的(目前每个应用程序有200个?),所以如果将它们全部混合在一起,则可能会耗尽自定义属性很快。

  • 每个应用程序还有限制限制,每个应用程序可以拥有的网络测试数量限制。因此,如果您只为所有环境/图层使用一个应用程序,并且其中一个图层发疯,它可能会限制您的所有数据,并且您可能会失去遥测,直到疯狂消失并且该组件的限制被取消。

  • 如果你的案例中的“环境”是dev / test / staging / prod,你可能希望那些是分开的,因此来自开发人员做随机崩溃的事情的数据不会污染你的生产遥测。

  • 如果环境真的是“实例”,那么你可能想要单独的应用程序,但是理想情况下每个实例的遥测应该识别自己,这样你就可以过滤/分组到看一个特定的实例是否正在做一些与众不同的事情