Java运行时监控,第1部分: Java系统运行时性能和可用性监控 - 编程入门网
Network Management Protocol,SNMP)或 Telnet。对于推断 PDS,收集器用于执行和测定底层操作。
跟踪和跟踪程序 跟踪是收集器向核心 APM 系统交付测量数据的流程。许多商业和开源 APM 系统都提供了一些用于此目的的 API。对于本文中的示例,我实现了一个通用的 Java 跟踪程序接口,将在下节详细讨论。 通常,大多数 APM 系统将跟踪程序提交的数据组织到某种分类的层次结构中。图 2 展示了该数据捕获的一般流程: 图 2. 收集、跟踪和 APM 系统 图 2 还展示了 APM 系统提供的常用服务: 实时显示:近乎实时显示选定指标的图表。 报告:生成的指标活动报告。这通常包括一系列固定报告和自定义报告,并能导出数据供用户在别处使用。 历史库:包含原始或汇总指标的历史数据库,从而能够查看特定时间范围内的图表和报告。 报警:将收集指标确定的具体条件通知相关个体或组的功能。典型的报警方法是电子邮件和某种类型的自定义钩子接口,可以允许运营小组将事件传播给事件处理系统。 公共跟踪 API 在 APM 的目标环境中的实现和应用提供了一些一致性。此外,自定义收集器的目的是让开发人员能够专心获取性能数据,而不必担心跟踪的问题。下一节将介绍解决此问题的 APM 跟踪接口。 ITracer:跟踪程序接口 Java运行时监控,第1部分: Java系统运行时性能和可用性监控(4)时间:2011-02-13 IBM Nicholas WhiteheadJava 语言可以很好地充当收集器的实现语言,因为: 广泛的平台支持。Java 收集器类可以在大多数目标平台上运行,而无需修改。这使监控架构可以在本地灵活地使用 PDS 合并收集器进程,而不需要使用远程收集。 出色的性能(但是会随可用资源而变化)。 健壮的并发和同步执行支持。 支持一组丰富的通信协议。 受第三方 API 的广泛支持,比如 JDBC 实现、SNMP 和专用 Java 接口,因而能支持多种收集器库。 受活跃开源社区的支持,它提供了额外的工具和接口,使语言能访问或获取大量来源的数据。 但是,有一点需要注意,您的 Java 收集器必须能够与目标 APM 系统提供的跟踪 API 相结合。如果您的 APM 跟踪机制未提供 Java 接口,则它的一些模式将仍然适用。但是,如果目标 PDS 只基于 Java(如 JMX),而应用程序平台并不基于 Java,则需要一个桥接接口(如 IKVM)和一个 Java-to-.NET 编译器(请参阅 参考资料)。 当缺少官方标准时,不同 APM 产品提供的跟踪 API 也全然不同。因此,我通过实现一个通用的跟踪 Java 接口(名称为 org.runtimemonitoring.tracing.ITracer)抽象了此问题。ITracer 接口是针对专用跟踪 API 的一个通用包装器。此技巧将确保源代码库不会因版本或 API 提供程序而有所不同,并且还支持实现包装 API 中不可用的额外功能。本文中的大多数其余示例都实现了 ITracer 接口和它所支持的一般底层概念。 图 3 是 org.runtimemonitoring.tracing.ITracer 接口的 UML 类图: 图 3. ITracer 接口和工厂类 跟踪类别和名称 ITracer 的基本前提是向中央 APM 系统提交一个度量和相关的名称。此活动由 trace 方法实现,该方法因提交的度量而有所不同。各 trace 方法都接受一个 String[] name 参数,其中包含复合名称的上下文组件,其结构特定于 APM 系统。复合名称向 APM 系统指示提交的名称空间和实际的指标名称;因此,复合名称中通常至少包括根类别和度量说明。底层 ITracer 实现应该知道如何通过传递的 String[] 构建复合名称。表 1 演示了复合命名约定的两个示例: 表 1. 示例复合名称
|
||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |