微软为其监控平台 Visual Studio Application Insights 发布了一套 SDK,其中加入了对 ASP.NET 5 的支持。Application Insights 可分为两个主要的组件:Azure 门户用于展现数据,而 SDK 则提供了用于发送遥测(telemetry)事件的 API。
对依赖注入模式的支持在 ASP.NET 5 中得到了改进,它负责提供必要的数据,用于配置及发送遥测事件。为了了解此次发布的更多细节,我们与微软的高级开发主管 Sergey Kanzhelev 进行了一番交流,向他提出了几个相关的问题。
InfoQ**:在 ASP.NET 5中,有哪些重要的功能是你之前所无法做到的,例如在 ASP.NET 4中?**
Sergey Kanzhelev:ASP.NET 5 带来了大量的新特性,例如对依赖注入的原生支持、经过改进的请求处理管道、对非 Windows 平台的支持等等。这些框架方面的改进同样能够使 Application Insights 从中受益,不仅提高了可测试性,并且也简化了配置过程。
InfoQ**:此次发布的 SDK是否能够同时支持 Azure平台、以及非 Azure平台上的 ASP.NET 5网站?**
SK:没错,新的 SDK 将支持在 Azure 平台与非 Azure 平台上托管的 ASP.NET 5 网站。对于 Azure Web Apps(即从前的 Azure Web Sites),我们将计划进行更深入的集成,类似于我们之前对 ASP.NET 4 所做的工作。打个比方,你可以通过 Azure 门户在 Azure Web Apps 控制面板中对 Application Insights 的监控方式进行配置。
不仅如此,ASP.NET 5 还能够运行在 Linux 与 Mac 环境中,我们有一些客户已经开始在这些平台上运行 Application Insights 了。
InfoQ**:市面上有一些其它的监控工具也具备对 ASP.NET进行监控的能力,与之相比,Application Insights有哪些独特之处能够吸引用户呢?**
SK:Application Insights 的目的在于实现良好的 DevOps,即持续地改进你的应用。举例来说,我们将其设计为一个 SDK,而不是一个外部的代理。这意味着你可以在代码中调用这个 SDK 中的 API,追踪应用的使用情况与性能的详细信息。在你设计新的用户故事的同时,也要对用户如何使用这一用户故事的实际情况的监控方式进行设计,从而判断新的特性是否正常运行,以及如何进行改进。
当然,有许多功能是直接提供给用户的,无需编写一行代码就能够获得实用的结果。但我们强调的是让开发者完全掌控所发送的遥测事件,以获得所需的数据,从而打造出一款出色的产品。
InfoQ:在那篇博客帖子中,你写道“我们从根本上是将它当作一种开发工具来设计的……”。你能否详细地说明一下这句话的含义?为什么说它是一个开发工具,而不是一种用于管理负载的工具呢?
SK:作为一名开发者,我迫切地想知道如何编写、或重写我的代码,让它为用户带来更好的功能。我所感兴趣的是,哪些用户通过我的应用实现了他们的目标、又有哪些用户放弃了它、他们是否在使用时犯下了某些错误、应用的实际表现如何、以及他们经历了哪些用户体验的路径。通过 Application Insights,我可以直接找到某些问题的答案,并且还能够通过编写几行简短的代码而获得更多的细节。根据我所需的信息不同,我还能够任意地选择使用哪些模块。与之相反的是,用于运维目的的工具更多地专注于性能,例如每分钟完成多少条事务,却没有强调用户想要通过这个应用实现的目标。
如果想了解关于 ASP.NET 5 SDK 的更多信息,请参考 GitHub 上的项目文档与源代码。
查看英文原文: ASP.NET 5 Support for Visual Studio Application Insights
评论