Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(2) - 编程入门网
含所有标准图标类型。最常见的是折线图、多线图、条形图和饼图。一些图表通常是组合而成的,比如将条形图和折线图组合以显示两种不同类型数据的重叠情况。在另外一些情形中,一个折线图具有两条 y 轴,以便在同一个图表中表示数量差距较大的数据序列。绘制一个百分比值和一个标量值时通常属于这种情况,比如路由器上的 % CPU 利用率与传递的字节数。
在一些场景下,可以创建专门的小部件来以一种自定义方式表示数据,或者以一种直观的方式显示数据。例如,枚举的符号显示一个与监控目标状态一致的特定图标。因为状态通常由有限的值表示,使用图形表示有些大材小用了,所以可以采用一些类似交通灯的显示方式来表示,比如红色表示下降、黄色表示警告、绿色表示良好。另一个流行的小部件是刻度盘(通常表示为一种速度计)。我认为使用刻度盘浪费了屏幕空间,因为它们仅显示一个数据矢量,不包含历史记录。折线图既能显示相同的数据,还能够显示历史趋势。一个例外是,多指针的刻度盘能够显示高/低/当前状态等范围。但是在很大程度上,它们只能提供一种视觉上的吸引力,比如图 29 中的刻度盘,通过 “high/low/current” 显示了在过去一小时内每秒获得的数据库块缓冲区情况: 图 29. 示例刻度盘小部件 依我看来,可视化的好处在于信息密度高。屏幕空间是有限的,但我想要查看尽可能多的数据。可以通过多种方式来提高数据密度,但自定义图形表示是一种有趣的方式,它将多种维度的数据组合到一个小的****之中。图 30 展示了一种不错的示例,该示例来自一个已经退役的数据库监控产品: 图 30. Savant 缓存命中率显示 图 30 显示了与数据库缓冲命中率相关的一些数据矢量: Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(2)(19)时间:2011-02-13 IBM Nicholas Whitehead水平轴表示在缓存中找到的数据的百分比。 垂直轴表示当前的命中率。 X 表示命中率趋势。 灰色的圆圈(在这个图像中几乎看不见)表示标准偏差。灰色圆圈的直径越大,缓存性能的偏差就越大。 ****的球表示过去一小时内的缓存性能。 提高数据密度的第二种方法是 Sparkline,这是一种要求更低的方法。这个词是由数据可视化专家(参见 参考资料)根据 “嵌入到文字、数字和图像中的小型、高分辨率图形” 得出的。它通常用于显示大量的财务统计信息。尽管缺乏上下文,但它们的用途是显示跨许多指标的相对趋势。Sparkline 呈现器由 org.runtimemonitoring.spring.rendering.SparkLineRenderer 类实现,它为 Java 库实现开源的 Sparklines(参见 参考资料)。图 31 中演示了两个 Sparklines,展示了基于条和线的显示效果: 图 31. 显示 Apache 2 繁忙 worker 线程的 Sparklines 此处和附加的代码中列出的示例都非常简单,但一个 APM 系统显然需要更高级和详细的指示板。而且,大多数用户都不希望从头创建指示板。APM 系统通常拥有某种指示板生成器,允许用户查看或搜索可用指标的存储库,并挑选要嵌入到指示板中的指标以及应该显示的格式。图 32 显示了我使用 APM 系统创建的指示板的一部分: 图 32. 指示板示例 结束语 现在,本系列 已经全部结束了。我提供了一些指导、一些常见的性能监控技术,以及您能够实现的特定开发模式,可以使用这些模式增强或构建您自己的监控系统。收集和分析好的数据可以显著提高应用程序的正常运行时间和性能。我鼓励开发人员参与到监控生产应用程序的过程中来:要确定您编写的软件在负荷状态下运行时实际发生了什么,这是最好的信息来源。作为改进的一部分,这种反馈的价值不可估量。希望您的监控过程充满乐趣! 致谢 非常感谢 Sandeep Malhotra 在 Web 服务收集器方面提供的帮助。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |