Class: MetricsMonitor::Agent
- Inherits:
-
Object
- Object
- MetricsMonitor::Agent
- Defined in:
- lib/metrics_monitor/agent.rb
Constant Summary collapse
- HEADER_ALLOW_ORIGIN =
"Access-Control-Allow-Origin"
Instance Method Summary collapse
-
#initialize ⇒ Agent
constructor
A new instance of Agent.
Constructor Details
#initialize ⇒ Agent
Returns a new instance of Agent.
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/metrics_monitor/agent.rb', line 9 def initialize @config = MetricsMonitor.config @collector = @config.collector @logger = Rails.logger @server = WEBrick::HTTPServer.new({ BindAddress: @config.bind, Port: @config.port, }) @server.mount_proc("/") do |req, res| response_text(res, "ok") end @server.mount_proc("/metrics") do |req, res| metrics = @collector.collect response_text(res, JSON.generate(metrics)) end @server.mount_proc("/metrics/meta") do |req, res| = @collector. response_text(res, JSON.generate()) end @thread = Thread.new do @logger.info "Start MetricsMonitor::Agent #{@config.bind}:#{@config.port}" @server.start end at_exit do @server.shutdown if @thread.alive? @thread.wakeup @thread.join end end end |