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

AppSignal が長時間実行ストリーミング ラック応答サポートで Ruby 監視を強化

AppSignal で、長時間実行されるストリーミング ラック応答の監視が強化されたことを発表できることを嬉しく思います。 Rack 応答モニタリングの強化により、Ruby アプリケーションの長時間実行応答の健全性をより詳細に把握できるようになり、リクエスト本文が処理されてから数分、場合によっては数時間後に発生する可能性のあるエラーを検出できるようになります。

この新しい可観測性層は、Cheddar Payments のエンジニアリング ディレクターである Julik Tarkhanov 氏の貴重な貢献によって生まれました。彼の働きにより、Ruby gem 内で長時間実行される応答を監視できるようになり、リアルタイム パフォーマンス モニタリングのサポートが強化されました。

このブログ投稿では、Ruby アプリを監視する際にこの追加が何を意味するのかを説明し、オープンソースのアプローチがクライアントとのコラボレーションを促進して実用的で影響力の高い分析情報を提供する方法について説明します。

長時間実行されているラックの応答を監視する理由

通常、Rack 応答を監視する場合、AppSignal は応答本文のレンダリングにかかる時間を追跡できます。

AppSignal が長時間実行ストリーミング ラック応答サポートで Ruby 監視を強化

ただし、AppSignal は、大きなファイルをダウンロードする場合など、長時間実行される応答を監視できませんでした。これは、レスポンスのレンダリングにどれくらいの時間がかかったか、またはレスポンスのレンダリング中に例外が発生したかどうかを知ることができないことを意味しました。

この問題は特殊な問題であり、応答監視に関する多くのお客様のエクスペリエンスには当てはまらない可能性がありますが、Cheddar Payments にとっては問題でした。このユースケースでは、長時間実行される応答を監視できないため、パフォーマンスを追跡し、長時間のプロセス中に発生する可能性のある障害を診断する際に課題が生じていました。

Cheddar Payments では、Rails から zip ファイル内でストリーミング形式で配信される主要なレポートをダウンロードできます。これらのレポートの提供が AppSignal 監視から除外されていることに気付きました。これは、アプリ内の HTTP インタラクションの「メイン」部分が終了すると、AppSignal トレースが停止するためです。これらのレポートの生成中にエラーがあり、AppSignal では確認できなかったため、これらの応答を追跡することが重要でした。

Julik Tarkhanov 氏、Cheddar Payments エンジニアリング ディレクター

長時間実行されているラックの応答を監視するための貢献主導のソリューション

WeTransfer 時代の Rack での長時間実行レスポンスの経験により、Julik は、長時間実行レスポンスを監視するソリューションを実装して、Ruby gem に貢献することにしました。

すでに APM (AppSignal) があり、簡単に実装できる機能がいくつかあるので、実装してみてはいかがでしょうか?

Julik の最初のプル リクエストでは、代替手段を模索するのではなく、AppSignal のトレース内で長時間実行される Rack 応答を監視する方法を導入しました。 AppSignal Integrations チームの Tom の熱心な働きのおかげで、PR #1140 でソリューションを完全に実装し、Ruby gem のバージョン 3.10 でリリースして、エッジ ケースに対処し、信頼性を向上させることができました。

Julik のソリューションにより、彼のチームはモニタリングに AppSignal を使い続けることができ、代替ツールを実装したり切り替えたりすることなく、長時間実行される応答を追跡する必要性に対処できました。

AppSignal は、長時間実行される応答の継続時間をキャプチャし、応答のレンダリング中の任意の時点で問題が発生した場合に顧客に通知できるようになり、顧客に可観測性の追加レイヤーを提供します。

AppSignal が長時間実行ストリーミング ラック応答サポートで Ruby 監視を強化

私たちがオープンソースの貢献を重視する理由

AppSignal では、お客様からのフィードバックや機能のリクエストを常に重視してきました。すべてのリクエストが本番環境に反映されるわけではありませんが、お客様のニーズを検討することに前向きです。

すべての人に利益をもたらす可能性のあるニーズを特定した場合、私たちはそれを実用的なソリューションに変えられるかどうかを確認するために最善を尽くします。 Rails コミュニティの多くの人々と同様に、私たちはオープンソース コラボレーションの力を信じています。これにより、お客様の進化するニーズに機敏に対応できるようになります。

私たちは小規模で自力で立ち上げたチームであるため、すべてのクライアントのウィッシュリストにあるすべての機能を実装することはできません。ここで、Gem への貢献が役に立ちます。コミュニティの協力を得て、製品の機能を拡張し、重要な機能に迅速に対応できるようになります。

私たちのオープンソースアプローチは、可能な限りオープンな環境で統合を行うことを目指しているというものです。私たちはコミュニティからの貢献を見るのが大好きで、アイデアや改善を常に歓迎します。

Thijs Cadier、AppSignal の CTO

AppSignal では、お客様をあらゆる活動の中心に据え、アプリケーションの監視と最適化に役立つ最高のエクスペリエンスとツールを提供するよう常に取り組んでいます。これが、当社の顧客が当社を気に入っている理由です。

  • 専門家による無料サポート
  • 透明性のある価格設定
  • 柔軟なアップグレード ポリシー
  • 使いやすいインターフェース

まだ納得できませんか? Julik の意見は次のとおりです。

AppSignal は優れた製品であり、ツールの点では、それを試すのに大きな負担はかかりません。そして、OpenTelemetry の導入により、この状況はさらに改善されるでしょう。

インストール ウィザードを使用すると、無料トライアルを開始して、コーヒーを飲むよりも短い時間で AppSignal を起動して実行できます。ああ、新規のお客様には (ご要望に応じて) ストロープワッフルをお送りすることをお話しましたか?

AppSignal がアプリのメトリクスを最大限に活用するのにどのように役立つかについて質問がありますか、または詳しく知りたいですか?お気軽にご連絡ください。いつでも喜んでお手伝いさせていただきます!

AppSignal が長時間実行ストリーミング ラック応答サポートで Ruby 監視を強化

コナー・ジェームス

AppSignal のデベロッパー マーケティング マネージャー。カノーリをこよなく愛するポッドキャスト中毒者で、名前をコノーリに変更することを検討中。彼は色に「u」があると考えています。彼がマイクの上で、ステージ上で、または勤務時間外にソファに横たわっているのを見つけるかもしれません。

Connor James

によるすべての記事
  1. Ruby文字列のフォーマット

    Rubyで文字列をフォーマットする方法について話しましょう。 なぜ文字列をフォーマットしたいのですか?数値が10未満であっても、先行ゼロを使用したり(例:01、02、03…)、コンソール出力を列に適切にフォーマットしたりすることができます。 他の言語では、 printfを使用できます 文字列をフォーマットする関数です。Cを使用したことがある場合は、おそらくそのことに精通しているでしょう。 printfを使用するには フォーマット指定子のリストと変数または値のリストを定義する必要があります。 Ruby文字列フォーマット入門 sprintf はRubyでも利用できます。この投稿では、よ

  2. Byebug、Rails、Powを使用したリモートデバッグ

    byebugをこれまでに見たことがない場合は、チェックすることをお勧めします。これは、Ruby2.x用の優れたデバッガーです。その作者の言葉で: Byebugは、Ruby2用の使いやすく機能豊富なデバッガーです。実行制御に新しいTracePointAPIを使用し、コールスタックナビゲーションに新しいDebug Inspector APIを使用するため、内部のコアソースに依存しません。 C拡張機能として開発されているため、高速です。また、完全なテストスイートがあるため、信頼性があります。 基本的なセットアップは非常に簡単です。宝石をインストールするだけです。 byebugを使用する場合 コー