mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 04:57:51 +00:00 
			
		
		
		
	* feat: add chatwoot instance status in superadmin * feat: add redis metrics to instance health page * chore: fix rubocop * chore: rescue redis no connection * chore: add rspec * chore: refactor * feat: add instance health to /api * chore: rescue postgres * chore: fix spec
		
			
				
	
	
		
			26 lines
		
	
	
		
			643 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			643 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
class ApiController < ApplicationController
 | 
						|
  skip_before_action :set_current_user, only: [:index]
 | 
						|
 | 
						|
  def index
 | 
						|
    render json: { version: Chatwoot.config[:version],
 | 
						|
                   timestamp: Time.now.utc.to_formatted_s(:db),
 | 
						|
                   queue_services: redis_status,
 | 
						|
                   data_services: postgres_status }
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def redis_status
 | 
						|
    r = Redis.new(Redis::Config.app)
 | 
						|
    return 'ok' if r.ping
 | 
						|
  rescue Redis::CannotConnectError
 | 
						|
    'failing'
 | 
						|
  end
 | 
						|
 | 
						|
  def postgres_status
 | 
						|
    ActiveRecord::Base.connection.active? ? 'ok' : 'failing'
 | 
						|
  rescue ActiveRecord::ConnectionNotEstablished
 | 
						|
    'failing'
 | 
						|
  end
 | 
						|
end
 |