如何忽略 Skylight 中的许多端点?
How can I ignore many endpoints in Skylight?
Skylight allows you to ignore a list of endpoints by specifying them in your skylight.yml
(see Ignoring heartbeat endpoints)。但是这个列表不支持通配符,我有 很多 个端点我想忽略——我该怎么办?
这是一个解决方案——创建一个 Rake 任务以动态生成您要忽略的端点列表:
task generate_ignored_endpoints_list_for_skylight: :environment do
Rails.application.eager_load!
ParentController.descendants.flat_map do |controller_class|
controller_class.action_methods.map do |method_name|
"#{controller_class.name}##{method_name}"
end
end.each do |name|
puts name
end
end
如果您要忽略的端点分组在父控制器下(例如,Admin::ApplicationController
,如果您使用 Administrate),这将很有效。
Skylight allows you to ignore a list of endpoints by specifying them in your skylight.yml
(see Ignoring heartbeat endpoints)。但是这个列表不支持通配符,我有 很多 个端点我想忽略——我该怎么办?
这是一个解决方案——创建一个 Rake 任务以动态生成您要忽略的端点列表:
task generate_ignored_endpoints_list_for_skylight: :environment do
Rails.application.eager_load!
ParentController.descendants.flat_map do |controller_class|
controller_class.action_methods.map do |method_name|
"#{controller_class.name}##{method_name}"
end
end.each do |name|
puts name
end
end
如果您要忽略的端点分组在父控制器下(例如,Admin::ApplicationController
,如果您使用 Administrate),这将很有效。