-
Capistrano を使用して Ruby on Rails デプロイメントを合理化する:ステップバイステップ ガイド
この記事では、Ruby on Rails アプリケーションで Capistrano を構成します。次に、ホスティング プロバイダーから独立して、Ubuntu をオペレーティング システムとして実行するクラウド インスタンスにアプリをデプロイします。任意のクラウド サービス、またはオンプレミス サーバーを使用して、これから行う手順をテストまたは複製できます。 アプリをデプロイしたら、AppSignal を使用してアプリのデプロイメントを監視する方法を簡単に説明します。 しかしその前に、なぜ Capistrano を使用する必要があるのかと疑問に思うかもしれません。 Ruby on Rails
-
Ruby をマスターする:メモリ リークを効率的に検出して修正する
メモリ リークとは、メモリ使用量が意図せず、制御されておらず、際限なく増加することです。どんなに小さなものであっても、最終的にはリークが原因でプロセスがメモリ不足になりクラッシュします。このクラッシュを回避するためにアプリを定期的に再起動したとしても (判断はできません。実際にそうしました!)、メモリ リークによるパフォーマンスへの影響は依然として発生します。 メモリ リークに関する 2 部構成のシリーズの 1 つ目であるこの投稿では、まず Ruby がメモリを管理する方法、ガベージ コレクション (GC) がどのように機能するか、そしてリークを見つける方法について見ていきます。 2 番目
-
AppSignal Ruby Gem 3.1 に MRI VM Magic ダッシュボードが追加 – インスタント パフォーマンス インサイト
MRI VM 統計用の Magic Dashboard を追加する AppSignal for Ruby gem 3.1 をリリースできることを非常に楽しみにしています。最新の Ruby gem にアップグレードすると、新しいプローブからのデータが流入し始めるとすぐに、AppSignal でこのダッシュボードが自動的に作成されるようになります。 表示される内容は次のとおりです。 Magic Dashboards は、セットアップを必要とせずに、アプリケーションに関する驚くべき洞察を人々に提供します。これらは自動的に機能し、Puma、Sidekiq、ActiveJob、ActionMai
-
AppSignal が Alpine Linux ARM をサポート:安心してサーバーを監視
本日、Alpine Linux を実行するマシンの ARM サポートを開始します。この機能は、Ruby および Elixir ユーザーが利用できます。将来的には、Node.js パッケージに Alpine Linux ARM のサポートを追加したいと考えています。 ARM CPU アーキテクチャはますます人気が高まっています。これは開発マシンや運用サーバーに電力を供給するため、サポートするオペレーティング システムのリストにこれを追加することにしました。 インストール手順 以前と同じ方法でパッケージをインストールできます。 ARM マシンは自動的に検出され、一致する拡張機能とエージェントが
-
Ruby のメモリ リークの理解と修正:包括的なガイド
メモリ リークに関するこの 2 部構成のシリーズの最初の部分では、Ruby がメモリを管理する方法とガベージ コレクション (GC) がどのように機能するかを調べました。 より多くのメモリを搭載した強力なマシンを購入する余裕があり、ユーザーが気づかないほど頻繁にアプリが再起動されるかもしれませんが、メモリ使用量は重要です。 割り当てとガベージ コレクションは無料ではありません。リークが発生した場合、アプリを構築した目的を実行する代わりに、ガベージ コレクションにますます多くの時間を費やすことになります。 この投稿では、メモリ リークの発見と診断に使用できるツールを詳しく見ていきます。
-
Magic Dashboards で Ruby アプリのパフォーマンス監視を強化
アプリケーション チームは、顧客エクスペリエンスがどのようなものかを理解する必要があります。これは、一般的な観点(ユーザビリティと応答性の観点)だけでなく、日々の分単位の観点からも当てはまります。 特に、分散システムを使用する場合、エラーは避けられません。サイトのトラフィックは 1 日を通して変動し、システムの依存関係のいずれかにいつでも問題が発生する可能性があります。 この記事では、マジック ダッシュボードを使用して、Ruby on Rails アプリケーション内のパフォーマンスの問題を監視し、解決します。 ただし、マジック ダッシュボードに入る前に、アプリを設計するときに何に注意すべ
-
Ruby および Rails 用の JIT コンパイラー:YJIT、MJIT、および TenderJIT でパフォーマンスを向上
プログラムは、実行前コンパイルとは異なる方法を使用して実行時にコンパイルされます。このプロセスは、ジャストインタイム コンパイルまたは動的変換として知られています。 この投稿では、利用可能ないくつかのオプション (YJIT、MJIT、TenderJIT) とそれらのインストール方法を説明する前に、JIT コンパイルが Ruby on Rails アプリに適した選択肢である理由を説明します。 まず最初に、JIT コンパイルはどのように機能するのでしょうか? JIT コンパイラの仕組み ジャストインタイム コンパイルは、プログラムの実行中にコンパイルが必要なコンピューター コードを実行する方
-
RubyCritic で Ruby コードの品質を向上:視覚的な分析と継続的な改善
RubyCritic は、Ruby アプリケーションのコードの匂い、コード構造、テストの容易さ、テスト カバレッジを強調する視覚的なレポートを提供します。 現在開発が活発に行われており、新しいコード分析ツールが新機能として頻繁に導入されています。 RubyCritic のリリースを追跡しておく価値は十分にあります。 この記事では、RubyCritic の利点、依存関係、コード レポートの読み方の一部について触れます。 さあ、始めましょう! Ruby on Rails アプリケーションに RubyCritic を選ぶ理由 プロジェクトのコード改善を単一の場所でレビューしたい場合は、Rub
-
Trix および Turbo Frame を使用して Rails で動的テーブル エディタを作成する
この投稿では、Rails アプリケーションに基本的な ActionText テーブル エディタを実装します。次の方法を学習します。 ActionText と Trix は添付ファイルを処理します 独自の Attachable を実装するには と入力し、これを活用して基本的なテーブル エディタを構築します ターボ フレームを使用してテーブルを編集できます ターボは役立つと同時に邪魔にもなります この記事は、2020 年の優れたブログ投稿「Stimulus.js を使用して ActionText にテーブルを追加する」からインスピレーションを得ています。ただし、これは Turbo の出現前に
-
ユーザーの大幅な増加に向けた Ruby on Rails のスケーリング
今日は、Ruby on Rails アプリケーションを巨大なユーザー ベースに拡張するために使用できるいくつかの戦略について詳しく説明します。 アプリケーションをスケーリングする明白な方法の 1 つは、より多くの資金を投入することです。そして、それは驚くほどうまく機能します。さらにいくつかのサーバーを追加し、データベースサーバーをアップグレードすると、ほら、 パフォーマンスの問題の多くがうんざりするだけです。 ! ただし、多くの場合、サーバーを追加せずにアプリケーションを拡張することも可能です。それが今日私たちが議論することです。 さあ、始めましょう! Rails アプリケーションに A
-
Noticed と CableReady を使用して Rails に堅牢なシステム通知を実装する
この記事は、著者の Advanced CableReady 書籍の次の章から部分的にインスピレーションを受けており、AppSignal のこのゲスト投稿に合わせて調整されています。 通知は、多くの Web アプリケーションに共通する典型的な横断的な懸念事項です。 Noticed gem は、Ruby on Rails アプリケーションにデータベースに基づいたモデルとプラグイン可能な配信方法を提供することで、通知の開発を非常に簡単にします。これには、メーラー、WebSocket、およびその他のいくつかの配信方法のサポートが組み込まれています。 また、Ruby on Rails アプリケーシ
-
2022 年 AppSignal で最も人気のある Ruby 記事 – トップ 5 のハイライト
ホリデーシーズンが近づいているため、AppSignal チームは Ruby の投稿の公開を一時冬季休暇としています。 2023 年にはさらに多くのものをお届けできることを願っています。 🍵 ❄️ それまでの間、2022 年に最も高く評価された Ruby ブログ投稿のトップ 5 を見てみましょう! Ruby のステート マシン:概要 ステート マシンは、何かの可能なすべての状態と、これらの状態間で許可される遷移を保持できます。たとえば、ドアのステート マシンには 2 つの状態 (open) しかありません。 と closed )、トランジションは 2 つだけ (opening) と clo
-
Ruby C 拡張機能での引数解析のマスター:ステップバイステップ ガイド
Ruby は、まず人間のために、次に機械のために作られた素晴らしい言語です。読み書きも簡単です。何かを記述する方法はたくさんあり、多くの場合、自分で選択したメソッドの名前を入力することで、その標準ライブラリを推測できます。 このため、Ruby の引数は非常に柔軟であり、API を非常に明確に表現できます。しかし、これには欠点があります。Cextension 開発者にとって Ruby は解析が非常に難しいのです。 この記事では、C で書かれた複雑な Ruby API をセットアップする 2 つの方法を説明します。 rb_define_method 付き rb_scan_args で解析しま
-
C 拡張機能から Ruby メソッドを呼び出す際のメモリ リークを防ぐ
メモリリークは gem ユーザーにとって厄介です。これらは追跡が難しく、高額なインフラストラクチャ コストにつながる可能性があります。 C 拡張機能内のメモリ リークはさらに深刻です。 Ruby のリークの発見に関するツールや記事がたくさんあります。ただし、C の内部への同じアクセス権はありません。 rb_funcall の単純な使用法 メモリ リークを引き起こす可能性があります。rb_protect を使用することをお勧めします。 代わりに。したがって、C 拡張ライターの場合は、Gem を使用する開発者のために読み進めてください。 始めましょう! rb_funcall の問題 そしてC
-
Kredis を使用して一時的な UI 状態を Rails に簡単に保存
Kredis (Keyed Redis) は、Rails 開発者ツールキットに最近追加されたものです。 Redis 上の構造化データの保存とアクセスを簡素化することを目指しています。 2 部構成シリーズの最初の部分では、まず Kredis がどのように機能するかについて説明します。次に、特注の Redis キーを使用して一時的な UI 状態を保存するユースケースの例を実行します。 始めましょう! Rails 用 Kredis の概要 Kredis は、次の 3 つの方法で使用を効率化する便利なラッパーを提供する Railtie です。 Ruby 風の API :たとえば、Kredis.
-
Rails でのロギングをマスターする:デバッグからプロアクティブなアラートまで
ほとんどの人は、ログが最も必要なときにのみログの必要性を認識します。しかし、アプリケーションが壊れ、ユーザーからの苦情が殺到し始め、それを修正する方法が見当もつかないとき、役立つかもしれないログ メッセージを追加しても手遅れです。 良い丸太は 10 倍の価値があります。これらを使用すると、これらの厄介なバグの診断が簡単になり、ログを正しく作成すれば、ユーザーが気づく前に問題を警告することができます。しかし、「ロギングを正しく行う」とはどういう意味でしょうか? ロギングは始めるのは簡単ですが、マスターするのは困難です。この投稿では、Rails アプリケーションのログを最大限に活用する方法につ
-
Ruby 認証をマスターする:評論家 vs. CanCanCan
現在、多くの Web アプリケーションには、ホームページなどの一般に公開されているページと、ユーザーがアクセスするためにログインする必要があるより安全なページが搭載されています。ユーザー登録、ログイン、ユーザー セッション状態の追跡のプロセスは「認証」と呼ばれます。 同時に、ログインしたユーザーを扱うときは、ユーザーの役割に応じて、ユーザーが利用できるアクションとリソースを分ける必要があります。たとえば、「管理者」は通常、通常のユーザーよりも多くのアクセス権を持っています。認証されたユーザー アクセスを分離するこのプロセスは、「認可」と呼ばれます。 この投稿では、これまでのところ Ruby
-
Ruby でカスタム例外をマスターする:エラー処理と可観測性を強化する
例外のカスタマイズは、通常、ソフトウェア開発中には一般的な懸念事項ではありません。ただし、オブザーバビリティ ツールでエラーを検出し、問題を正確かつ迅速に特定できない場合は、例外に関する追加情報と詳細が必要になる場合があります。 この記事では、Ruby で例外をカスタマイズし、エラー情報の不足によって将来発生する可能性のある問題を軽減する方法を説明します。 早速始めてみましょう! 簡単な補足 この投稿は、AppSignal を使用した Ruby でのデバッグへの自然な流れであるため、デバッグの概要とカスタム例外の概要については、最初にこの投稿を読むことをお勧めします。 Ruby で例外を
-
AppSignal による自動 NGINX パフォーマンス モニタリング:リアルタイム インサイトとカスタム ダッシュボード
NGINX がどのように実行されるかを理解するのは困難な場合があります。追跡すべきデータ ポイントは多数あり、どれが自分に関連しており、どれが無視してもよいかを判断するのは難しい場合があります。 この記事では、AppSignal を使用して NGINX を監視し、アプリケーションのパフォーマンスの可視性を拡大する方法を説明します。 すべての指標を魔法のように AppSignal を使用すると、スループットから応答時間までのパフォーマンス メトリクスを含むカスタム ダッシュボードを作成できます。ダッシュボードを手動で作成するには時間がかかり、どの指標が本当に重要なのかを知るのが難しい場合があ
-
AppSignal でカスタム メトリクスを追跡し、即座に実用的な洞察を得る
カスタム メトリクスを設定すると、(ログ行を調べたり、複雑なレポート ツールで苦労したりすることなく) 必要な情報を瞬時に得る簡単な方法です。潜在的な問題を迅速に特定して解決するために、意味のある指標を追跡することでアプリケーションの重要な監視データを補足します。 このブログ投稿では、カスタム メトリクスを設定および使用して監視の盲点を取り除く方法を説明します。アプリケーションのパフォーマンスをより深く理解するために、一連の監視ツールと合わせてカスタム メトリクスを使用する方法を示します。 カスタム指標とは何ですか? メトリクスに関しては、AppSignal はデフォルトでエラー率、応答時