バージョン:JDK1.8
ES:6.6+
ここで使用される最新のパッケージ:apache-skywalking-apm-8.1.0
スタンドアロン展開
1.1インストールパッケージをダウンロードします。
wget https://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/8.1.0/apache-skywalking-apm-8.1.0.tar.gz
1.2解凍して、configディレクトリに入ります。
tar -zxvf apache-skywalking-apm-8.1.0.tar
cd config
1.3application.yml構成ファイルを変更します
[外部リンク画像の転送に失敗しました。元のサイトにヒル防止リンクメカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします(img-GVrCmsi3-1608185731042)(http://192.168.15.111:4999/server/ index.php?s = / api / attachment / visitFile / sign / b694edcaccd072bc40af3fc8241fb4b3&showdoc = .jpg)]
storage:
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
nameSpace: ${SW_NAMESPACE:"namespace-"}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:9002}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
trustStorePath: ${SW_STORAGE_ES_SSL_JKS_PATH:""}
trustStorePass: ${SW_STORAGE_ES_SSL_JKS_PASS:""}
user: ${SW_ES_USER:"username"}
password: ${SW_ES_PASSWORD:"password"}
1.4skwを開始します
binディレクトリを入力します
oapService.sh:バックエンドデータサービスを
開始しますwebappService.sh:フロントエンドページサービスを
開始しますstartup.sh:2つのサービスを開始しますこれ
までのところ、スタンドアロンバージョンを使用できます。デフォルトのIP:ポートを要求するだけです。
2.クラスターの展開
2.1application.yml構成ファイルを変更する
レジストリが飼育係かnacosかを選択します
2.2フロントエンド構成を変更する
/apache-skywalking-apm-bin/webapp/webapp.yml
listOfServers:現在のクラスターのip:port、ip:portのリストに変更します
2.3各ノードを起動します
スカイウォーキング入門
スカイウォーキングアーキテクチャは、次のもので構成されています。
- Skywalking Agent:トレース(コールチェーンデータ)とメトリック(インデックス)情報を収集してレポートし、HTTPまたはgRPCを介してSkywalkingCollectorにデータを送信します
- Skywalking Collector:エージェントから渡されたトレースデータとメトリックデータを統合および分析するリンクデータコレクターは、Analysis Coreモジュールによって処理され、関連するデータストレージに保存されます。同時に、二次統計を実行し、アラームを監視します。クエリコアモジュールを介して。
- ストレージ:Skywalkingストレージ、ElasticSearch、Mysql、TiDB、H2などをデータストレージのストレージメディアとしてサポートします
- UI:着陸データを表示するために使用されるWeb視覚化プラットフォーム。現在、SkyWalkingのメインUIとしてRocketBotが正式に採用されています。
3.スカイウォーキングの主な機能:
- リンクモニタリング
- 指標:ランタイムデータ、ヘルスデータ、セルフチェック
3.1バイトコードの機能強化
Javaは、バイナリバイトコードをJVMメモリにロードすることにより、クラスのロードプロセスを完了します。JVM実行プロセス中にクラスを動的に作成する場合は、Javaコンパイルシステムの形式と構造に従って.classファイルを整理し、対応するバイナリデータを生成してから、バイナリデータをロードして対応するものに変換する必要があります。クラス。クラスの動的作成を完了できます。これらの機能を実現する方法はたくさんあります。
- Javaプロキシを使用してJavaバイトコードインジェクションを実装する
- Javaassistを使用してバイトコードを変更します
- ASMを使用してバイトコードも変更する
- 公式サイト:https://skywalking.apache.org/zh/
- UI简介:https://github.com/apache/skywalking/blob/v8.1.0/docs/en/ui/README.md
3.2skywalkingUIの概要
SkyWalkingの公式UIは、分散型SkyWalking観測用のデフォルトの強力な視覚化関数クラスターを提供します
。SkyWalkingダッシュボードには、次の部分が含まれています。
- 機能タブ選択エリア主な機能はこちらです。詳細については、以下で紹介します。
- リロード領域:定期的なリロードや手動のリロードなど、リロードメカニズムを制御します。
- タイムセレクター。タイムゾーンと時間範囲を制御します。中国語/英語の切り替えボタンがあります。デフォルトでは、UIはブラウザ言語を使用して
データベースダッシュボードを設定し、応答時間、応答時間の分布、スループット、SLA、低速SQL、およびその他のデータベースの詳細情報を表示します。これは便利です。データベースステータスを視覚的に表示するためデータベース
平均応答時間:データベース平均応答時間
データベースアクセス成功率:データベースアクセス成功率
データベーストラフィック: 1分あたりの
データベースアクセスデータベースアクセス遅延パーセンテージ:データベースアクセス遅延パーセンテージ
slowステートメント: slow SQL
すべてのデータベースロード、:
Un-Healthデータベース(成功率):
3.3ダッシュボード
ダッシュボードは、サービス、サービスインスタンス、およびエンドポイントのメトリックを提供します。ここでいくつかの測定用語を理解する必要があります
- スループットCPM、つまり1分あたりの通話数
- Apdexスコア、WIKIのApdexを参照
- p99、p95、p90、p75、p50を含む応答時間のパーセンテージ。WIKIのパーセンタイルを参照してください。
- SLAは成功率を意味します。HTTPの場合、応答が200の要求を意味します
サービス、インスタンス、およびダッシュボードセレクターは、ページ全体を再読み込みする代わりに、手動で再読み込みできます。オーバーロードされた領域**はこれらのセレクターをオーバーロードしないことに注意してください
3.4ダッシュボードAPM
- 最初の列:さまざまなコンテンツテーマ、アプリケーション/データベース/コンテナなどの監視パネル。
- 2番目の列:現在のデータの編集/エクスポート/表示データのインポート/さまざまなサービスエンドポイントの表示のスクリーニングを含む操作
- 3番目の列:さまざまな緯度、サービス/インスタンス/エンドポイントで表示
3.4.2グローバルグローバルディメンション
- 最初の列:グローバル、サーバー、インスタンス、エンドポイントのさまざまな表示パネル、内部コンテンツを調整できます
- サービス負荷:1分あたりのサービスリクエスト
- 遅いサービス:遅い応答サービス、単位ミリ秒
- Un-Health services(Apdex):Apdexパフォーマンスインデックス、1は満点です。
- グローバル応答待ち時間:応答遅延のパーセンテージ、さまざまな遅延時間のパーセンテージ、単位ミリ秒
- グローバルヒートマップ:サービス応答時間の熱分布マップ。期間内のさまざまな応答時間の数に応じて色深度を示します。
- 下部のバー:データを表示する時間間隔。クリックして調整します。
3.4.3サービスディメンション-ServiceApdex(番号):現在のサービス評価
- Service Apdex(折れ線グラフ):さまざまな時点でのApdexスコア
- 成功率(数):リクエスト成功率
- 成功率(折れ線グラフ):さまざまな時点での成功率を要求します
- サービス負荷(数):1分あたりのリクエスト数
- サービス負荷(折れ線グラフ):さまざまな時間における1分あたりのリクエスト数
- サービスの平均応答時間:平均応答遅延(ミリ秒単位)
- グローバル応答時間パーセンタイル:応答遅延のパーセンテージ
- サービスインスタンスのロード:各サービスインスタンスの1分あたりのリクエスト数
- サービスインスタンスの表示:各サービスインスタンスの最大遅延
- サービスインスタンスの成功率:各サービスインスタンスのリクエストの成功率
3.4.4インスタンスディメンション
-サービスインスタンスの負荷:現在のインスタンスの1分あたりのリクエスト数
- サービスインスタンスの成功率:現在のインスタンスのリクエストの成功率
- サービスインスタンスの待機時間:現在のインスタンスの応答遅延
- JVM CPU:jvmが占めるCPUの割合
- JVMメモリ:JVMメモリ占有サイズ、単位m
- JVM GC時間:YGCおよびOGCを含むJVMガベージコレクション時間
- JVM GCカウント:YGCおよびOGCを含むJVMガベージコレクション時間
- CLR XX:JVM仮想マシンに似ています
3.4.5エンドポイント(API)ディメンション
- 現在のサービスのエンドポイント負荷:各エンドポイントの1分あたりのリクエスト数
- 現在のサービスの遅いエンドポイント:各エンドポイントの最も遅いリクエスト時間(ミリ秒単位)
- 現在のサービスでの成功率:各エンドポイントの成功率を要求します
- エンドポイントの読み込み:現在のエンドポイントの各期間のデータをリクエストします
- エンドポイントの平均応答時間:現在のエンドポイントの各期間の要求行の応答時間
- エンドポイント応答時間パーセンタイル:現在のエンドポイントの各期間の応答時間のパーセンテージ
- エンドポイント成功率:現在のエンドポイントの各期間のリクエスト成功率
3.5トポロジー
トポロジー図は、インジケーターを使用してサービスとインスタンスの関係を示します
- トポロジは、すべてのサービスを含むデフォルトのグローバルトポロジを示しています。
- サービスセレクタは、アップストリームとダウンストリームを含む直接的な関係の表示をサポートします。
- カスタムグループは、サービスグループのサブトポロジ機能を提供します。
- サービスをクリックすると、サービスのドリルダウンが開きます。グラフは、選択したサービスを測定、追跡、および照会できます。
- サービスインジケータの関係は、サービスRPCの相互作用とこれら2つのサービスのインスタンスの測定値を提供します
3.6追跡クエリ
- 追跡された部分リストは追跡されたリストではありません。各トレースには、異なるサービスに属するいくつかのセグメントがあります。すべてのサービスまたはトラッキングIDを介してクエリを実行する場合、同じトラッキングIDを持つさまざまなセグメントを一覧表示できます。
- スパンがクリック可能かどうかに関係なく、各スパンの詳細が左側にポップアップ表示されます。
- 追跡ビューは、追跡を視覚化するための3つの典型的で異なる使用状況ビューを提供します
4.アラーム
# Sample alarm rules.
# 1:过去3分钟内服务平均响应时间超过1秒
# 2:服务成功率在过去2分钟内低于80%
# 3:服务90%响应时间在过去3分钟内低于1000毫秒
# 4:服务实例在过去2分钟内的平均响应时间超过1秒
# 5:端点平均响应时间过去2分钟超过1秒
# 6:数据库的响应时间在最后10分钟的2分钟内超过1秒