Microsoft 近期在一个博客帖子中宣布了支持 Application Insights 的 Azure Functions 初步预览版。这两个服务的集成,使得开发人员不仅可以使用内建的代码性能测量(Instrumentation),并通过一个门户网页查看代码的性能趋势,而且可以设置用于生成通知或调出外部 Webhook 的监控阈值。
当前,Application Insights 集成特性仅在 Azure Functions 的“Beta”版中可用,并不推荐用于生产环境的 Azure Functions App 中。在一个 GitHub 页面中,Azure Functions 团队的项目经理 Chris Anderson 概括了该 Azure Functions 预览版的目标:
该初步预览版的目标是在四月份更大范围内发布预览版之前,最大程度上对全新的体验进行测试、探索并取得突破。
启用该新特性非常简单。开发人员只需创建一个 General Application Insights 实例,获得性能测量键值(Instrumentation Key),然后更新其 Azure Functions App 的应用设置,添写APPINSIGHTS_INSTRUMENTATIONKEY
键的信息,并将FUNCTIONS_EXTENSION_VERSION
键设为“beta”。
图片来源: https://blogs.msdn.microsoft.com/appserviceteam/2017/04/06/azure-functions-application-insights/
一旦设置了应用的键 / 值对信息,开发人员就可以查看多种遥测特性,包括 Live Stream、Metrics Explorer、Failures、Performance、Servers、Analytica 和 Alerts。开发人员还可以使用.NET App Insights SDK 自定义一些可被发现的遥测特性,然后通过 TelemetryClient 添加到 Application Insights 中。Node.js 开发人员也可使用 App Insights Node.js SDK。
Live Stream
当点击 Live Stream 视图时,开发人员会在 Application Insights 的门户网页上看到一个近实时视图,其中显示了他们的 Functions App 性能。数据浮现在 Live Stream 上,其中包括 Incoming Requests、Outgoing Requests、Overall Health 和 Server 计数器。
图片来源: https://blogs.msdn.microsoft.com/appserviceteam/2017/04/06/azure-functions-application-insights/
性能分析
Function Apps 在启用了 Application Insights 集成特性后, 将会在 Requests、Exceptions、Traces、PerformanceMetrics、CustomEvents 和 CustomMetrics 等表中发布数据。开发人员可以使用一种称为 AIQL 的语言,在 Application Insights 门户网页中编写类 SQL 查询。定制的查询将会去查询在针对应用而采集的数据,查询结果以表格、图表和曲线图等的方式展示。
报警功能
在应用的性能发生改变时,可使用 Application Insights 提供的报警功能。Application Insights 可生成三类报警:
- 度量报警:一旦度量超过某个阈值一段时间后,就进行报警。度量可以是响应时间、例外计数、CPU 占用率或访问量等。
- Web 测试:一旦站点在因特网上不可访问,或是响应迟缓,就进行报警。
- 前瞻诊断:对异常的性能模式进行报警。它是自动配置的。
通过配置 Webhook,或是通过调用 Azure Logic Apps,可以实现在其它系统中触发报警。Azure Logic Apps 是一个集成平台即服务(iPaaS,Integration Platform as a Service),提供了对一些第三方 SaaS 应用的连接器,包括 Twilio、PagerDuty 和 SendGrid 等。
图片来源: https://docs.microsoft.com/en-us/azure/application-insights/app-insights-alerts
查看英文原文: Microsoft Adds Application Insights Support for Azure Functions
感谢张卫滨对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们。
评论