コンテキスト
APMとは、Application Performance Monitoringの略で、アプリケーション・パフォーマンス・モニタリングのことです。現在、APMの主な機能は分散システムのパフォーマンス診断にフォーカスしており、コールチェーン表示、アプリケーショントポロジー分析などが主な機能です。
ShardingSphere は、アプリケーション・パフォーマンス・モニタリング・データの取得、保存、表示を行いません。 その代わりに、2 つのデータ・スライスである SQL 解析と SQL 実行に関するコア情報を、アプリケーション・パフォーマンス・モニタリング・システムに送信して処理します。言い換えれば、ShardingSphere は価値あるデータを生成し、それを標準プロトコルを介してシステムに配信することのみを担当します。ShardingSphere は、アプリケーション・パフォーマンス・モニタリング・システムと 2 つの方法でインターフェイスできます。
最初の方法は、OpenTracing APIを使用してパフォーマンス・トレース・データを送信することです。OpenTracingプロトコルを指向するAPM製品は、SkyWalking、Zipkin、JaegerのようなShardingSphereと自動的にインターフェイスすることができます。このアプローチの利点は、APMプレゼンテーション・システムとして、すべてのOpenTracing互換製品と互換性があることです。 導入企業が独自のAPMシステムを実装する意思があれば、OpenTracingプロトコルを実装するだけで、ShardingSphereからのリンク・トレーシング情報を自動的に提示することができます。欠点は、OpenTracingプロトコルの開発が安定していない、少ないの実装の新しいバージョンでは、プロトコル自体があまりにも中立的な、関連製品のパーソナライズされた実装のためのネイティブサポートほど強力ではないということです。
もう一つは、SkyWalkingのオートプローブを利用する方法です。ShardingSphereチームはSkyWalkingチームと協力し、SkyWalkingにShardingSphere Auto Probeを実装しました。
使用方法
OpenTracing プロトコルの使用
起動時にパラメータを追加
-Dorg.apache.shardingsphere.opentracing.tracer.class=org.apache.skywalking.apm.toolkit.opentracing.SkywalkingTracer
初期化メソッドの呼び出し
ShardingTracer.init();
ShardingTracer.init(new SkywalkingTracer());
SkyWalking Auto Probeの使用方法
効果
どの方法を使っても、ドッキングシステムにAPM情報を表示するのは簡単です。以下はSkyWalkingの例です。
アプリケーションアーキテクチャ
Sharding-Proxyを使用して、2つのデータベース192.168.0.1:0336と192.168.0.2:0336にアクセスし、それぞれのデータベースに2つのサブテーブルを作成します。
トポロジー図
グラフから、ユーザーはSharding-Proxyアプリケーションに18回アクセスし、1回のアクセスにつきデータベースごとに2回アクセスしています。これは、各アクセスが各ライブラリの2つのサブテーブルを含むため、毎回4つのテーブルにアクセスすることになります。
トレースデータ表示
トレースグラフからSQLの解析と実行を見ることができます。
/Sharding-Sphere/parseSQL/ このSQLの解析性能を示します。
/Sharding-Sphere/executeSQL/ 特定の実行における実際のSQLのパフォーマンスを示します。
トレースグラフから、異常が発生したノードを確認することができます。
/Sharding-Sphere/executeSQL/ SQL例外の実行結果を示します。
/Sharding-Sphere/executeSQL/ SQL 実行例外のログを示します。





