Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

AppSignal 3.4.1で実現するシームレスなRails例外レポート〜Rails Error Reporter対応〜

アプリケーションの例外に関するインサイトを得たいけれど、コードに冗長なロジックを追加する時間はない——そんな方に、「exceptional(例外的)」な朗報です。AppSignal for Ruby gem 3.4.1 が、Rails Error Reporter をサポートしました。

この変更により、AppSignal の統合をシンプルにし、コードをすっきりさせながら、エラーページを表示してユーザーの操作を中断させることなく、その場でエラーをレポートできるようになります。

この記事では、Rails Error Reporter を使って AppSignal へエラーをレポートする方法をご紹介します。

begin ブロックにさようなら

Rails Error Reporter を使えば、コード内の冗長な begin ブロックが不要になり、アプリケーションの例外をより明示的かつ標準化された方法でレポートできます。

以前は、エラーを実際に発生(raise)させずに AppSignal へレポートしたい場合(いわゆる「エラーの握りつぶし」)、次のように begin ブロックを使っていました。

begin
  do_something
rescue => e
  Appsignal.report_error(e)
end

Rails Error Reporter を使えば、わずか数行のコードに簡略化でき、しかも AppSignal が親の Web リクエストやバックグラウンドジョブからアクション名と名前空間(namespace)を自動的に検出します。

Rails.error.handle do
  do_something
end

Rails Error Reporter の handle メソッドで捕捉されたエラーは、個別のサンプルとして AppSignal にレポートされるため、同じリクエストやジョブの中で複数のエラーをレポートすることも可能です。一方、record メソッドを使用した場合は、エラーは握りつぶされずに再送出されます。この場合のエラーは、AppSignal の Rails ミドルウェアによってレポートされます。

コンテキストを活用した柔軟なエラーレポート

リクエストやジョブのトランザクションに対してカスタムの名前空間やアクション名を指定したい場合は、set_namespace および set_action ヘルパーメソッドを使用できます。

Appsignal.set_namespace("custom_namespace")
Appsignal.set_action("CustomAction")

また、特定のエラーをレポートするときだけカスタムの名前空間やアクション名を使いたい場合は、Rails Error Reporter のコンテキストに設定を追加します。

Rails.error.set_context(
  appsignal: {
    namespace: "custom",
    action: "CustomAction"
  }
)

さらに、エラーのコンテキストにカスタムタグを付与することもできます。これらのタグは、アプリケーションのインシデントをフィルタリングする際に活用できます。

Rails.error.set_context(
  appsignal: {
    tags: { plan: "premium" }
  }
)

優れたアプリケーションのための、優れたモニタリング

AppSignal のエラーレポートについて詳しくは、Rails ドキュメントをご覧ください。Rails Error Reporter の利用時に問題が発生した場合は、充実のサポートチームまでお気軽にお問い合わせください。

AppSignal のエラーレポートは、アプリケーションモニタリングを最大限に活用するための、開発者視点の機能のひとつにすぎません。多くの開発者に愛用されている理由は、以下のとおりです。

  • 直感的で操作しやすいインターフェース
  • シンプルで予測しやすい料金体系
  • 開発者による開発者のためのサポート体制

そして忘れないでください。初めて AppSignal をご利用いただく方には、おいしいストループワッフル 🍪😋 の詰め合わせでお出迎えいたします!

  1. Rubyで例外発生時にローカル変数とインスタンス変数をログに記録する方法

    簡単には再現できないバグに悩まされたことはありませんか?アプリをしばらく使い続けたユーザーの環境でだけ発生し、エラーメッセージやバックトレースを見ても原因がさっぱり分からない——そんな経験を持つ開発者は多いはずです。 こうした場面で役立つのが、例外が発生する直前のアプリの状態をスナップショットとして記録しておく手法です。たとえば、すべてのローカル変数とその値の一覧を取得できれば、デバッグの強力な手がかりになります。実は、これは思ったより簡単に実現できるのです。 この記事では、例外発生時点でのローカル変数をキャプチャする方法を紹介します。ただし、最初に重要な注意点があります。ここで紹介するテ

  2. Ruby 4.0の主要機能とリリースハイライト、アップグレードガイド

    Ruby 4.0は、2025年12月25日、Ruby誕生30周年を記念してリリースされた大型バージョンアップです。破壊的な変更を伴うものではなく、30年間のコミュニティの歴史を祝う意味合いが込められています。 実はRubyはセマンティックバージョニング(semantic versioning)に厳密には従っていないことを知って驚きました。 代わりに、Rubyの生みの親であるMatz(まつもとゆきひろ氏)は、変更内容が彼を「感動させた」ときにメジャーバージョンを引き上げるのです。このバージョンはRubyの30周年を記念するとともに、言語をさらに拡張する機能を多数導入しています。 Ruby 4へ