metriks 记录到文件不起作用
metriks log to file not working
我写了一个基本程序来测试 ruby 指标 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
在我执行程序后,日志中除了创建之外什么都没有。
$ cat /tmp/metrics.log
# Logfile created on 2015-06-15 14:23:40 -0700 by logger.rb/44203
您应该在实例化 Metriks::Reporter::Logger
时传入您自己的注册表,或者如果您使用记录器来记录指标,则使用默认注册表 (Metrics::Resgitry.default
)。
此外,默认日志写入间隔为 60 秒,您的代码在此之前完成,因此即使一切设置正常,也不会被记录下来。所以,既然你想使用自己的注册表,这应该适合你(我要加一点睡眠,因为我要使用 1 秒的间隔):
require 'metriks'
require 'metriks/reporter/logger'
@registry = Metriks::Registry.new
@logger = Logger.new('/tmp/metrics.log')
@reporter = Metriks::Reporter::Logger.new(:logger => @logger,
:registry => @registry
:interval => 1)
@reporter.start
@registry.meter('tasks').mark
print "Hello"
@registry.meter('tasks').mark
# Just giving it a little time so the metrics will be recorded.
sleep 2
@reporter.stop
但我真的不认为短间隔是好的。
更新:此外,我认为 @reporter.write
将帮助您立即记下日志,而不管时间间隔如何。所以你不必使用 sleep
(更好)。
我写了一个基本程序来测试 ruby 指标 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
在我执行程序后,日志中除了创建之外什么都没有。
$ cat /tmp/metrics.log
# Logfile created on 2015-06-15 14:23:40 -0700 by logger.rb/44203
您应该在实例化 Metriks::Reporter::Logger
时传入您自己的注册表,或者如果您使用记录器来记录指标,则使用默认注册表 (Metrics::Resgitry.default
)。
此外,默认日志写入间隔为 60 秒,您的代码在此之前完成,因此即使一切设置正常,也不会被记录下来。所以,既然你想使用自己的注册表,这应该适合你(我要加一点睡眠,因为我要使用 1 秒的间隔):
require 'metriks'
require 'metriks/reporter/logger'
@registry = Metriks::Registry.new
@logger = Logger.new('/tmp/metrics.log')
@reporter = Metriks::Reporter::Logger.new(:logger => @logger,
:registry => @registry
:interval => 1)
@reporter.start
@registry.meter('tasks').mark
print "Hello"
@registry.meter('tasks').mark
# Just giving it a little time so the metrics will be recorded.
sleep 2
@reporter.stop
但我真的不认为短间隔是好的。
更新:此外,我认为 @reporter.write
将帮助您立即记下日志,而不管时间间隔如何。所以你不必使用 sleep
(更好)。