Ruby on rails 是否可以在另一个应用程序上显示一个应用程序的Sidekiq web仪表板?

Ruby on rails 是否可以在另一个应用程序上显示一个应用程序的Sidekiq web仪表板?,ruby-on-rails,sidekiq,Ruby On Rails,Sidekiq,从中,您可以使用以下方法保护当前rails服务器(例如,在端口3000上运行的localhost)上的sidekiq web dashboard路由: 在上执行经过身份验证的sidekiq仪表板路线的典型方法 我想使用另一个Rails应用程序访问Sidekiq仪表板(而不是运行Sidekiq的Rails应用程序): 是否可以执行以下操作: 应用程序1-rails服务器中:(运行Sidekiq并收集数据的服务器) 应用程序2-在rails服务器中(我希望捕获Sidekiq数据的单独服务器,并且仍然

从中,您可以使用以下方法保护当前rails服务器(例如,在端口3000上运行的localhost)上的sidekiq web dashboard路由:

在上执行经过身份验证的sidekiq仪表板路线的典型方法

我想使用另一个Rails应用程序访问Sidekiq仪表板(而不是运行Sidekiq的Rails应用程序):

是否可以执行以下操作:

应用程序1-rails服务器中:(运行Sidekiq并收集数据的服务器)

应用程序2-在rails服务器中(我希望捕获Sidekiq数据的单独服务器,并且仍然保护可以查看仪表板的用户的访问)

我认为这不是基于我对安装Rails引擎和Sidekiq仪表板的理解。我的另一个想法是,如果我想将数据从端口3000(Sidekiq stats正在运行并收集数据的地方)上的服务器传递到另一台服务器,我可以使用Sidekiq的API

编辑:


是否也可以从应用程序2监视多个Rails应用程序?(本地主机:5000服务器)

您可以在应用程序2中保留装载(假定您在该应用程序中进行了身份验证):

并将
REDIS\u URL
环境变量指向目标应用程序的REDIS URL。(此机制在您的运行时环境中变化很大。)您还需要确保所有防火墙都允许此流量通过,等等


安装可确保监控界面在应用程序2中可用,并将其指向应用程序1中的Redis实例可确保访问正确的统计数据。

我的应用程序中也有类似的要求,该应用程序具有多个微服务。有两个服务使用不同的sidekiq实例。要求使用单个仪表板来访问sidekiq信息

我处理它的方法是为两个sidekiq实例使用一个redis数据库,并通过在服务名称前面加前缀来重命名队列,以便我们可以轻松地识别哪个队列属于哪个服务

我们仍然会有两个sidekiq进程在不同的端口上运行,但会写入同一个redis数据库。整个sidekiq仪表板由redis数据库提供动力,因此只要您使用相同的数据库,您就可以访问这两个sidekiq进程


如果我想让应用程序1监控除应用程序2之外的其他应用程序,我是否需要多个REDIS_URL变量?Sidekiq web如何知道监视哪一个?@Nona棘手!在一个进程中监视多个sidekiq可能是不可能的(我还没有看过),但在一个box/VM/server上就可以了。这可能值得提一个单独的问题。再仔细检查一下,这意味着我必须为我想要监控的每个应用程序创建一个“监控应用程序”(如应用程序2)?@Nona你的解释是正确的。虽然Sidekiq::Web不是资源密集型的,但是应该可以在一台机器上共同定位监控应用程序。谢谢Jim,我想您可能有兴趣知道Sidekiq PRO允许您装载多个Sidekiq Web实例-
# config/routes.rb
authenticate :user, lambda { |u| u.admin? } do
  mount Sidekiq::Web => '/sidekiq'
end
# config/routes.rb
mount Sidekiq::Web => 'http://localhost:5000/sidekiq'
# config/routes.rb
authenticate :user, lambda { |u| u.admin? } do
  get '/sidekiq'
end
# config/routes.rb
authenticate :user, lambda { |u| u.admin? } do
  mount Sidekiq::Web => '/sidekiq'
end