通过 Ruby 代理 API 进行自定义检测和异常跟踪

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

跟踪其他方法:

默认情况下,Ruby 代理仅捕获框架类,如控制器、数据库查询和视图。您可以使用自定义检测来监控其他特定于应用程序的方法。 

首先,指定要在应用程序初始化程序中检测的方法,如下所示。然后在config/initializers/ 下 创建一个名为 s247_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

输出:

APM > 应用程序/实例 > Web 事务 > 跟踪

custom instrumentation

通过 API 跟踪异常

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

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

语法:

require 'agent/api/custom_tracker'

APMInsight::API::CustomTracker.trackException(exception_object)

 

示例:

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

输出:

APM > 应用程序/实例 > Web 事务 > 跟踪

custom instrumentation