6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Progate環境でNew Relicを学ぶ - 初心者のための一歩

Posted at

はじめに

New Relicは強力なオブザーバビリティプラットフォームですが、「難しそう」「どこから始めればいいかわからない」という声をよく聞きます。
この記事では、Progateの演習環境を使って、New Relicの基本的な使い方を学んでいきます。

1. 環境準備

1.1 必要なアカウントの作成

  1. Progateのアカウント作成

    • 無料プランで十分です
    • 「New Relic を使ってアプリケーションを改善しよう」コースを選択
  2. New Relicの無料アカウント作成

    • サインアップ時の「主な目的」で「Qiita記事・実践」を選択
    • 無料プランを選択(クレジットカード不要)

1.2 Progate環境の概要

Progateの演習環境は以下の特徴があります:

  • Ruby on Railsアプリケーションが用意されている
  • 基本的なCRUD機能を持つブログアプリ
  • 開発サーバーが既に起動している状態

2. New Relicエージェントの導入

2.1 APMエージェントのインストール

# Gemfileに追加
gem 'newrelic_rpm'
# インストール実行
bundle install

2.2 設定ファイルの作成

config/newrelic.ymlを作成:

common: &default_settings
  license_key: YOUR_LICENSE_KEY
  app_name: "Progate Blog App"
  
development:
  <<: *default_settings
  app_name: "Progate Blog App (Development)"

3. 基本的なモニタリング

3.1 アプリケーションパフォーマンスの確認

  1. トランザクション(アクション)毎の応答時間
  2. Apdexスコア(ユーザー満足度指標)
  3. エラー率

3.2 主要な監視項目

  1. レスポンスタイム

    • アクション別の平均応答時間
    • スロークエリの特定
  2. データベース

    • クエリの実行時間
    • クエリの発行回数
  3. エラー監視

    • エラーの発生頻度
    • エラーの種類と詳細

4. パフォーマンス改善の実践

4.1 N+1問題の検出と改善

Before:

def index
  @posts = Post.all
  @posts.each do |post|
    post.user.name  # N+1問題の発生
  end
end

After:

def index
  @posts = Post.includes(:user).all  # Eager Loading
end

4.2 キャッシュの導入

# コントローラーでのキャッシュ
def show
  @post = Rails.cache.fetch(['post', params[:id]], expires_in: 1.hour) do
    Post.find(params[:id])
  end
end

5. カスタムメトリクスの追加

5.1 ビジネスメトリクスの計測

# 投稿数を計測
def create
  @post = Post.new(post_params)
  if @post.save
    ::NewRelic::Agent.record_metric('Custom/Posts/Created', 1)
    redirect_to @post
  end
end

6. アラートの設定

6.1 基本的なアラート条件

  1. レスポンスタイムのしきい値アラート

    • 平均応答時間が500ms以上
    • エラー率が1%以上
  2. エラー監視アラート

    • 5分間で3回以上のエラー発生

6.2 アラート通知の設定

  1. Slackへの通知設定
  2. メール通知の設定

7. ダッシュボードの作成

7.1 基本的なダッシュボード項目

  1. アプリケーション概要

    • トランザクション応答時間
    • エラー率
    • Apdexスコア
  2. データベース状態

    • クエリ実行時間
    • スロークエリ一覧
  3. カスタムメトリクス

    • 投稿数推移
    • ユーザーアクティビティ

8. 次のステップ

  1. 本番環境での活用
  2. より詳細なパフォーマンス分析
  3. 分散トレーシングの導入

まとめ

Progate環境でNew Relicを試すことで、以下が学べました:

  1. 基本的な監視設定の方法
  2. パフォーマンス問題の発見と改善
  3. アラートとダッシュボードの活用

この経験を活かして、実際のプロジェクトでNew Relicを活用していきましょう。

参考リンク

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
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?