観察能力への深い飛び込み
8759 ワード
Apache ShardingSphere データベースプラスに従ってください-あなたが分散データベースシステムに任意のデータベースを変換することができます完全にデータサービスの生態系を作成するための私たちのコミュニティの指導の開発コンセプトは、簡単に、弾性スケーリング、データの暗号化機能&詳細とそれを強化することができます.
ユーザーはしばしば特定の問題を見つけるために実際のアプリケーションシナリオでApache ShardingSphereのパフォーマンスを監視する必要があります.
アプリケーション性能監視(APM)は、観測可能なデータを収集、蓄積、分析することにより、システム性能を監視し、診断することができる.また、パフォーマンス指標、トレース解析、アプリケーショントポロジーマッピングなどの機能を統合します.
これは、トレース、メトリックとログを利用して、システム操作から観測可能なデータを取得します.Apache ShardingSphereユーザーのための可観測機能を提供します.
Apache ShardingSphereは、開発者がログ出力を構成することができます.現在の可観測性特徴の主な目的は、ユーザーのために必要なメトリクスと追跡データを提供することです.
コンパイラとJavaエージェントを使用せずに、アプリケーションランタイム中にJavaクラス(任意に含まれている)を変更できるようにするコード生成ライブラリByteBuddyを使用して、ObjectBufferを完全に実装するための共通エージェントメソッドを選択しました.
さまざまなフレームワークやシステムのメトリックとトレースをサポートするプラグイン指向のデザインを採用します.したがって、ユーザーは機能をカスタマイズするか、より多くのビジネス特定のコンポーネントを自分で開発することができます.
現在、Apache ShardingSphereのエージェントモジュールPrometheus、Zipkin、Jaeger、スカイウォークをサポートし、OpenTelemration.
次の例では、Apache ShardingSphereプロキシにPromeTheusとZipkinの観測可能なデータプラグインを配備し、Apache ShardingSphereエージェントモジュールを使用する方法を示します.
ステップ1:必要なソフトウェアをインストールする
ステップ2 :配備
ポート
Prometheus Server : 9090
Zipkinサーバ: 9411
Apache ShardingSphereプロキシ:3307
Apache Shardingsphereエージェント( Prometheusプラグイン): 9000
プロメテウス
まず、監視オブジェクトをプロメテウスに追加します.この場合、Apache ShardingSphereエージェントポートアドレス9000をPrometheus設定ファイルに追加する必要があります
ジッパーは使いやすいです.次のコマンドを入力します.
Apache ShardingSphereプロキシとエージェントを配備するには、関係者を参照してくださいuser guide .
プロキシとエージェントを仮定する
構成の変更
変更する
それから、prometheusとzipkinプラグインを開始して、上記のポート設定に従ってPrometheusポートデータを9000に変えてください.
ファイルを変更
以前
さて、プロキシディレクトリの下で起動する準備ができました.
メトリクスと追跡データ
使用する MySQLコマンドラインで開始されたshardingsphereプロキシに接続してください.
データの結果をprometheusサーバとzipkinサーバで調べてください
クエリ
MySQLクライアントに接続した後に、Distin Web追跡情報を表示します
MySQLコマンドラインでデータを問い合わせる
PrometheusサーバとZipKinサーバのデータ結果を調べる
クエリ
Zipkin Web経由のクエリ追跡情報
スパンの慎重な検索を通じて、SQL文のトレース状態を確認することができます
Zipkin Webを介して依存関係をチェックするときにトポロジーマッピングを見つけることはできません.
そこで、以下のように設定します:
ダウンロード
まず、次のZipkin依存性をダウンロードし、プロキシのlibディレクトリにコピーします.
構成の変更
データソース設定ファイルの設定
MySQL 5x : ShardingSphereプロキシを再起動する
以前と同じアクセステストを行った後に、zipkinウェブを通して依存関係を見ることができ、以下のトポロジマッピングを見ることができます.
また、ユーザーは異なるシナリオに合わせて構成された異なるサンプリングレートを設定できます.Zipkinプラグインは、const、カウント、レート制限、および境界を含む様々なサンプリングレートの種類の構成をサポートしています.
高い要求量のシナリオに対しては、境界型を選択し、適切なサンプリングレートで設定し、データの収集量を減らすように設定します.
デフォルトで多くの一般的な監視フレームワークとシステムと互換性を持つ可観測性プラグインで、ユーザーは簡単にモニターして、Apache Shardingsphereを管理することができます.
今後は、監視機能を強化していきます.
ShardingSphere Github
Contributor Guideline
蒋平川
Spiraexシニアミドルウェアエンジニア、Apache TomcatとApache Shardingsphereの貢献者.
オープンソースの技術愛好家、Pingchuanはspesexコンソールとspexのブートを開発する自分自身を捧げます.
マオリン江
Spiraexシニアミドルウェアエンジニア&Apache Shardingsphereの貢献者.
ユーザーはしばしば特定の問題を見つけるために実際のアプリケーションシナリオでApache ShardingSphereのパフォーマンスを監視する必要があります.
アプリケーション性能監視(APM)は、観測可能なデータを収集、蓄積、分析することにより、システム性能を監視し、診断することができる.また、パフォーマンス指標、トレース解析、アプリケーショントポロジーマッピングなどの機能を統合します.
これは、トレース、メトリックとログを利用して、システム操作から観測可能なデータを取得します.Apache ShardingSphereユーザーのための可観測機能を提供します.
目的
Apache ShardingSphereは、開発者がログ出力を構成することができます.現在の可観測性特徴の主な目的は、ユーザーのために必要なメトリクスと追跡データを提供することです.
デザイン
コンパイラとJavaエージェントを使用せずに、アプリケーションランタイム中にJavaクラス(任意に含まれている)を変更できるようにするコード生成ライブラリByteBuddyを使用して、ObjectBufferを完全に実装するための共通エージェントメソッドを選択しました.
さまざまなフレームワークやシステムのメトリックとトレースをサポートするプラグイン指向のデザインを採用します.したがって、ユーザーは機能をカスタマイズするか、より多くのビジネス特定のコンポーネントを自分で開発することができます.
現在、Apache ShardingSphereのエージェントモジュールPrometheus、Zipkin、Jaeger、スカイウォークをサポートし、OpenTelemration.
例
次の例では、Apache ShardingSphereプロキシにPromeTheusとZipkinの観測可能なデータプラグインを配備し、Apache ShardingSphereエージェントモジュールを使用する方法を示します.
ステップ1:必要なソフトウェアをインストールする
prometheus-2.32.1.linux-amd64.tar.gz
( https://prometheus.io/download )zipkin-server-2.23.9-exec.jar
( https://zipkin.io/pages/quickstart.html )apache-shardingsphere-5.1.0-SNAPSHOT-shardingsphere-proxy-bin.tar.gz
apache-shardingsphere-5.1.0-SNAPSHOT-shardingsphere-agent-bin.tar.gz
MySQL 5.7.34ステップ2 :配備
ポート
Prometheus Server : 9090
Zipkinサーバ: 9411
Apache ShardingSphereプロキシ:3307
Apache Shardingsphereエージェント( Prometheusプラグイン): 9000
プロメテウス
まず、監視オブジェクトをプロメテウスに追加します.この場合、Apache ShardingSphereエージェントポートアドレス9000をPrometheus設定ファイルに追加する必要があります
prometheus.yml
.vi prometheus.yml
下に次のコードを追加しますstatic_configs
ファイルに- targets: ["localhost:9000"]
次に、開始します../prometheus &
ジッパージッパーは使いやすいです.次のコマンドを入力します.
java -jar Zipkin-server-2.23.9-exec.jar &
アパッチシャーApache ShardingSphereプロキシとエージェントを配備するには、関係者を参照してくださいuser guide .
プロキシとエージェントを仮定する
/tmp
ディレクトリは、以下の特定のエージェント展開ステップです構成の変更
変更する
agent.yaml
設定ファイル.それから、prometheusとzipkinプラグインを開始して、上記のポート設定に従ってPrometheusポートデータを9000に変えてください.
applicationName: shardingsphere-agent
ignoredPluginNames:
- Jaeger
- OpenTracing
- OpenTelemetry
- Logging
plugins:
Prometheus:
host: "localhost"
port: 9000
props:
JVM_INFORMATION_COLLECTOR_ENABLED : "true"
Jaeger:
host: "localhost"
port: 5775
props:
SERVICE_NAME: "shardingsphere-agent"
JAEGER_SAMPLER_TYPE: "const"
JAEGER_SAMPLER_PARAM: "1"
Zipkin:
host: "localhost"
port: 9411
props:
SERVICE_NAME: "shardingsphere-agent"
URL_VERSION: "/api/v2/spans"
SAMPLER_TYPE: "const"
SAMPLER_PARAM: "1"
OpenTracing:
props:
OPENTRACING_TRACER_CLASS_NAME: "org.apache.skywalking.apm.toolkit.opentracing.SkywalkingTracer"
OpenTelemetry:
props:
otel.resource.attributes: "service.name=shardingsphere-agent"
otel.traces.exporter: "zipkin"
Logging:
props:
LEVEL: "INFO"
コマンドを追加するファイルを変更
/tmp/apache-shardingsphere-5.1.0-shardingsphere-proxy-bin/bin/start.sh
エージェントの絶対パスを追加するshardingsphere-agent.jar
を起動します.以前
nohup java ${JAVA_OPTS} ${JAVA_MEM_OPTS} \
-classpath ${CLASS_PATH}**** ${MAIN_CLASS} >> ${STDOUT_FILE} 2>&1 &
アフターnohup java ${JAVA_OPTS} ${JAVA_MEM_OPTS} \
-javaagent:/tmp/apache-shardingsphere-5.1.0-shardingsphere-agent-bin/shardingsphere-agent.jar \
-classpath ${CLASS_PATH} ${MAIN_CLASS} >> ${STDOUT_FILE} 2>&1 &
開始するさて、プロキシディレクトリの下で起動する準備ができました.
bin/start.sh
ステップ3 :テストアクセスメトリクスと追跡データ
使用する
config-sharding.yaml
, Apache ShardingSphereプロキシによって提供される既定のSharding構成シナリオは、アクセスをテストしてデータを表示します.
クエリ
proxy_info
そして、prometheusウェブを通してデータ結果を得てください.


クエリ
parse_sql_dml_select_total
Prometheusウェブを通してのデータ結果.

スパンの慎重な検索を通じて、SQL文のトレース状態を確認することができます
select * from t_order
.
トポロジーマッピング
Zipkin Webを介して依存関係をチェックするときにトポロジーマッピングを見つけることはできません.
そこで、以下のように設定します:
ダウンロード
まず、次のZipkin依存性をダウンロードし、プロキシのlibディレクトリにコピーします.
構成の変更
データソース設定ファイルの設定
config-sharding.yaml
, はconf
プロキシのディレクトリ、およびコンフィギュレーションシェーディングの下部のデータソースに対応するURLに次の設定を追加します.ヤルdataSources
ノード:MySQL 5x :
statementInterceptors=brave.mysql.TracingStatementInterceptor
またはMySQL 8.x :queryInterceptors=brave.mysql8.TracingQueryInterceptor
以前と同じアクセステストを行った後に、zipkinウェブを通して依存関係を見ることができ、以下のトポロジマッピングを見ることができます.

サンプリングレート
また、ユーザーは異なるシナリオに合わせて構成された異なるサンプリングレートを設定できます.Zipkinプラグインは、const、カウント、レート制限、および境界を含む様々なサンプリングレートの種類の構成をサポートしています.
高い要求量のシナリオに対しては、境界型を選択し、適切なサンプリングレートで設定し、データの収集量を減らすように設定します.
Zipkin:
host: "localhost"
port: 9411
props:
SERVICE_NAME: "shardingsphere-agent"
URL_VERSION: "/api/v2/spans"
SAMPLER_TYPE: "boundary"
SAMPLER_PARAM: "0.001"
概要
デフォルトで多くの一般的な監視フレームワークとシステムと互換性を持つ可観測性プラグインで、ユーザーは簡単にモニターして、Apache Shardingsphereを管理することができます.
今後は、監視機能を強化していきます.
Apache ShardingSphereオープンソースプロジェクトのリンク
ShardingSphere Github
Contributor Guideline
共著者

蒋平川
Spiraexシニアミドルウェアエンジニア、Apache TomcatとApache Shardingsphereの貢献者.
オープンソースの技術愛好家、Pingchuanはspesexコンソールとspexのブートを開発する自分自身を捧げます.

マオリン江
Spiraexシニアミドルウェアエンジニア&Apache Shardingsphereの貢献者.
Reference
この問題について(観察能力への深い飛び込み), 我々は、より多くの情報をここで見つけました https://dev.to/apache_shardingsphere/a-deep-dive-into-observability-apache-shardingsphere-agent-4ogcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol