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

Honeybadger Ruby Gem 4.0がついにリリース!新機能「before_notify」でエラー報告を自由自在にカスタマイズ

先週、Ruby用のhoneybadger Gemのバージョン4.0.0をリリースしました。このリリースには、長年待ち望まれていた機能が含まれており、Honeybadgerにエラー報告を送信する前に、その内容をこれまで以上に簡単にカスタマイズできるようになりました。また、必要とされていたリファクタリングを行い、いくつかの機能の削除や非推奨化も実施しています。ご安心ください。APIの大部分は変更されていないため、ほとんどのユーザーにとってアップグレードは比較的スムーズなプロセスとなるはずです。

注目の新機能:before_notify コールバック

以前のバージョンのhoneybadger Gemでは、報告されるエラーのさまざまな側面をカスタマイズするために、次の3つのコールバックが提供されていました。

  1. Honeybadger.backtrace_filter — Honeybadgerに送信されるバックトレースを修正するためのコールバック
  2. Honeybadger.exception_fingerprint — Honeybadger上でのエラーのグルーピング(グループ分け)をカスタマイズするためのコールバック
  3. Honeybadger.exception_filter — エラー報告自体をスキップするかどうかを判定するためのコールバック

しかし、これらのコールバック以外にも、例外をローカルで捕捉して個別に報告する方法を除けば、エラー報告内の他のデータ(エラーメッセージ、タグ、リクエスト情報など)をグローバルに変更する手段は存在しませんでした。そこで登場したのが、新しいbefore_notifyコールバックです。実はこの新しいコールバックは非常に汎用性が高く、前述の3つのコールバックすべてを完全に置き換えるものであり、旧コールバックは非推奨となりました。

今後は、before_notifyコールバックを使えば、上記のタスクすべてをそれ以上のことも実現できます。さらに、複数のコールバックもサポートされているため、Honeybadgerの設定においてより高い柔軟性が得られます。

Honeybadger.configure do |config|

  # エラー報告を無視する
  # Honeybadger.exception_filter の置き換え
  config.before_notify do |notice|
    notice.halt! if notice.controller == 'auth'
  end

  # バックトレースを修正する
  # Honeybadger.backtrace_filter の置き換え
  config.before_notify do |notice|
    notice.backtrace.reject!{|l| l =~ /gem/ }
  end

  # エラーのグルーピングをカスタマイズする
  # Honeybadger.exception_fingerprint の置き換え
  config.before_notify do |notice|
    notice.fingerprint = 'new fingerprint'
  end

  # すべてのプロパティを変更することも可能!
  config.before_notify do |notice|
    notice.api_key = 'custom api key'
    notice.error_message = "badgers!"
    notice.error_class = 'MyError'
    notice.backtrace = ["/path/to/file.rb:5 in `method'"]
    notice.fingerprint = 'some unique string'
    notice.tags = ['foo', 'bar']
    notice.context = { user: 33 }
    notice.controller = 'MyController'
    notice.action = 'index'
    notice.parameters = { q: 'badgers?' }
    notice.session = { uid: 42 }
    notice.url = "/badgers"
  end

end

私たちはこの新しいbefore_notifyコールバックに大きな期待をしており、今後多くの新しい活用法が生まれると確信しています!

4.xへのアップグレードについて

3.xを使用しているほとんどのユーザーにとって、アップグレードは特に問題なく完了するでしょう。ただし、前述の3つの旧コールバックを利用している場合は、before_notifyへの書き換えが必要です。また、コールバックに渡されるオブジェクトであるNoticeの公開APIが若干変更されているため、その他にもいくつかの小さな修正が必要になる場合があります。

詳細については、以下をご参照ください:

  • 3.xから4.xへのアップグレードガイド
  • 完全なCHANGELOG
  1. 起動ディスクが検出されない・ディスク障害エラーの解決方法【完全ガイド】

    PCの起動時に「起動ディスクが検出されないか、ディスクに障害が発生しました」というエラーメッセージが表示されることがあります。これは、オペレーティングシステムを読み込むために必要なブート情報が見つからないことを意味します。原因としては、BIOSのブート設定が正しく構成されていないか、ハードディスク自体に破損や故障が発生していることが考えられます。 ブート設定はBIOS(Basic Input/Output System)セットアップで変更できますが、ハードディスクの破損が深刻で修復できない場合は、ドライブの交換が必要になります。 「起動ディスクが検出されない」エラーの主な原因 このエラーが発

  2. 【Windows】タスクスケジューラの「タスク イメージが破損しているか、改ざんされています」エラーを修正する5つの方法

    タスクスケジューラで特定のタスクを実行しようとすると、「タスク イメージが破損しているか、改ざんされています」というエラーメッセージが表示されることがあります。このメッセージは、タスク自体が破損しているか、サードパーティ製アプリがタスクスケジューラのタスクに干渉していることを示しています。 このエラーは、システムでバックアップを設定しようとした際に突然発生することが多く、タスクが破損しているため実行できません。このエラーに対処する基本的な方法は、破損したタスクを削除することです。 タスクスケジューラは、Microsoft Windowsに標準搭載されている機能で、アプリやプログラムを指定した