GCP云计算监控服务Stackdriver Profiler终于支持Node.js和Python了

Google更新其云计算监控和日志服务Stackdriver的分析工具Profiler,这次除了添加支持Node.js和Python之外,用户现在还能加权过滤功能,针对最糟案例进行性能分析。

Stackdriver Profiler是Google在2018年春天推出的新服务,可以在不影响应用程序性能的情况下,分析正式环境中执行的应用程序性能。 Stackdriver Profiler利用交互式的火焰图(Flame Graph),显示相关函数调用的阶层结构与资源消耗,以帮助开发人员了解资源消耗的状况以及不同程序代码实例方式带来的差异。

Stackdriver Profiler刚上线时,已提供Java的CPU分析,以及Go语言的CPU和堆(Heap)分析,现在则增加了对Node.js和Python开发语言的支持,还有App Engine标准Java Runtime的支持。 Google提到,使用Profiler很简单,只要在应用程序中加入函数库,并且重新布署就可以了,如果是在App Engine的标准环境执行Java程序代码,使用Profiler会更简单,只需要在appengine- web.xml或app.yaml文件中激活后,再浏览GCP云计算控制台中的Stackdriver Profiler功能,就能看到程序代码执行的情况。

Google提到,许多工作负载都有突发性的高峰资源消耗现象,但Stackdriver Profiler原本的功能,只能了解应用程序的资源平均消耗,无助于整体提升性能,因此Stackdriver Profiler最新加权过滤功能,可以让用户轻​​松地找出资源消耗高峰的原因,进而让应用程序的运行变得顺畅。

 

用户可以使用加权过滤器,让Stackdriver Profiler只分析应用程序资源消耗尖峰数据,例如审查CPU时间时,选择前10%的权重,Profiler就只会分析捕捉到的前10%CPU消耗数据,剩下的90%数据将在图表中省略。

Profiler提供的火焰图可以供用户快速探索,单一程序代码路径调用的资源耗尽(Resource-hungry)函数,不过无法帮助用户识别整个程序代码中,局部优化函数对整体性能的影响。

 

现在用户只要点击过滤器左侧的放大镜按钮,就能审查其函数的资源使用情况,并进一步审查这些函数的资源使用状况以及图表呈现。这些信息在单独审查火焰图时,不见得能轻易的被观察出来。