メインコンテンツまでスキップ

Monitor Metrics

Doris FEプロセスとBEプロセスは完全な監視メトリクスを提供します。監視メトリクスは2つのカテゴリに分けることができます:

  1. プロセス監視: 主にDorisプロセス自体の監視値を表示します。
  2. ノード監視: 主にDorisプロセスが配置されているノードマシン自体の監視を表示します。CPU、メモリ、IO、ネットワークなど。

FEまたはBEノードのhttpポートにアクセスすることで、現在の監視を取得できます。例:

curl http://fe_host:http_port/metrics
curl http://be_host:webserver_port/metrics

モニタリングメトリクスはPrometheus互換フォーマットで生成されます。例:

doris_fe_cache_added{type="partition"} 0
doris_fe_cache_added{type="sql"} 0
doris_fe_cache_hit{type="partition"} 0
doris_fe_cache_hit{type="sql"} 0
doris_fe_connection_total 2

typeパラメータをrest interfaceで使用することで、Json形式のモニタリングメトリクスを取得できます。例:

curl http://fe_host:http_port/metrics?type=json
curl http://be_host:webserver_port/metrics?type=json

監視レベルとベストプラクティス

表の最後の列は監視項目の重要度レベルを示しています。P0は最も重要であることを意味し、値が大きいほど重要度は低くなります。

監視メトリックタイプの大部分はCounterです。つまり累積値です。間隔を置いて(15秒ごとなど)監視値を収集し、単位時間あたりの傾きを計算することで有効な情報を取得できます。

クエリエラー率はdoris_fe_query_errの傾きを計算することで取得でき、(1秒あたりのエラー)として表示されます。

FE監視メトリック

プロセス監視

nameLabelunitDescriptionImplicationGrade
doris_fe_cache_added{type="partition"}Num新しいPartition Cacheの数の累積値
{type=" sql "}Num新しいSQL Cacheの数の累積値
doris_fe_cache_hit{type="partition"}Numパーティションキャッシュのヒット数
{type=" sql "}NumSQL Cacheヒット数
doris_fe_connection_totalNumFE MySQLポート接続の現在数クエリ接続数の監視に使用されます。接続数が制限を超えると、新しい接続はアクセスできません。P0
doris_fe_counter_hit_sql_block_ruleNumSQL BLOCK RULEによってブロックされたクエリ数
doris_fe_edit_log_clean{type="failed"}Num履歴メタデータログのクリアに失敗した回数失敗すべきではありません。失敗した場合は手動介入が必要です。P0
{type="success"}Num履歴メタデータログが正常にクリアされた回数
doris_fe_edit_log{type=" accumulated_bytes "}byteメタデータログ書き込み量の値傾きを計算することで書き込み率を取得し、メタデータ書き込みに遅延があるかを観察できます。P0
{type=" current_bytes "}byteメタデータログ現在値editlogサイズの監視に使用されます。サイズが制限を超えた場合、手動介入が必要ですP0
{type="read"}Numメタデータログ読み取り回数傾きを通じてメタデータ読み取り頻度が正常かを観察しますP0
{type="write"}Numメタデータログ書き込み回数傾きを通じてメタデータ書き込み頻度が正常かを観察しますP0
{type="current"}Numメタデータログの現在数editlog数量の監視に使用されます。数量が制限を超えた場合、手動介入が必要ですP0
doris_fe_editlog_write_latency_msmillisecondメタデータログ書き込み遅延。例えば、{quantile="0.75"}は75パーセンタイル書き込み遅延を示します。
doris_fe_image_clean{type="failed"}Num履歴メタデータイメージファイルのクリア失敗回数失敗すべきではありません。失敗した場合は手動介入が必要です。P0
{type="success"}Num履歴メタデータイメージファイルの正常なクリア回数
doris_fe_image_push{type="failed"}Num他のFEノードへのメタデータイメージファイルプッシュ失敗回数
{type="success"}Num他のFEノードへのメタデータイメージファイル正常プッシュ回数
doris_fe_image_write{type="failed"}Numメタデータイメージファイル生成失敗回数失敗すべきではありません。失敗した場合は手動介入が必要です。P0
{type="success"}Numメタデータイメージファイルが正常に生成された回数
doris_fe_jobNum異なるジョブタイプと異なるジョブステータスの現在数。例えば、{job="load", type="INSERT", state="LOADING"}は、INSERTタイプのインポートジョブでLOADING状態のジョブ数を表します。必要に応じてクラスター内の異なるタイプのジョブ数を観察しますP0
doris_fe_max_journal_idNum現在のFEノードの最大メタデータログID。Master FEの場合は現在書き込まれている最大ID、非Master FEの場合は現在再生されているメタデータログの最大IDを表します複数のFE間のIDギャップが大きすぎないかの観察に使用されます。大きすぎる場合はメタデータ同期に問題があることを示します。P0
doris_fe_max_tablet_compaction_scoreNum全BEノード間で最大のcompactionスコア値。この値は現在のクラスターの最大compactionスコアを観察して高すぎるかどうかを判断するのに使用できます。高すぎる場合、クエリや書き込みの遅延が発生する可能性があります。P0
doris_fe_qpsNum/SecFEの現在の1秒あたりクエリ数(クエリリクエストのみカウント)QPSP0
doris_fe_query_errNumエラークエリの値
doris_fe_query_err_rateNum/Sec1秒あたりのエラークエリ数クラスターでクエリエラーが発生しているかを観察P0
doris_fe_query_latency_msmillisecondクエリリクエスト遅延のパーセンタイル統計。例えば、{quantile="0.75"}は75パーセンタイルのクエリ遅延を示します各分位数のクエリ遅延の詳細な観察P0
doris_fe_query_latency_ms_dbmillisecond各DBのクエリリクエスト遅延のパーセンタイル統計。例えば、{quantile="0.75", db="test"}はDB testの75パーセンタイルのクエリ遅延を示します各DBのクエリ遅延の詳細な観察P0
doris_fe_query_olap_tableNum内部テーブル(OlapTable)のリクエスト数の統計
doris_fe_query_totalNum全クエリリクエスト
doris_fe_report_queue_sizeNumFE側でのBEの各種定期報告タスクのキューの長さこの値はMaster FEノードでの報告タスクのブロック度を反映します。値が大きいほどFEの処理能力が低くなります。P0
doris_fe_request_totalNumMySQLポート経由で受信した全操作リクエスト(クエリや他のステートメントを含む)
doris_fe_routine_load_error_rowsNumクラスター内の全Routine Loadジョブのエラー行数の合計をカウント
doris_fe_routine_load_receive_bytesbyteクラスター内の全Routine Loadジョブが受信したデータ量
doris_fe_routine_load_rowsNumクラスター内の全Routine Loadジョブが受信したデータ行数をカウント
doris_fe_routine_load_get_meta_latencymillisecondクラスター全体の全Routine Loadジョブのメタデータ取得の総遅延
doris_fe_routine_load_get_meta_countNumクラスター全体の全Routine Loadジョブのメタデータ取得操作の総数
doris_fe_routine_load_get_meta_fail_countNumクラスター全体の全Routine Loadジョブのメタデータ取得失敗操作の総数
doris_fe_routine_load_task_execute_timemillisecondクラスター全体の全Routine Loadタスクの総実行時間
doris_fe_routine_load_task_execute_countNumクラスター全体の実行されたRoutine Loadタスクの総数
doris_fe_routine_load_lagmillisecondクラスター全体の全Routine Loadジョブの総消費遅延
doris_fe_routine_load_progressmillisecondクラスター全体の全Routine Loadジョブの総消費進捗
doris_fe_routine_load_abort_task_numNumクラスター全体の失敗したRoutine Loadタスクの総数
doris_fe_rpsNumFEの現在の1秒あたりリクエスト数(クエリや他のタイプのステートメントを含む)QPSと合わせてクラスターが処理するリクエスト量を表示します。P0
doris_fe_scheduled_tablet_numNumMaster FEノードによってスケジュールされているtablet。修復中のレプリカとバランシング中のレプリカを含みます移行中のtablet。長期間値がある場合、クラスターが不安定であることを意味します。P0
doris_fe_tablet_max_compaction_scoreNum各BEノードから報告されたcompactionスコア。例えば、{backend="172.21.0.1:9556"}はBE "172.21.0.1:9556"の報告値を表します
doris_fe_tablet_numNum各BEノードの現在の総tablet数。例えば、{backend="172.21.0.1:9556"}はBE "172.21.0.1:9556"の現在のtablet数を示しますtablet分布が均一か、絶対値が妥当かをチェックできますP0
doris_fe_tablet_status_countNumMaster FEノードのtabletスケジューラによってスケジュールされたtablet数の累積値を統計
{type="added"}NumMaster FEノードのtabletスケジューラによってスケジュールされたtablet数の累積値を統計。"added"はスケジュールされたtablet数を示します
{type=" in_sched "}Num上記と同じ。繰り返しスケジュールされたtablet数を示しますこの値が急速に増加する場合、tabletが長期間不健全な状態にあり、スケジューラによって繰り返しスケジュールされていることを意味します。
{type=" not_ready "}Num上記と同じ。まだスケジューリング起動条件を満たしていないtablet数を示します。この値が急速に増加する場合、多数のtabletが不健全な状態にあるがスケジュールできないことを意味します。
{type="total"}Num上記と同じ。チェックされた(ただし必ずしもスケジュールされていない)tabletの累積数を表します。
{type="unhealthy"}Num上記と同じ。チェックされた不健全なtabletの累積数を示します。
doris_fe_thread_poolNum各種スレッドプールの作業スレッド数とキューイング状況をカウント。"active_thread_num"は実行中のタスク数を示します。"pool_size"はスレッドプール内の総スレッド数を示します。"task_in_queue"はキューイング中のタスク数を示します
{name="agent-task-pool"}NumMaster FEがAgent TaskをBEに送信するために使用するスレッドプール
{name="connect-scheduler-check-timer"}NumMySQLアイドル接続がタイムアウトしたかをチェックするプール
{name="connect-scheduler-pool"}NumMySQL接続リクエストを受信するプール
{name=" mysql - nio -pool"}Numタスクを処理するNIO MySQL Serverスレッドプール
{name="export-exporting-job-pool"}Numexporting状態のエクスポートジョブ用プール
{name="export-pending-job-pool"}Numpending状態のエクスポートジョブ用プール
{name="heartbeat- mgr -pool"}NumMaster FEが各ノードのハートビートを処理するために使用するスレッドプール
{name="loading-load-task-scheduler"}NumMaster FEがBroker Load job、loading Taskスケジューリングに使用するスレッドプール
{name="pending-load-task-scheduler"}NumMaster FEがBroker Load job、pending Taskスケジューリングに使用するスレッドプール
{name="schema-change-pool"}NumMaster FEがスキーマ変更ジョブのスケジューリングに使用するプール
{name="thrift-server-pool"}NumFE側のThriftServerのワーカースレッドプール。fe.confのrpc_portに対応。BEとの相互作用に使用されます。
doris_fe_txn_counterNum各ステータスのインポートトランザクション数の値インポートトランザクションの実行を観察できます。P0
{type="begin"}Numコミットされたトランザクション数
{type="failed"}Num失敗したトランザクション数
{type="reject"}Num拒否されたトランザクション。(現在実行中のトランザクション数が閾値より大きい場合、新しいトランザクションは拒否されます)
{type=" succes "}Num成功したトランザクション数
doris_fe_txn_statusNum現在様々な状態にあるインポートトランザクション数をカウント。例えば、{type="committed"}はcommitted状態のトランザクション数を示します。各状態のインポートトランザクション数を観察して蓄積があるかどうかを判断できます。P0
doris_fe_query_instance_numNumユーザーが現在リクエストしているfragmentのインスタンス数。例えば、{user="test_u"}はユーザーtest_uが現在リクエストしているインスタンス数を表しますこの値は指定されたユーザーがクエリリソースを使いすぎているかを観察するのに使用できます。P0
doris_fe_query_instance_beginNumユーザーリクエストが開始するfragmentのインスタンス数。例えば、{user="test_u"}はユーザーtest_uが開始をリクエストするインスタンス数を表しますこの値は特定のユーザーが過剰なクエリを送信したかを観察するのに使用できます。P0
doris_fe_query_rpc_totalNum指定されたBEに送信されたRPCの数。例えば、{be="192.168.10.1"}はIPアドレス192.168.10.1のBEに送信されたRPC数を示しますこの値は特定のBEに過剰なRPCが送信されたかを観察するのに使用できます。
doris_fe_query_rpc_failedNum指定されたBEに送信されたRPC失敗数。例えば、{be="192.168.10.1"}はIPアドレス192.168.10.1のBEに送信されたRPC失敗数を示しますこの値は特定のBEにRPCの問題があるかを観察するのに使用できます。
doris_fe_query_rpc_sizeNum指定されたBEのRPCデータサイズ。例えば、{be="192.168.10.1"}はIPアドレス192.168.10.1のBEに送信されたRPCデータバイト数を示しますこの値はBEに過度に大きなRPCが送信されたかを観察するのに使用できます。
doris_fe_txn_exec_latency_msmillisecondトランザクション実行時間のパーセンタイル統計。例えば、{quantile="0.75"}は75パーセンタイルのトランザクション実行時間を示します各分位数トランザクションの実行時間の詳細な観察P0
doris_fe_txn_publish_latency_msmillisecondトランザクションpublish時間のパーセンタイル統計。例えば、{quantile="0.75"}は75パーセンタイルのトランザクションpublish時間を示します各分位数トランザクションのpublish時間の詳細な観察P0
doris_fe_txn_numNum指定されたDBによって実行されているトランザクション数。例えば、{db="test"}はDB testが現在実行しているトランザクション数を示します。この値は特定のDBが大量のトランザクションを送信したかを観察するのに使用できます。P0
doris_fe_publish_txn_numNum指定されたDBによって公開されているトランザクション数。例えば、{db="test"}はDB testが現在公開しているトランザクション数を示します。この値は特定のDBのpublishトランザクション数を観察するのに使用できます。P0
doris_fe_txn_replica_numNum指定されたDBによって実行されているトランザクションが開いたレプリカ数。例えば、{db="test"}はDB testが現在実行しているトランザクションが開いたコピー数を示します。この値は特定のDBが過剰なコピーを開いているかを観察するのに使用でき、他のトランザクションの実行に影響する可能性があります。P0
doris_fe_thrift_rpc_totalNumFE thriftインターフェイスの各メソッドが受信したRPCリクエスト。例えば、{method="report"}はreportメソッドが受信したRPCリクエスト数を示します。この値は特定のthrift rpcメソッドの負荷を観察できます
doris_fe_thrift_rpc_latency_msmillisecondFE thriftインターフェイスの各メソッドが受信したRPCリクエストの所要時間。例えば、{method="report"}はreportメソッドが受信したRPCリクエストの所要時間を示します。この値は特定のthrift rpcメソッドの負荷を観察できます
doris_fe_external_schema_cache{ catalog ="hive"}Num指定されたExternal Catalogの対応するスキーマキャッシュ数
doris_fe_hive_meta_cache{ catalog ="hive"}Num
{type=" partition_value "}Num指定されたExternal Hive Metastore Catalogの対応するpartition valueキャッシュ数
{type="partition"}Num指定されたExternal Hive Metastore Catalogの対応するpartitionキャッシュ数
{type="file"}Num指定されたExternal Hive Metastore Catalogの対応するfileキャッシュ数

JVM メトリック

nameLabelunitDescriptionImpactGrade
jvm_heap_size_bytesbyteJVMメモリメトリック。タグにはmax、used、committedが含まれ、それぞれ最大値、使用済み、要求済みメモリに対応します。JVMメモリ使用量を観察P0
jvm_non_heap_size_bytesbyteJVMオフヒープメモリ統計
<GarbageCollector>GCメトリック。GarbageCollectorは特定のガベージコレクターを指しますP0
{type="count"}NumGC回数の累積値
{type="time"}millisecondGC時間消費の累積値
jvm_old_size_bytesbyteJVMオールド世代メモリ統計P0
jvm_threadNumJVMスレッド数統計JVMスレッド数が妥当かを観察P0
jvm_young_size_bytesbyteJVMヤング世代メモリ統計P0

マシン メトリック

nameLabelunitDescriptionImpactGrade
system_meminfobyteFEノードマシン。/proc/meminfoから収集。buffers、cached、memory_available、memory_free、memory_totalを含みます
system_snmpFEノードマシン。/proc/net/snmpから収集。
{name=" tcp_in_errs "}Numtcpパケット受信エラー
{name=" tcp_in_segs "}Num送信されたtcpパケット
{name=" tcp_out_segs "}Num送信されたtcpパケット
{name=" tcp_retrans_segs "}Numtcpパケット再送信数

BE メトリック

プロセスメトリック

nameLabelunitDescriptionImpactgrade
doris_be_active_scan_context_countNum現在外部から直接開かれているスキャナー数
doris_be_add_batch_task_queue_sizeNumインポートを記録する際、バッチを受信するスレッドプールのキューサイズ0より大きい場合、インポートタスクの受信側でバックログがあることを意味します。P0
agent_task_queue_sizeNum各Agent Task処理キューの長さを表示。例えば{type="CREATE_TABLE"}はCREATE_TABLEタスクキューの長さを示します
doris_be_brpc_endpoint_stub_countNum作成されたBE間相互作用に使用されるbrpc stubの数
doris_be_brpc_function_endpoint_stub_countNum作成されたRemote RPCとの相互作用に使用されるbrpc