ホームページ >Java >&#&チュートリアル >Alibaba Cloud ARMS は Java アプリケーションのスタック問題を実際に診断します
パニックにならないでください、これは単なる写真です
404を除けば、この写真はネチズンにとって最も苦痛かもしれません。
「Alibaba Middleware」公式アカウントの背景にメッセージを残して、インターネット上で見た胸が張り裂けるような出来事を私たちに送ってください。おそらく、私たちは問題を公開するでしょう。 「インターネットハート」プラグコレクション』 ああ。
関連する調査によると、ページの読み込み時間が 1 秒から 3 秒に増加すると、直帰の可能性が約 30% 増加します。ウェブサイトの読み込みに 10 秒かかる場合、直帰の可能性は 1 秒から 5 秒の確率が 90% を超えます。 (ここでの 120% は、10 人が来て 12 人が去るという意味ではなく、ユーザーの離脱の増加率を意味します。) したがって、この「ユーザー エクスペリエンスが王様」の時代では、アプリケーションのパフォーマンス監視が運用の最優先事項となり、保守管理。
Web サイトの遅延とページの読み込みの遅さは、インターネット アプリケーションでよくある問題の 1 つです。このような問題のトラブルシューティングと解決は簡単ではなく、運用担当者や保守担当者に多大な時間と労力を費やします。通常、理由は 3 つあります:
» アプリケーションのリンクが長すぎるため、開始する方法がありません。
フロントエンド ページからバックエンド ゲートウェイ、Web アプリケーション サーバーからバックエンド データベースに至るまで、いずれかのリンクの問題によりリクエスト全体が停止する可能性があります。フロントエンド リソースの読み込みが遅すぎますか?それともデータベースに何か問題があるのでしょうか?それとも新しくリリースされたサーバー コードにはパフォーマンスの問題があるのでしょうか?問題はさまざまな理由で発生する可能性があります。
「マイクロサービス」アーキテクチャを使用するアプリケーションでは、リンクがより複雑になります。異なるコンポーネントは異なるチームや担当者によって保守される場合があるため、トラブルシューティングがより困難になります。
» ログが不完全か品質が低く、サイトが見つかりません。
アプリケーション ログは、オンラインの問題のトラブルシューティングに役立つ成果物であることは間違いありませんが、問題が発生する可能性のあるすべての場所でログを出力することはできないため、問題が発生した場合、通常はログ情報が不完全であることがわかります。
「遅い」の定義は主観的なものであり、「遅い」は偶発的な現象である場合もあります。 「遅い」コード行を実際にキャプチャするには、多くの場合、すべての呼び出しを記録し、コードのすべての行を見逃さないようにする必要がありますが、このアプローチはコストがかかりすぎます。
» 監視が不十分で、問題が発生してからでは手遅れです。
ビジネス開発の迅速化と反復速度の高速化は、ビジネス システムのインターフェイスの頻繁な変更、依存関係の増加、コード品質の低下につながります。アプリケーションの各インターフェイスのパフォーマンスを完全に自動的に監視し、問題のある通話を自動的に記録できる完全な監視システムが存在しない場合、ユーザーからのフィードバックがあってから問題を解決するのでは手遅れになります。
ビジネス向けリアルタイム監視サービス ARMS (Application Real-Time Monitoring Service) は、Alibaba Cloud Application Performance Management (APM) タイプのフルリンク監視製品です。 ARMS は、Java アプリケーションの監視と診断、車両のインターネットのリアルタイム監視、小売業界のリアルタイム監視、ユーザー エクスペリエンスの監視、およびフロントエンド監視、アプリケーション監視、カスタム監視機能を含むその他のシナリオ向けの幅広い監視機能を提供します。リアルタイムのビジネス監視機能を迅速に構築します。
ステップ 1: Java プローブをインストールします (アプリケーションが EDAS でホストされている場合は、このステップをスキップすることもできます)
• ARMS を開いてアプリケーションを作成します。
• Java プローブ パッケージをダウンロードして解凍します。
• -javaagent:/{user.workspace}/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar-Darms.licenseKey=xxx -Darms.appId=xxx (appId と LicenseKey は次の情報に基づいています) を追加します。情報を入力してください。ページに割り当てられています)
• ARMS ページを開くと、データのレポートが開始され、Java プローブが正常にインストールされていることを確認します。
ステップ 2: アプリケーション概要で「遅い」不審な手がかりを見つける
ARMS アプリケーション トポロジ マップを入力します。アプリケーションの概要を見ると、現在システム内に「遅い SQL」が 5 回存在していることがはっきりとわかります。
ステップ 3: 「遅いインターフェース」を参照して発見します
インターフェースリストをクリックすると、このアプリケーションが提供するすべてのインターフェースと、このアプリケーションの呼び出し数と時間がかかることが一目でわかります。もちろん、これらのインターフェイスは、プログラム内の ARMS プローブによって、設定なしで自動的に検出されます。
これらのインターフェースのうち、「遅い」インターフェースは明確にマークされます。疑わしいほど遅いインターフェイスが明らかに見つかりました。
左側で最も多くの呼び出しがある「遅い」インターフェースを選択します。右側から、この呼び出しがデータベース呼び出しで明らかに「遅い」ことがわかります。
ステップ 4: 「コードのどの行が遅いか」ワンクリックで原因を特定します。
• インターフェースにかかる時間を確認するだけでは不十分です。「遅さ」が発生しているコード行を正確に特定する必要があります。
• [インターフェイス スナップショット] をクリックすると、このインターフェイスに対応するすべてのインターフェイスのスナップショットが表示されます。スナップショットは、通話の完全なリンク コールの完全な記録です。 ARMS プローブは、パフォーマンス損失が非常に少ない状態で各呼び出しに要したコードと時間を記録し、「遅い」問題を正確に特定するのに役立ちます。
• 特定の通話スナップショットの TraceId をクリックして展開し、この通話の特定の「遅い」行を表示します。上の図から、705 ミリ秒かかったこの呼び出しでは、ほとんどの時間が「SELECT * FROMl_employee」SQL 呼び出しに費やされていることがわかります。これは明らかにテーブル全体のスキャン操作です。
• これまでのところ、システム内の低速通話エラーの根本原因が明確に発見されました。そして、コード最適化作業の次のステップを導くための十分な根拠があります。また、呼び出しインターフェイスのリストに戻って、リスト内の他の「遅い」呼び出しを 1 つずつ開いて、ARMS の助けを借りてそれらを 1 つずつ解決することもできます。ラグの問題を解消し、よりスムーズな体験をユーザーに提供します。
ステップ 5: 芽を摘み取る - アラームを設定する
もちろん、ARMS のアラーム設定で特定のインターフェイスまたはすべてのインターフェイスにアラームを設定して、ページが表示されたときにすぐに通知を受け取ることができます。インターフェースの運用保守チームが行き詰まっています。
もちろん、Web サイトのラグやページの読み込みの遅さに加えて、Web サイトにはバックグラウンド エラー、ページの読み込みの失敗、メモリ リークなどの一連の問題も発生します。 ARMS を使用してより多くの Web サイトの問題を迅速に解決する方法については、ARMS シリーズの記事「Web サイトの一般的な問題を 1 分で見つける」に注目してください。
関連する推奨事項:
mysql-Alibaba Cloud-RDS-MySQL-5.5 コンピューティングの問題
Qiniu Cloud のロボットを使用しているため、Baidu はそれをクロールできません。診断ではロボットが無効になっていることが示されます。何が悪かったのか?
以上がAlibaba Cloud ARMS は Java アプリケーションのスタック問題を実際に診断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。