Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
language: ruby
rvm:
- 2.2.0
install: gem install rubocop haml-lint
install:
- gem install rubocop haml-lint
- gem install mocha
script:
- rubocop
- rake test
8 changes: 8 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
require 'rake/testtask'

Rake::TestTask.new do |t|
t.libs << 'test'
end

desc 'Run tests'
task default: :test
2 changes: 1 addition & 1 deletion config/agent.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#all are configurable using environment variables
logLocation: #absolute path of log file. leave blank for default location in the gem directory. environment variable: NETUITIVE_RUBY_LOG_LOCATION
logAge: daily #Number of old log files to keep, or frequency of rotation (daily, weekly or monthly). environment variable: NETUITIVE_RUBY_LOG_AGE
logSize: #Maximum logfile size (only applies when shift_age is a number). environment variable: NETUITIVE_RUBY_LOG_SIZE
logSize: #Maximum logfile size in bytes (only applies when shift_age is a number). environment variable: NETUITIVE_RUBY_LOG_SIZE
debugLevel: info #options (in ascending order of debugness) are: error, info, debug. environment variable: NETUITIVE_RUBY_DEBUG_LEVEL
netuitivedAddr: localhost #environment variable: NETUITIVE_RUBY_NETUITIVED_ADDR
netuitivedPort: 8875 #environment variable: NETUITIVE_RUBY_NETUITIVED_PORT
8 changes: 4 additions & 4 deletions lib/netuitive/netuitive_ruby_logger.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ def info(message)
end
end

class NetuitiveLogger
class RubyNetuitiveLogger
class << self
attr_reader :log
def setup
file = ConfigManager.property('logLocation', 'NETUITIVE_RUBY_LOG_LOCATION', "#{File.expand_path('../../..', __FILE__)}/log/netuitive.log")
age = ConfigManager.property('logAge', 'NETUITIVE_RUBY_LOG_AGE', 'daily')
size = ConfigManager.property('logSize', 'NETUITIVE_RUBY_LOG_SIZE', nil)
file = RubyConfigManager.property('logLocation', 'NETUITIVE_RUBY_LOG_LOCATION', "#{File.expand_path('../../..', __FILE__)}/log/netuitive.log")
age = RubyConfigManager.property('logAge', 'NETUITIVE_RUBY_LOG_AGE', 'daily')
size = RubyConfigManager.property('logSize', 'NETUITIVE_RUBY_LOG_SIZE', nil)
@log = Logger.new(file, age, size)
rescue
puts 'netuitive unable to open log file'
Expand Down
26 changes: 13 additions & 13 deletions lib/netuitive/ruby_config_manager.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
require 'netuitive/netuitive_ruby_logger'
require 'yaml'
class ConfigManager
class RubyConfigManager
class << self
attr_reader :netuitivedAddr

Expand Down Expand Up @@ -56,18 +56,18 @@ def read_config
@netuitivedAddr = property('netuitivedAddr', 'NETUITIVE_RUBY_NETUITIVED_ADDR')
@netuitivedPort = property('netuitivedPort', 'NETUITIVE_RUBY_NETUITIVED_PORT')
debugLevelString = property('debugLevel', 'NETUITIVE_RUBY_DEBUG_LEVEL')
NetuitiveLogger.log.level = if debugLevelString == 'error'
Logger::ERROR
elsif debugLevelString == 'info'
Logger::INFO
elsif debugLevelString == 'debug'
Logger::DEBUG
else
Logger::ERROR
end
NetuitiveLogger.log.info "port: #{@netuitivedPort}"
NetuitiveLogger.log.info "addr: #{@netuitivedAddr}"
NetuitiveLogger.log.debug "read config file. Results:
RubyNetuitiveLogger.log.level = if debugLevelString == 'error'
Logger::ERROR
elsif debugLevelString == 'info'
Logger::INFO
elsif debugLevelString == 'debug'
Logger::DEBUG
else
Logger::ERROR
end
RubyNetuitiveLogger.log.info "port: #{@netuitivedPort}"
RubyNetuitiveLogger.log.info "addr: #{@netuitivedAddr}"
RubyNetuitiveLogger.log.debug "read config file. Results:
netuitivedAddr: #{@netuitivedAddr}
netuitivedPort: #{@netuitivedPort}
debugLevel: #{debugLevelString}"
Expand Down
10 changes: 5 additions & 5 deletions lib/netuitive_ruby_api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,16 @@ def server_interaction
begin
yield
rescue => e
NetuitiveLogger.log.error "unable to connect to netuitived: message:#{e.message} backtrace:#{e.backtrace}"
RubyNetuitiveLogger.log.error "unable to connect to netuitived: message:#{e.message} backtrace:#{e.backtrace}"
end
end
end
end
end

ConfigManager.load_config
NetuitiveLogger.setup
ConfigManager.read_config
SERVER_URI = "druby://#{ConfigManager.netuitivedAddr}:#{ConfigManager.netuitivedPort}".freeze
RubyConfigManager.load_config
RubyNetuitiveLogger.setup
RubyConfigManager.read_config
SERVER_URI = "druby://#{RubyConfigManager.netuitivedAddr}:#{RubyConfigManager.netuitivedPort}".freeze
DRb.start_service
NetuitiveRubyAPI.setup(DRbObject.new_with_uri(SERVER_URI))
72 changes: 72 additions & 0 deletions test/test_netuitive_ruby_api.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
require 'test/unit'
require 'mocha/test_unit'
require 'netuitive_ruby_api'
require 'netuitive/netuitive_ruby_logger'

class NetuitiveRubyAPITest < Test::Unit::TestCase
def setup
@netuitived_server = mock
NetuitiveRubyAPI.setup(@netuitived_server)
RubyNetuitiveLogger.setup
end

def test_stop_server
@netuitived_server.expects(:stopServer).once
thread = NetuitiveRubyAPI.stop_server
thread.join
end

def test_send_metrics
@netuitived_server.expects(:sendMetrics).once
thread = NetuitiveRubyAPI.send_metrics
thread.join
end

def test_clear_metrics
@netuitived_server.expects(:clearMetrics).once
thread = NetuitiveRubyAPI.clear_metrics
thread.join
end

def test_add_sample
@netuitived_server.expects(:addSample).once.with('test.id', 5)
thread = NetuitiveRubyAPI.add_sample('test.id', 5)
thread.join
end

def test_interval
@netuitived_server.stubs(:interval).returns(60)
interval = NetuitiveRubyAPI.interval
assert_equal(interval, 60)
end

def test_event
@netuitived_server.expects(:event).once.with('test message', Time.new(2000, 1, 1, 1, 1, 1), 'Ruby Event', 'Info', 'Ruby Agent', 'INFO', nil)
thread = NetuitiveRubyAPI.event('test message', Time.new(2000, 1, 1, 1, 1, 1))
thread.join
end

def test_exception_event
@netuitived_server.expects(:exceptionEvent).once.with(RuntimeError.new, nil, nil)
thread = NetuitiveRubyAPI.exception_event(RuntimeError.new)
thread.join
end

def test_add_counter_sample
@netuitived_server.expects(:addCounterSample).once.with('test.id', 5)
thread = NetuitiveRubyAPI.add_counter_sample('test.id', 5)
thread.join
end

def test_aggregate_metric
@netuitived_server.expects(:aggregateMetric).once.with('test.id', 5)
thread = NetuitiveRubyAPI.aggregate_metric('test.id', 5)
thread.join
end

def aggregate_counter_metric
@netuitived_server.expects(:aggregateCounterMetric).once.with('test.id', 5)
thread = NetuitiveRubyAPI.aggregate_counter_metric('test.id', 5)
thread.join
end
end