TiDB 監視メトリクス
TiUPを使用して TiDB クラスターをデプロイすると、監視システム (Prometheus および Grafana) も同時にデプロイされます。監視アーキテクチャについては、 TiDB 監視フレームワークの概要参照してください。
Grafana ダッシュボードは、概要、PD、TiDB、TiKV、Node_exporter、ディスク パフォーマンス、パフォーマンス概要を含む一連のサブ ダッシュボードに分かれています。TiDB ダッシュボードは、TiDB パネルと TiDB 概要パネルで構成されています。2 つのパネルの違いは、次の点です。
- TiDB パネル: クラスターの異常のトラブルシューティングのために可能な限り包括的な情報を提供します。
- TiDB サマリー パネル: TiDB パネル情報から、ユーザーが最も関心のある部分を抽出し、若干の変更を加えています。日常のデータベース操作でユーザーが関心を持つデータ (QPS、TPS、応答遅延など) を提供し、表示またはレポートする監視情報として機能します。
このドキュメントでは、TiDB ダッシュボードに表示されるいくつかの主要な監視メトリックについて説明します。
主要な指標の説明
TiDB ダッシュボードに表示される主要なメトリックを理解するには、次のセクションを確認してください。
クエリの概要
- 所要時間: 実行時間
- クライアントのネットワーク要求が TiDB に送信されてから、TiDB が要求を実行した後にクライアントに返されるまでの時間。通常、クライアント要求は SQL ステートメントの形式で送信されます
COM_SEND_LONG_DATA
COM_PING
COM_SLEEP
コマンドの実行時間も含まれる場合がありますCOM_STMT_FETCH
- TiDBはマルチクエリをサポートしているため、
select 1; select 1; select 1;
ような複数のSQL文を一度に送信することができます。この場合、このクエリの合計実行時間には、すべてのSQL文の実行時間が含まれます。
- クライアントのネットワーク要求が TiDB に送信されてから、TiDB が要求を実行した後にクライアントに返されるまでの時間。通常、クライアント要求は SQL ステートメントの形式で送信されます
- 1秒あたりのコマンド数: コマンド実行結果の成功または失敗に応じて分類される、TiDBによって1秒あたりに処理されるコマンドの数
- QPS: すべての TiDB インスタンスで 1 秒あたりに実行される SQL ステートメントの数
SELECT
INSERT
のステートメントの種類に応じてカウントされますUPDATE
- インスタンス別CPS: コマンド実行結果の成功または失敗に応じて分類された各TiDBインスタンスのコマンド統計
- 失敗したクエリOPM: 各TiDBインスタンスで1分あたりにSQL文を実行したときに発生したエラーに応じたエラーの種類(構文エラーや主キーの競合など)の統計。エラーが発生したモジュールとエラーコードが含まれます。
- スロークエリ: スロークエリの処理時間の統計 (スロークエリ全体の時間コスト、コプロセッサーの時間コスト、コプロセッサーのスケジュールの待機時間)。スロークエリは、内部SQL文と一般SQL文に分類されます。
- 接続アイドル期間: アイドル接続の期間
- 999/99/95/80 期間: 異なるタイプの SQL ステートメントの実行時間の統計 (異なるパーセンタイル)
クエリの詳細
- 期間 80/95/99/999 インスタンス別: 各 TiDB インスタンスでの SQL ステートメントの実行時間の統計 (異なるパーセンタイル)
- 失敗したクエリ OPM の詳細: 各 TiDB インスタンスで 1 分あたりに SQL ステートメントを実行したときに発生したエラーに応じたエラーの種類 (構文エラーや主キーの競合など) の統計
- 内部 SQL OPS: TiDB クラスター全体で 1 秒あたりに実行される内部 SQL ステートメント。内部 SQL ステートメントは内部で実行され、通常はユーザー SQL ステートメントまたは内部でスケジュールされたタスクによってトリガーされます。
サーバ
- 稼働時間: 各 TiDB インスタンスの実行時間
- メモリ使用量: 各 TiDB インスタンスのメモリ使用量の統計。プロセスが占有するメモリと、ヒープ上のGolangによって適用されるメモリに分かれています。
- CPU使用率: 各TiDBインスタンスのCPU使用率の統計
- 接続数: 各 TiDB インスタンスに接続されているクライアントの数
- オープンFDカウント: 各TiDBインスタンスのオープンファイル記述子の統計
- 切断数: 各 TiDB インスタンスから切断されたクライアントの数
- イベント OPM: 「開始」、「終了」、「正常シャットダウン」、「強制終了」、「ハング」などの主要なイベントの統計
- Goroutine 数: 各 TiDB インスタンス上の Goroutine の数
- 準備ステートメント数: 各 TiDB インスタンスで実行される
Prepare
ステートメントの数とその合計数 - Keep Alive OPM: 各 TiDB インスタンスで 1 分ごとにメトリックが更新される回数。通常は注意する必要はありません。
- パニックと重大なエラー: TiDB で発生したパニックと重大なエラーの数
- タイムジャンプバックOPS: 各TiDBインスタンスでオペレーティングシステムが毎秒巻き戻す回数
- トークン取得期間: 各接続でトークンを取得するのにかかる時間
- スキップBinlog数: TiDB でのbinlog書き込み失敗の数
- クライアントデータトラフィック: TiDBとクライアントのデータトラフィック統計
トランザクション
- トランザクションOPS: 1秒あたりに実行されるトランザクションの数
- 期間: トランザクションの実行期間
- トランザクションステートメント数: トランザクション内のSQLステートメントの数
- トランザクション再試行回数: トランザクションが再試行される回数
- セッション再試行エラー OPS: トランザクション再試行中に 1 秒あたりに発生したエラーの数。このメトリックには、再試行の失敗と再試行の最大回数の超過という 2 つのエラー タイプが含まれます。
- コミット トークン待機期間: トランザクション コミット中のフロー制御キューでの待機期間。待機期間が長い場合は、コミットするトランザクションが大きすぎてフローが制御されていることを意味します。システムにまだ使用可能なリソースがある場合は、システム変数
tidb_committer_concurrency
を増やすことでコミット プロセスを高速化できます。 - KVトランザクションOPS: 各 TiDB インスタンス内で 1 秒あたりに実行されるトランザクションの数
- ユーザートランザクションは、内部メタデータの読み取りやユーザートランザクションのアトミック再試行など、TiDBで複数のトランザクション実行をトリガーする可能性があります。
- TiDBの内部的にスケジュールされたタスクもトランザクションを通じてデータベース上で動作し、このパネルにも含まれています。
- KVトランザクション期間: 各TiDB内でトランザクションを実行するのに費やされた時間
- トランザクション領域数: トランザクションで操作される領域の数
- トランザクション書き込み KV 数レートと合計: トランザクションで書き込まれる KV のレートと書き込まれた KV の合計
- トランザクション書き込みKV数: トランザクションで操作されたKVの数
- ステートメントロックキー: 1つのステートメントのロックの数
- ハートビート送信期間: トランザクションがハートビートを送信する期間
- トランザクション書き込みサイズ バイト レートと合計: トランザクションでバイトが書き込まれるレートと書き込まれたバイトの合計
- トランザクション書き込みサイズバイト: トランザクションで書き込まれたデータのサイズ
- 悲観的ロックの取得期間: ロックの追加にかかる時間
- TTL ライフタイム到達カウンタ: TTL の上限に達したトランザクションの数。TTL 上限のデフォルト値は 1 時間です。これは、悲観的トランザクションの最初のロックまたは楽観的トランザクションの最初の事前書き込みから 1 時間が経過したことを意味します。TTL 上限のデフォルト値は 1 時間です。TTL ライフの上限は、TiDB 構成ファイルで
max-txn-TTL
変更することで変更できます。 - ロードセーフポイントOPS:
Safepoint
がロードされる回数。3Safepoint
、トランザクションがデータを読み取るときにSafepoint
より前のデータが読み込まれないようにし、データの安全性を確保するためのものですSafepoint
より前のデータはGCによってクリーンアップされる可能性があります。 - 悲観的ステートメント再試行 OPS:悲観的ステートメントの再試行回数。ステートメントがロックを追加しようとすると、書き込み競合が発生する可能性があります。この場合、ステートメントは新しいスナップショットを取得し、再度ロックを追加します。
- 1秒あたりのトランザクションタイプ: 2フェーズコミット (2PC)、非同期コミット、および1フェーズコミット (1PC) メカニズムを使用して1秒あたりにコミットされたトランザクションの数 (成功トランザクションと失敗トランザクションの両方を含む)
執行者
- 解析時間: SQL文の解析時間の統計
- コンパイル時間: 解析されたSQL ASTを実行プランにコンパイルする時間の統計
- 実行時間: SQL文の実行時間の統計
- 高価なエグゼキュータOPS
Sort
Merge Join
など、TopN
秒あたりHash Join
多くのシステムStream Agg
を消費するオペレータHash Agg
統計Index Look Up Join
- プラン キャッシュを使用したクエリ OPS: 1 秒あたりのプラン キャッシュを使用したクエリの統計
- プラン キャッシュ ミス OPS: 1 秒あたりのプラン キャッシュ ミス回数の統計
- プランキャッシュメモリ使用量: 各 TiDB インスタンスにキャッシュされた実行プランによって消費される合計メモリ
- プランキャッシュプラン数: 各 TiDB インスタンスにキャッシュされた実行プランの合計数
ディストリビューションSQL
- Distsql 期間: Distsql ステートメントの処理時間
- Distsql QPS: Distsql ステートメントの統計
- Distsql 部分 QPS: 1 秒あたりの部分結果の数
- スキャンキー数: 各クエリがスキャンするキーの数
- スキャンキー部分数: 各部分結果がスキャンするキーの数
- 部分数: 各SQL文の部分結果の数
KV エラー
- KV バックオフ期間: KV 再試行要求が続く合計期間。TiDB は、TiKV に要求を送信するときにエラーが発生する可能性があります。TiDB には、TiKV へのすべての要求に対する再試行メカニズムがあります。この
KV Backoff Duration
項目には、要求の再試行の合計時間が記録されます。 - TiClientリージョンエラー OPS: TiKV によって返されたリージョン関連のエラー メッセージの数
- KV バックオフ OPS: TiKV によって返されたエラー メッセージの数
- ロック解決OPS: ロックを解決するためのTiDB操作の数。TiDBの読み取りまたは書き込み要求がロックに遭遇すると、ロックを解決しようとします。
- その他のエラー OPS: ロックのクリアや更新など、その他の種類のエラーの数
SafePoint
KVリクエスト
次のメトリックは、TiKV に送信されたリクエストに関連しています。再試行リクエストは複数回カウントされます。
- KVリクエストOPS: TiKVに従って表示されるKVリクエストの実行時間
- KVリクエスト期間99(店舗別):TiKVに従って表示されるKVリクエストの実行時間
- KVリクエスト期間99(タイプ別):リクエストタイプに応じて表示されるKVリクエストの実行時間
- ステイル読み取りヒット/ミスオペレーション
- ヒット: 古い読み取りを正常に実行した 1 秒あたりのリクエスト数
- ミス: 古いデータの読み取りを試みたが失敗したリクエストの1秒あたりの数
- ステイル読み取り要求操作:
- クロスゾーン: リモートゾーンで古いデータの読み取りを試みる 1 秒あたりのリクエスト数
- local : ローカルゾーンで古いデータの読み取りを試みる 1 秒あたりのリクエスト数
- ステイル読み取り要求トラフィック:
- クロスゾーンイン: リモートゾーンで古い読み取りを試みる要求に対する応答の着信トラフィック
- クロスゾーンアウト: リモートゾーンで古い読み取りを試みる要求の送信トラフィック
- local-in : ローカルゾーンで古い読み取りを試みる要求に対する応答の着信トラフィック
- local-out : ローカルゾーンで古い読み取りを試みる要求の送信トラフィック
PDクライアント
- PD クライアント CMD OPS: PD クライアントが 1 秒あたりに実行したコマンドの統計
- PDクライアントCMD期間: PDクライアントがコマンドを実行するのにかかる時間
- PD クライアント CMD 失敗 OPS: PD クライアントによって 1 秒あたりに実行された失敗したコマンドの統計
- PD TSO OPS: TiDBがPDから1秒あたりに取得するTSOの数
- PD TSO待機時間: TiDBがPDからTSOが返されるまで待機する時間
- PD TSO RPC期間: TiDBがPDにリクエストを送信して(TSOを取得するために)からTiDBがTSOを受信するまでの期間
- TSO開始待機期間: TiDBがPDにリクエストを送信して(
start TSO
取得する)からTiDBがstart TSO
を受信するまでの期間
スキーマのロード
- スキーマのロード時間: TiDBがTiKVからスキーマを取得するのにかかる時間
- ロードスキーマOPS: TiDBがTiKVから1秒あたりに取得するスキーマの統計
- スキーマ リース エラー OPM: スキーマ リース エラーには、
change
とoutdate
2 つのタイプがあります。change
スキーマが変更されたことを意味し、outdate
スキーマを更新できないことを意味します。これはより重大なエラーであり、アラートをトリガーします。 - Load Privilege OPS: TiDB が TiKV から 1 秒あたりに取得した権限情報の数の統計
DDL
- DDL 期間 95: DDL ステートメントの処理時間の 95% 分位
- バッチ追加インデックス期間 100: 各バッチがインデックス作成に費やした最大時間の統計
- DDL待機ジョブ数: 待機中のDDLタスクの数
- DDL META OPM: DDLが1分間にMETAを取得する回数
- DDL ワーカー期間 99: 各 DDL ワーカーの実行時間の 99% 分位
- デプロイ Syncer の所要時間: Schema Version Syncer の初期化、再起動、およびクリア操作にかかる時間
- 所有者ハンドル同期所要時間: DDL所有者がスキーマバージョンを更新、取得、確認するのにかかる時間
- 自己バージョン更新時間: Schema Version Syncerのバージョン情報の更新にかかる時間
- DDL OPM: 1秒あたりのDDL実行回数
- DDL バックフィルの進行状況 (パーセンテージ): DDL タスクのバックフィルの進行状況
統計
- 自動分析期間95:自動分析に費やされた時間
ANALYZE
- 自動分析QPS:自動
ANALYZE
の統計 - 統計不正確率: 統計不正確率の情報
- 疑似推定OPS: 疑似統計を使用して最適化されたSQL文の数
- ダンプフィードバックOPS: 保存された統計フィードバックの数
- ストアクエリフィードバックQPS: TiDBメモリで実行されるユニオンクエリのフィードバック情報を保存するための1秒あたりの操作数
- 重要なフィードバック: 統計情報を更新する重要なフィードバックの数
- 統計更新OPS: フィードバックによる統計更新操作の数
所有者
- 新しい ETCD セッション期間 95: 新しい etcd セッションを作成するのにかかる時間。TiDB は etcd クライアントを介して PD の etcd に接続し、メタデータ情報を保存/読み取ります。これは、セッションの作成に費やされた時間を記録します。
- オーナーウォッチャー OPS: DDL オーナーウォッチ PD の etcd メタデータの 1 秒あたりの Goroutine 操作の数
メタ
- AutoID QPS: 3 つの操作 (グローバル ID 割り当て、単一テーブルの AutoID 割り当て、単一テーブルの AutoID リベース) を含む AutoID 関連の統計
- AutoID 期間: AutoID 関連の操作に費やされた時間
- リージョンキャッシュ エラー OPS: TiDB にキャッシュされたリージョン情報で 1 秒あたりに発生したエラーの数
- メタ操作期間 99: メタ操作のレイテンシー
GC
- 作業者アクション
delete_range
run_job
resolve_lock
GC関連操作の数 - 期間 99: GC 関連操作に費やされた時間
- 設定: GCデータの存続期間とGC実行間隔の設定
- GC 失敗 OPM: 失敗した GC 関連操作の数
- 削除範囲失敗OPM:
Delete Range
が失敗した回数 - ロックが多すぎるエラー OPM: GC がロックをクリアしすぎるエラーの数
- アクション結果OPM: GC関連操作の結果の数
- 削除範囲タスクステータス: 完了と失敗を含む
Delete Range
のタスクステータス - プッシュタスク期間 95: GC サブタスクを GC ワーカーにプッシュするのにかかった時間
バッチクライアント
- TiKV による保留中のリクエスト数: 処理が保留中のバッチ メッセージの数
- バッチクライアント利用不可期間 95: バッチクライアントが利用できない時間
- 利用可能な接続カウンタなし: バッチクライアントが利用可能なリンクを見つけられなかった回数
10 ...
- TiDB CPU 使用率: 各 TiDB インスタンスの CPU 使用率。
- TiKV IO MBps: 各 TiKV インスタンスの I/O の合計バイト数。
- TiKV CPU: 各 TiKV インスタンスの CPU 使用率。
- タイプ別の TTL QPS: TTL ジョブによって生成されたさまざまなタイプのステートメントの QPS 情報。
- 1 秒あたりの TTL 挿入行数: 1 秒あたりに TTL テーブルに挿入される行数。
- 1 秒あたりの TTL 処理行数: 1 秒あたりに TTL ジョブによって処理された期限切れの行数。
- 1 時間あたりの TTL 挿入行数: 1 時間ごとに TTL テーブルに挿入される行数。
- 1 時間あたりの TTL 削除行数: TTL ジョブによって 1 時間ごとに削除される期限切れの行数。
- TTL スキャン/削除クエリ期間: TTL スキャン/削除ステートメントの実行時間。
- TTL スキャン/削除ワーカー時間 (フェーズ別): TTL 内部ワーカー スレッドのさまざまなフェーズで消費される時間。
- ステータス別の TTL ジョブ数: 現在実行中の TTL ジョブの数。
- ステータス別の TTL タスク数: 現在実行中の TTL タスクの数。