Sha256: b3d4a09f5da8e41af3fd05b48b4a48aebe6df759910b127a827c7008d71c14b7

Contents?: true

Size: 1.29 KB

Versions: 5

Compression:

Stored size: 1.29 KB

Contents

# encoding: utf-8

require "tunemygc/tunemygc_ext"
require "tunemygc/interposer"
require "tunemygc/snapshotter"
require "logger"

module TuneMyGc
  MUTEX = Mutex.new

  attr_accessor :logger, :interposer, :snapshotter

  def booted
    TuneMyGc.interposer.install
  end

  def processing_started
    snapshot(:PROCESSING_STARTED)
  end

  def processing_ended
    snapshot(:PROCESSING_ENDED)
    interposer.check_uninstall
  end

  def snapshot(stage, meta = nil)
    snapshotter.take(stage, meta)
  end

  def raw_snapshot(snapshot)
    snapshotter.take_raw(snapshot)
  end

  def log(message)
    logger.info "[TuneMyGC] #{message}"
  end

  def spy
    TuneMyGc::Spies.current
  end

  def reccommendations
    MUTEX.synchronize do
      require "tunemygc/syncer"
      syncer = TuneMyGc::Syncer.new
      config = syncer.sync(snapshotter)
      require "tunemygc/configurator"
      TuneMyGc::Configurator.new(config).configure
    end
  rescue Exception => e
    log "Config reccommendation error (#{e.message})"
  end

  extend self

  MUTEX.synchronize do
    begin
      require 'mono_logger'
      self.logger = MonoLogger.new($stdout)
    rescue LoadError
      self.logger = Logger.new($stdout)
    end
    self.interposer = TuneMyGc::Interposer.new
    self.snapshotter = TuneMyGc::Snapshotter.new
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tunemygc-1.0.28 lib/tunemygc/agent.rb
tunemygc-1.0.27 lib/tunemygc/agent.rb
tunemygc-1.0.26 lib/tunemygc/agent.rb
tunemygc-1.0.25 lib/tunemygc/agent.rb
tunemygc-1.0.24 lib/tunemygc/agent.rb