Sha256: ed42b4415370a1f745890aea27bf60c4e8debc43605a686f1f2eee90f0100a9c

Contents?: true

Size: 915 Bytes

Versions: 6

Compression:

Stored size: 915 Bytes

Contents

require File.expand_path('../common', __FILE__)
init_environment()

require 'fiber'

Drone::init_drone()
Drone::register_gauge("cpu:0/user"){ rand(200) }

class User
  include Drone::Monitoring
  
  def initialize(name)
    @name = name
  end
  
  monitor_rate("users:rename:rate")
  def rename(new_name)
    @name = new_name
  end
  
  monitor_time("users:do_something:time")
  monitor_rate("users:do_something:rate")
  def do_something
    fb = Fiber.current
    EM::add_timer(1){ fb.resume() }
    Fiber.yield
  end
end

Drone::add_output(:console, 1)

EM::run do
  Drone::start_monitoring()
  
  counter1 = Drone::register_counter("something_counted")
  counter1.increment()
  
  a = User.new("bob")
  
  EM::add_periodic_timer(2) do
    rand(100).times{|n| a.rename("user#{n}") }
    counter1.increment()
  end
  
  EM::add_periodic_timer(2) do
    Fiber.new do
      a.do_something()
    end.resume
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
drone-1.0.10 examples/simple.rb
drone-1.0.9 examples/simple.rb
drone-1.0.8 examples/simple.rb
drone-1.0.7 examples/simple.rb
drone-1.0.6 examples/simple.rb
drone-1.0.5 examples/simple.rb