I wrote a basic program to test the ruby metriks gem
require 'metriks'
require 'metriks/reporter/logger'
@registry = Metriks::Registry.new
@logger = Logger.new('/tmp/metrics.log')
@reporter = Metriks::Reporter::Logger.new(:logger => @logger)
@reporter.start
@registry.meter('tasks').mark
print "Hello"
@registry.meter('tasks').mark
@reporter.stop
After i execute the program, there is nothing in the log other than it got created.
$ cat /tmp/metrics.log
# Logfile created on 2015-06-15 14:23:40 -0700 by logger.rb/44203
You should either pass in your own registry while instantiating
Metriks::Reporter::Logger
or use the deafult registry (Metrics::Resgitry.default
) if you are using a logger to log metrics.Also the default log write interval is 60 seconds, your code completes before that so even if everything is setup okay it won't get recorded. So, since you want to use your own registry, this should work for you (I'm adding a little sleep since I'm gonna use an interval of 1 second) :
But I don't really think short intervals are good.
UPDATE : Also I think
@reporter.write
will help you write down the logs instantly regardless of the time interval. So you don't have to usesleep
(better).