LoginSignup
5
1

More than 3 years have passed since last update.

[Ruby] より細かくMetricsを取得したい [Heroku]

Last updated at Posted at 2019-12-23

2016年に[Ruby] かしゆかの誕生日!という潔すぎる Advent Calendar を書いてから 3年。またこの地に降り立ちました、しょっさんです。もちろん、本日もかしゆかの誕生日です、おめでとうございます!!!

今日はRuby Advent Calendar 2019の 23日目、今年もかしゆかの誕生日です!! 昨日はfursichさんのネタ待ち、明日はooooooo_qさんです!!

Heroku Ruby Language Metrics(Public Beta) がでたぞ!

public beta なので、大きな声で推奨はできませんが、NewRelic や Scoutを入れるほどでも、標準よりももう少し詳しく Heroku がアプリの Metrics とってくれないかな...。

とれるようになりそうです

それが、この Ruby Language Metrics(Public Beta) です。設定すればよいだけではないのと、動いたり動かなかったりなのは「β」だからということで、事情を知りうまく行かなかったときは、heroku-metrics-feedback@salesforce.com へフィードバックを入れていただけると捗ると思います、どうぞよろしく。(英語でね)

何ができるようになったの?

次の3つの項目が、追加で取れるようになりました。

  • Puma Pool Usage … Puma のキューイング状況が見られます。80%超え始めたら Dyno 追加しようかなみたいな。
  • Free Memory Slots … 単位時間あたりのメモリスロットの状況を可視化します。
  • Heap Objects Count … 割当と開放されたヒープ状況を可視化します。メモリちゃんと開放されてる?

どうやって使うの?

制約条件として

使い方は Rails なら次のでいけます。

  1. Metric を Enableする
  2. 'heroku/metrics' buildpack を「頭に」追加する
  3. "barnes" Gem をインスコ

1. Metric を Enableする

Heroku Dashboard から、Heroku アプリの Metricsへ行って、「歯車」から "Enhanced Language Metrics" to ”Ruby Language metrics" を ON にしてあげます。

1535572120-node-metrics.gif

コマンドなら。

$ heroku labs:enable "runtime-heroku-metrics" -a "my-app-name"
$ heroku labs:enable "ruby-language-metrics" -a "my-app-name"

2. 'heroku/metrics' buildpack を「頭に」追加する

同じく Dashboard の Settings から、"Add buildpack" で 「heroku/metrics」を追加します。一番目になるように、順序を入れ替えてあげます。

1509042807-Screen-Shot-2017-10-26-at-11.32.05-AM.png

コマンドなら。

$ heroku buildpacks:add -i 1 heroku/metrics

3. "barnes" Gem をインスコ

Gemfilebarnes を追加して、bundle installして、再deployしましょう。

gem "barnes"

※ Railsじゃないとき

例えば puma.rb とかに次のものが必要です。

require 'barnes'

before_fork do
  # worker specific setup

  Barnes.start # Must have enabled worker mode for this to block to be called
end

※ workerない場合は動かないので、最低限一つのworkerが必要みたいだけど。

5
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1