帮助手册

通过 Ruby Agent API 进行自定义埋点和异常跟踪

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

跟踪其他方法

默认情况下,Ruby Agent 只捕获框架类,例如控制器(Controllers)、数据库查询(DB queries)和视图(Views)。您可以使用自定义埋点来监控其他应用特定的方法。

首先,在应用初始化器中指定需要埋点的方法(如下所示)。然后在 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 > Application/Instance > Web transactions > Traces

通过 API 跟踪异常

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

首先,在应用中需要的位置添加 API。应用服务器启动后,Agent 将在异常发生时捕获它们,自动将其与当前事务关联,并将这些异常推送到 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 > Application/Instance > Web transactions > Traces

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!