TiProxy コマンドラインフラグ
このドキュメントでは、TiProxy を起動する際に使用できるコマンドラインフラグについて説明します。また、 tiproxyctlのフラグについても説明します。
TiProxy サーバー
このセクションでは、サーバープログラムtiproxyのフラグを一覧表示します。
--advertise-addr
- クライアントがこの TiProxy インスタンスに接続するために使用するアドレスを指定します。
- タイプ:
string - デフォルト:
"" - このフラグは、 TiUPまたはTiDB Operatorを使用して TiProxy をデプロイすると自動的に設定されます。設定されていない場合は、TiProxy インスタンスの外部 IP アドレスが使用されます。
--config
- TiProxy 構成ファイルのパスを指定します。
- タイプ:
string - デフォルト:
"" - 設定ファイルを指定する必要があります。詳細な設定項目については、 TiProxy を設定するを参照してください。設定ファイルが変更されると、TiProxyは自動的に設定を再読み込みするため、設定ファイルを直接変更しないでください。3または
kubectl edit tctiup cluster edit-config実行して設定を変更することをお勧めします。
TiProxy コントロール
このセクションでは、クライアント プログラムtiproxyctlのインストール方法、構文、オプション、およびコマンドについて説明します。
TiProxyコントロールをインストールする
TiProxy Control は、次の 2 つの方法のいずれかを使用してインストールできます。
注記:
TiProxy Control はデバッグ用に特別に設計されており、TiProxy に将来導入される機能と完全に互換性がない可能性があります。情報を取得するためにこのツールをアプリケーションやユーティリティの開発に組み込むことは推奨されません。
TiUPを使用してインストール
TiUPインストールした後、 tiup install tiproxyコマンドを使用して TiProxy と TiProxy Control のバイナリプログラムをダウンロードしてインストールできます。インストール後、 tiup --binary tiproxyコマンドを使用して TiProxy のインストールパスを確認できます。TiProxy Control は TiProxy と同じディレクトリにあります。
例えば:
tiup install tiproxy
# download https://tiup-mirrors.pingcap.com/tiproxy-v1.3.0-linux-amd64.tar.gz 22.51 MiB / 22.51 MiB 100.00% 13.99 MiB/s
ls `tiup --binary tiproxy`ctl
# /root/.tiup/components/tiproxy/v1.3.0/tiproxyctl
ソースコードからコンパイルする
コンパイル環境要件: 行く 1.21以降
コンパイル手順: TiProxyプロジェクトのルート ディレクトリに移動し、 makeコマンドを使用してコンパイルし、 tiproxyctl生成します。
git clone https://github.com/pingcap/tiproxy.git
cd tiproxy
make
ls bin/tiproxyctl
構文
tiproxyctl [flags] [command]
例えば:
tiproxyctl --host 127.0.0.1 --port 3080 config get
オプション
--host
- TiProxyサーバーのアドレスを指定します。
- タイプ:
string - デフォルト:
localhost
--port
- TiProxy API ゲートウェイのポート番号を指定します。
- タイプ:
int - デフォルト:
3080
--log_encoder
tiproxyctlのログ形式を指定します。タイプ:
stringデフォルト:
"tidb"デフォルトではTiDBと同じログ形式が使用されます。ただし、次のいずれかを指定することもできます。
console: より人間が読みやすい形式json: 構造化されたログ形式
--log_level
- tiproxyctl のログ レベルを指定します。
- タイプ:
string - デフォルト:
"warn" debuginfoerrorできpanicwarn
-k, --insecure
- サーバーにダイヤルするときに TLS CA 検証をスキップするかどうかを指定します。
- タイプ:
boolean - デフォルト:
false - テストに使用されます。
--ca
- サーバーにダイヤルするときに CA を指定します。
- タイプ:
string - デフォルト:
""
--cert
- サーバーにダイヤルするときに証明書を指定します。
- タイプ:
string - デフォルト:
""
コマンド
config set
tiproxyctl config setコマンドは標準入力からTOML形式の設定ファイルを読み取り、これらの設定項目をTiProxyに設定します。指定されていない設定項目は変更されないため、変更したい項目のみを指定してください。
次の例では、他の構成項目は変更せずに、 log.level 'warning'に設定します。
$ cat test.toml
[log]
level='warning'
$ cat test.toml | tiproxyctl config set
""
$ tiproxyctl config get | grep level
level = 'warning'
config get
tiproxyctl config getコマンドは、現在の TiProxy 構成を TOML 形式で取得するために使用されます。
health
tiproxyctl healthコマンドは、TiProxy のヘルスステータスと設定のチェックサムを取得するために使用されます。TiProxy が正常に動作している場合は、設定のチェックサムを返します。TiProxy がシャットダウンまたはオフラインの場合は、エラーを返します。
出力例:
{"config_checksum":3006078629}
traffic capture
tiproxyctl traffic captureコマンドはトラフィックをキャプチャするために使用されます。
オプション:
--output: (必須) トラフィック ファイルを保存するディレクトリを指定します。--duration: (必須) キャプチャ期間を指定します。単位はm(分)、h(時間)、d(日) のいずれかです。例えば、--duration=1h指定すると 1 時間のトラフィックがキャプチャされます。
例:
次のコマンドは、 10.0.1.10:3080の TiProxy インスタンスに接続し、1 時間のトラフィックをキャプチャし、それを TiProxy インスタンスの/tmp/trafficディレクトリに保存します。
tiproxyctl traffic capture --host 10.0.1.10 --port 3080 --output="/tmp/traffic" --duration=1h
traffic replay
tiproxyctl traffic replayコマンドは、キャプチャされたトラフィックを再生するために使用されます。
オプション:
--username: (必須) 再生用のデータベース ユーザー名を指定します。--password: (オプション) ユーザー名のパスワードを指定します。デフォルト値は空の文字列""です。--input: (必須) トラフィック ファイルを含むディレクトリを指定します。--speed: (オプション) 再生速度の乗数を指定します。範囲は[0.1, 10]です。デフォルト値は1で、元の速度で再生されます。
例:
次のコマンドは、ユーザー名u1とパスワード123456を使用して10.0.1.10:3080の TiProxy インスタンスに接続し、TiProxy インスタンスの/tmp/trafficディレクトリからトラフィック ファイルを読み取り、元の速度の 2 倍でトラフィックを再生します。
tiproxyctl traffic replay --host 10.0.1.10 --port 3080 --username="u1" --password="123456" --input="/tmp/traffic" --speed=2
traffic cancel
tiproxyctl traffic cancelコマンドは、現在のキャプチャまたは再生タスクをキャンセルするために使用されます。
traffic show
tiproxyctl traffic showコマンドは、履歴キャプチャおよび再生タスクを表示するために使用されます。
出力のstatusフィールドはタスクのステータスを示し、次の値が可能です。
done: タスクは正常に完了しました。canceled: タスクはキャンセルされました。理由はerrorフィールドで確認できます。running:タスクは実行中です。完了率はprogressフィールドで確認できます。
出力例:
[
{
"type": "capture",
"start_time": "2024-09-01T14:30:40.99096+08:00",
"end_time": "2024-09-01T16:30:40.99096+08:00",
"duration": "2h",
"output": "/tmp/traffic",
"progress": "100%",
"status": "done"
},
{
"type": "capture",
"start_time": "2024-09-02T18:30:40.99096+08:00",
"end_time": "2024-09-02T19:00:40.99096+08:00",
"duration": "2h",
"output": "/tmp/traffic",
"progress": "25%",
"status": "canceled",
"error": "canceled manually"
},
{
"type": "capture",
"start_time": "2024-09-03T13:31:40.99096+08:00",
"duration": "2h",
"output": "/tmp/traffic",
"progress": "45%",
"status": "running"
}
]