mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-04 04:57:51 +00:00 
			
		
		
		
	- Fix git-hash in super admin instance health page for Heroku installations - Fix git boundary not set error for docker/heroku deployments which remove .git directory
		
			
				
	
	
		
			60 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
class SuperAdmin::InstanceStatusesController < SuperAdmin::ApplicationController
 | 
						|
  def show
 | 
						|
    @metrics = {}
 | 
						|
    chatwoot_version
 | 
						|
    sha
 | 
						|
    postgres_status
 | 
						|
    redis_metrics
 | 
						|
    chatwoot_edition
 | 
						|
    instance_meta
 | 
						|
  end
 | 
						|
 | 
						|
  def chatwoot_edition
 | 
						|
    @metrics['Chatwoot edition'] = if ChatwootApp.enterprise?
 | 
						|
                                     'Enterprise'
 | 
						|
                                   elsif ChatwootApp.custom?
 | 
						|
                                     'Custom'
 | 
						|
                                   else
 | 
						|
                                     'Community'
 | 
						|
                                   end
 | 
						|
  end
 | 
						|
 | 
						|
  def instance_meta
 | 
						|
    @metrics['Database Migrations'] = ActiveRecord::Base.connection.migration_context.needs_migration? ? 'pending' : 'completed'
 | 
						|
  end
 | 
						|
 | 
						|
  def chatwoot_version
 | 
						|
    @metrics['Chatwoot version'] = Chatwoot.config[:version]
 | 
						|
  end
 | 
						|
 | 
						|
  def sha
 | 
						|
    @metrics['Git SHA'] = GIT_HASH
 | 
						|
  end
 | 
						|
 | 
						|
  def postgres_status
 | 
						|
    @metrics['Postgres alive'] = if ActiveRecord::Base.connection.active?
 | 
						|
                                   'true'
 | 
						|
                                 else
 | 
						|
                                   'false'
 | 
						|
                                 end
 | 
						|
  end
 | 
						|
 | 
						|
  def redis_metrics
 | 
						|
    r = Redis.new(Redis::Config.app)
 | 
						|
    if r.ping == 'PONG'
 | 
						|
      redis_server = r.info
 | 
						|
      @metrics['Redis alive'] = 'true'
 | 
						|
      @metrics['Redis version'] = redis_server['redis_version']
 | 
						|
      @metrics['Redis number of connected clients'] = redis_server['connected_clients']
 | 
						|
      @metrics["Redis 'maxclients' setting"] = redis_server['maxclients']
 | 
						|
      @metrics['Redis memory used'] = redis_server['used_memory_human']
 | 
						|
      @metrics['Redis memory peak'] = redis_server['used_memory_peak_human']
 | 
						|
      @metrics['Redis total memory available'] = redis_server['total_system_memory_human']
 | 
						|
      @metrics["Redis 'maxmemory' setting"] = redis_server['maxmemory']
 | 
						|
      @metrics["Redis 'maxmemory_policy' setting"] = redis_server['maxmemory_policy']
 | 
						|
    end
 | 
						|
  rescue Redis::CannotConnectError
 | 
						|
    @metrics['Redis alive'] = false
 | 
						|
  end
 | 
						|
end
 |