capistrano が 3.3.3 にあがって capistrano-stats という gem に依存するようになりました。 これは metrics.capistranorb.com:1200
にバージョン情報などを送信して capistrano のサポートの改善に役立てようとするもののようです。
対象バージョン
- capistrano 3.3.3
- capistrano-stats 1.0.3
Capfile locked
capistrano-stats とは関係ないですが、 Capfile locked at 3.2.1, but 3.3.3 is loaded
と出るときは config/deploy.rb
の最初の方にある lock '3.2.1'
という行を lock '3.3.3'
に書き換えれば OK です。
capistrano-stats 1.0.3 の挙動
初回実行時に Do you want to enable statistics? (y/N):
ときかれて、 そのまま Enter か n
を入力すると ruby や capistrano のバージョンは送信されなくなるのですが、 (少なくとも私の) 期待に反して metrics.capistranorb.com:1200
への送信自体は発生するようになっています。
何が問題か
全く送信してほしくない場合にも通信が発生したり、 firewall で塞がれている場合にエラーになったり という問題があります。
一時的に無効にするには?
CAPISTRANO_METRICS=localhost:1200 bundle exec cap default
のように環境変数 CAPISTRANO_METRICS
で送っても無視されるところに送信すれば良さそうです。
完全に無効にするには?
pull request 1 の Honor the users privacy decision and do not send UDP packets if he does not want to send metrics にあるように
Rake::Task['metrics:collect'].clear_actions
を config/deploy.rb
に追加すると送信されなくなりました。
今後
Allow users to opt-out of sending the UDP ping and improve error handling when the sendto syscall fails という pull request が続きで出ているので、 将来のバージョンでは全く送信しない選択肢が用意されるかもしれません。
2014-12-13 追記
その後、 capistrano 3.3.4 と capistrano-stats 1.1.0 にあがって、 デフォルトの N を 2 回は全く送信しないようになりました。