自定义检测和异常跟踪


APM Insight Ruby Agent能够从多个应用程序框架中识别默认方法和类。该代理会自动跟踪已识别的方法和其他指标,但是在某些情况下,这些方法上的性能数据可能不足以调试问题。当您需要其他特定于应用程序的信息来解决问题时,可以使用我们的API来收集特定于应用程序的指标。

跟踪其他方法

默认情况下,Ruby Agent仅获取诸如Controllers,DB查询和Views之类的框架类。您可以使用自定义工具来监控其他特定于应用程序的方法。

首先,指定要在应用程序初始化程序中检测的方法,如下所示。然后 在config/initializers /下创建一个名为instrumentation.rb的新文件  。

这为您提供了深入的详细信息,以对应用程序的问题进行故障排除和调试。

语法:

require 'agent/api/custom_tracker'
MyClass.class_eval do
include ::APMInsight::API::CustomTracker
    track_method :my_method1
    track_method :my_method2
end

例:

require 'agent/api/custom_tracker'
ProjectsController.class_eval do
include ::APMInsight::API::CustomTracker
    track_method :get_internal
end

通过API跟踪异常

APM Insight Ruby Agent能够获取已知框架方法中发生的异常。但是,代理无法跟踪您的应用程序中发生的用户定义的异常。在这种情况下,您可以使用代理API通过代理将异常数据推送到Applications Manager服务器。 

首先,在必要时在应用程序中添加API。一旦启动应用服务器,代理将获取异常发生的情况,将它们与当前事务自动关联,并将这些异常推送到Applications Manager服务器。这有助于您从一个地方跟踪所有异常。

语法:

require 'agent/api/custom_tracker'

示例:

require 'agent/api/custom_tracker'
... # Other declarations and definitions
def find_value
begin
.... # some instructions
rescue => ex
APMInsight::API::CustomTracker.trackException(ex)
.... # rescue operations
end
end