すぐにパフォーマンスの問題を見つけるためにスナップショット(スナップショット)機能を使用する方法

私たちはしばしば、この混乱は、問題があるユーザや顧客からのフィードバックプラットフォームを受けて発生したが、テスターのビルド環境の後に解決できない問題は、見て解約につながる、障害を再現する任意の方法ではありませんでした。

生産ライン環境は非常に多くの場合、散発的なバグは非常に複雑ですが、それは、キャプチャすることが困難だからです。特に、マイクロサービスの有病率は、システムの複雑さが増すと、ラインはすぐに過去に直面する大きな課題を解決するための障害とタイムリーな分析だけで解決する人に頼ることができます見つけます。しかし、人々の問題解決能力と速度は経験に依存しており、コストが非常に高く、キーパーソンの喪失後、部門はスピードが低下します全体の障害解決時間と調和していないので、時には、部門全体で協力する必要があります。

それが何のためとして、アプリケーションのインサイト(アプリケーションパフォーマンス管理プラットフォーム、以下愛と呼ぶ) - 私はあなたのパフォーマンス解析ツールを使用して簡単に持参するつもりです。この時間?あなたが知っているダウン見て -

 

 トレース&スナップショット機能

 

01 それ間違った事業運営を持っていますか?

コードを実行するには、多くの場合、この種の問題が発生します。

JVM

例えば、ディスクが不足しているようなメモリオーバーフロー、メモリリーク、GC一時停止、などの一般的なOOM

●データベース

例えば、一般的なデータベースの負荷忙しい、データベースサーバの過負荷、単一のSQL文の遅い実装は、データベース接続プールは、長い時間を取得するために、データベース接続プールへのアクセスの過剰な数、など

●外部サービス

このような外部サービスなどの一般的なネットワークの問題は、このようなインデックスの設定など、さまざまなアプリケーション間でのブロッキング呼び出しが適切ではありません

●その他の問題

上記の最も一般的なシナリオですが、深くプログラムに隠されているいくつかの問題があり、我々は理由を見つけるために詳細な分析コードが必要です。

スレッドのデッドロック、動作の周期、トランザクションの異常、JVMのクラッシュなど

 

02 トレースとは何ですか?

、実行中の状況を照会部分を修正し、最適化するために、コードのニーズを見つけ、コードの速度を向上、ユーザーエクスペリエンスを強化するために、トレース情報収集プログラムの実行時間。

業界一般的に用いられている方法は、以下の3つがあります。

 

●イベントメソッド

Java言語では、そのようなメソッド呼び出し、クラスローディング、アンローディングクラス、他のイベントにスレッドを残しとしてキャプチャするJVMTI(JVMツールインターフェイス)APIメソッドを使用して、これらのイベントに基づいて、行動のコードを分析します。

 

●統計的サンプリング

これらの機能の現在のコールスタック情報、通話記録機能と構造を収集するシステムのためのコール割り込みすべてのイベントは、呼び出しスタック、得られた情報と各関数の関数呼び出しグラフに基づいて、CPU使用率情報に表示されます。

 

●挿入コード

記録命令コード実行、終了時刻の開始時にターゲットプログラムの命令コードに挿入され、その後、関数呼び出し、関数のCPU使用率に由来する統計を介し。

 

03  トレースのAI

愛コードを介して、トレースを実現するためにスナップショット(統計的サンプリング)を挿入し、ゆっくりとトレース、エラートレース、SQLトレース、スナップショット4つのカテゴリを含むトレース:

 

●スロートレース

ユーザーのトランザクション応答時間がしきい値を超えた場合に取得されます。デフォルトは2秒ですが、ユーザーは自分の実際の状況あいに応じてすることができます - セット「スロー総務オフィスを設定します。 

●エラートレース

プログラムが異常または直接エラーを実行すると、我々は直接収集エラートレースは、サイトを復元します。

●SQLトレース

パフォーマンスが遅いSQLに記録された閾値、エージェント・スタック情報よりも大きい場合、SQLオープンプラットフォーム遅いトラッキング、および追跡閾値が遅いSQL、SQLを設定します。デフォルトでは、ユーザーは自分の実際の状況に応じて愛できる0.5秒である - 「データベースの設定」をセット

ユーザーは、SQLの遅い実装するには、SQL実行計画、クロールを開くことができます。



●スナップショット

原則は、顧客サービスの呼び出しコードはスナップショットゆっくり実行している、と方法、時間のかかる分析、スナップショットのトレースされ、多くの時間の時間でスナップショットです。

コレクションは、4 * apdex_T(デフォルト2秒)、毎分スナップショットの数ではなく、複数の上の2つの連続した分のWebトランザクションの平均応​​答時間を支配します。

ユーザーはあなたが動的にもビジネスに基づくことができ、閾値を調整するために、この機能を使用することができ、任意の構成を行う必要はありません。


 

ユーザー事例

 

01 質問の種類:コネクションレスサービスが拒否されます

1)説明:ユーザーからのフィードバックは、ログインすることができません

 

2)アンケート及び分析

a:登录平台查看登出的接口情况

登录接口为 rest / api / login ,选择该 web 事务后进入查看详情,使用“筛选”进行条件过滤,获取失败的 trace 。


b:查看错误 trace

在总览页面,通过异常分析,看到 http 响应码和异常类、异常信息,这时候我们已经清楚问题原因了。


点击“详情”查看程序的执行情况,可以看到程序循环了三次,均出现错误


在错误详情,查看详情的调用栈,我们排查到“caused by java.net.ConnectException:拒绝连接(connection refused)




3)解决方案

与运维人员配合重启负责注册模块的服务器后,业务恢复正常。

4)建议方案

在报警处针对重要业务服务进行配置,当响应时间超过阈值或者出现频率超过阈值时,提前报警,挽回损失。

4.1 新功能体验

登录平台后可以查看报警状态


进入事务详情,鼠标悬停查看该时间段内发生的最近最严重的报警详情


点击红点跳转报警记录查看该事务在该时间段内的所有详情


4.2 如何配置报警

a:从 Ai 页面点击报警

进入报警页面,再选择报警规则,创建报警规则名称、选择类型、自定义规则的可用与不可用时间(比如节假日不可用等)


b:选择报警对象

目前系统支持按照具体 web 事务、按照不同集群、按照高频 web 事务入口( cpm >10)来进行选择,我们选择按照具体的 web 事务为报警对象。


c:选择严重条件

根据我们的业务述求,只要过去10分钟内该事务的平均响应时间大于2秒,而且至少有5分钟的平均响应时间大于2s, 则触发严重报警。


d:选择警告条件

根据我们的业务述求,只要过去10分钟内该事务的平均响应时间大于1秒,而且至少有5分钟的平均响应时间大于1s, 则触发严重报警。


此时我们报警规则已配置好,当事务触发报警时,便可在 Ai 平台直接查看是否有报警、是否严重。如果您想及时感知报警,可进行进一步的配置。

4.3 如何接收报警

a:创建接收人


b:选择接收方式

現在、愛デフォルトのメールとウェブフックアラームモードが、オープンクラウドアラート(インテリジェントアラームプラットフォーム、CAプラットフォームと呼ばれる)、SMS、マイクロ文字、爪や他の通知方法のサポートを通じて、より詳細なアラーム分布とアラーム圧縮が無料で(見ることができますバージョン、十分に小さな十分な運用および保守チーム)https://www.aiops.com/CAintroduce.html

C:受信者とルールに関連するアラーム

行動やルールをトリガすることができ、アラームを選択


私たちはしばしばいくつかの奇妙な愛にアラームジュニアパートナーを参照するためのプラットフォームを使用して、私は愛のプラットフォームそれで、なぜアラーム・ステータス情報が表示されませんか?

 

はい、愛の深さとアラーム機能は、新機能の開発に関連している、私も感じバンバンダを体験して進め!小さなパートナーがそれを楽しみにしててください12月中旬上の特徴ライン、〜

 

あなたがいないOneAPMユーザであれば、クリックし  https://user.oneapm.com/pages/v2/signup 即座にパフォーマンスの最適化それを感じるの無料試用のために今すぐ登録!

 

ご質問や提案がある場合は、プロセスを使用することで、私たちがお手伝いをさせていただきます、お気軽にお問い合わせください。

 

QQ:321095806

コミュニティーます。http://club.oneapm.com

おすすめ

転載: www.cnblogs.com/oneapm/p/11934446.html