Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails应用程序上正确安装Kissmetrics?_Ruby On Rails_Cron_Chef Infra_Kissmetrics - Fatal编程技术网

Ruby on rails 如何在rails应用程序上正确安装Kissmetrics?

Ruby on rails 如何在rails应用程序上正确安装Kissmetrics?,ruby-on-rails,cron,chef-infra,kissmetrics,Ruby On Rails,Cron,Chef Infra,Kissmetrics,我正在使用RubyAPI方法安装KM API,但我不确定是否正确安装。我做的第一件事是将KM init代码放在init.rb文件中: KM.init("API-KEY", :log_dir => '/var/logs/km/', :use_cron => true, :to_stderr => true) 显然,我用我的API密钥替换了API-KEY。然后它说,正确的方法是将数据保存在文件中,并每5分钟将其作为cronjob发送给KM。我的第一个问题是-va

我正在使用RubyAPI方法安装KM API,但我不确定是否正确安装。我做的第一件事是将KM init代码放在init.rb文件中:

KM.init("API-KEY", 
  :log_dir => '/var/logs/km/', 
  :use_cron => true, 
  :to_stderr => true)
显然,我用我的API密钥替换了API-KEY。然后它说,正确的方法是将数据保存在文件中,并每5分钟将其作为cronjob发送给KM。我的第一个问题是-var/logs/km/是保存数据的正确目录吗?实际上,我在rails应用程序中没有看到该目录

然后,我使用厨师食谱发送cron作业,如下所示:

# send KM logs to KM
cron "Send KM data to KM" do
  minute  '*/5'
  hour    '*'
  day     '*'
  month   '*'
  weekday '*'
  command "/usr/bin/ruby /km-install-dir/bin/km_send"
end
*/5 * * * * /usr/bin/ruby /km-install-dir/bin/km_send
我也不确定这是否正确。该示例显示了cron代码,如下所示:

# send KM logs to KM
cron "Send KM data to KM" do
  minute  '*/5'
  hour    '*'
  day     '*'
  month   '*'
  weekday '*'
  command "/usr/bin/ruby /km-install-dir/bin/km_send"
end
*/5 * * * * /usr/bin/ruby /km-install-dir/bin/km_send
这就是我如何在《厨师》中找到cron的工作。所以,有几个问题:我如何知道它是否有效?我似乎找不到为cron作业存储数据的文件,我是否将其放在了错误的目录中?我的厨师食谱正确吗


谢谢

我没有使用Chef异步发送数据。
您可以安装gem并检查KM变量是否在正确的环境(development.rb、production.rb)中初始化。还要检查日志目录是否具有正确的权限。

我没有将KissMetrics数据保存到文件中并设置cron作业,而是结合了

事件数据保存在数据库中,然后定期分批发送。 我发现这样就不需要设置自定义cron作业,并且可能更容易扩展应用程序。KissMetrics对此有自己的看法