module Deimos
Constants
- VERSION
Public Instance Methods
application()
click to toggle source
# File lib/deimos.rb, line 34 def application @application ||= Rack::Builder.new do Deimos.middleware.each { |m| use m } run Rack::URLMap.new(Deimos.applications) end end
applications()
click to toggle source
# File lib/deimos.rb, line 59 def applications load! unless loaded? @applications ||= { "/status" => Deimos::Endpoints::Status.new(status: status), "/metrics" => Deimos::Endpoints::Metrics.new(metrics: metrics) }.merge(config.applications) end
boot!()
click to toggle source
# File lib/deimos.rb, line 23 def boot! Thread.new do ::Rack::Handler::WEBrick.run(application, { Host: Deimos.config.bind, Port: Deimos.config.port, Logger: Deimos.logger, AccessLog: [] }) end end
config()
click to toggle source
# File lib/deimos.rb, line 41 def config @config ||= OpenStruct.new.tap do |x| x.log_level = ENV.fetch("LOG_LEVEL", ::Logger::INFO) x.port = ENV.fetch("PORT", 5000) x.bind = ENV.fetch("BIND_IP", "0.0.0.0") x.applications = {} x.middleware = [] end end
configure() { |config| ... }
click to toggle source
# File lib/deimos.rb, line 51 def configure yield(config) end
load!()
click to toggle source
# File lib/deimos.rb, line 80 def load! require 'deimos/endpoints/status' require 'deimos/endpoints/metrics' @loaded = true end
loaded?()
click to toggle source
# File lib/deimos.rb, line 86 def loaded? @loaded end
logger()
click to toggle source
# File lib/deimos.rb, line 76 def logger @logger ||= Huyegger::Logger.new(::Logger.new(STDOUT).tap {|x| x.level = config.log_level}) end
metrics()
click to toggle source
# File lib/deimos.rb, line 72 def metrics @metrics ||= Deimos::Metrics::Manager.new end
middleware()
click to toggle source
# File lib/deimos.rb, line 55 def middleware @middleware ||= [Rack::Deflater, Deimos::Logger] | config.middleware end
status()
click to toggle source
# File lib/deimos.rb, line 68 def status @status ||= Deimos::Status::Manager.new end