FE 設定 - ログ、サーバー、およびメタデータ
FE パラメータは、動的パラメータと静的パラメータに分類されます。
-
動的パラメータは、SQL コマンドを実行することで設定および調整でき、非常に便利です。ただし、FE を再起動すると設定が無効になります。そのため、fe.conf ファイルの設定項目も変更して、変更が失われないようにすることをお勧めします。
-
静的パラメータは、FE の設定ファイル fe.conf でのみ設定および調整できます。このファイルを変更した後、変更を有効にするには FE を再起動する必要があります。
パラメータが動的パラメータであるかどうかは、ADMIN SHOW CONFIG の出力の IsMutable 列で示されます。TRUE は動的パラメータを示します。
動的および静的 FE パラメータの両方が fe.conf ファイルで設定できることに注意してください。
FE 設定項目の表示
FE の起動後、MySQL クライアントで ADMIN SHOW FRONTEND CONFIG コマンドを実行して、パラメーター設定を確認できます。特定のパラメーターの設定をクエリするには、次のコマンドを実行します。
ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"];
返されるフィールドの詳細な説明については、ADMIN SHOW CONFIG を参照してください。
クラスター管理関連コマンドを実行するには、管理者権限が必要です。
FE パラメーターの設定
FE 動的パラメーターの設定
ADMIN SET FRONTEND CONFIG を使用して、FE 動的パラメーターの設定を構成または変更できます。
ADMIN SET FRONTEND CONFIG ("key" = "value");
ADMIN SET FRONTEND で行った設定変更は、FE が再起動すると fe.conf ファイルのデフォルト値に戻ります。したがって、変更を永続的にしたい場合は、fe.conf の設定項目も変更することをお勧めします。
FE 静的パラメーターの設定
FE の静的パラメータは、設定ファイル fe.conf を変更し、FE を再起動して変更を反映させることで設定されます。
このトピックでは、以下の種類のFE構成について紹介します:
ログ
audit_log_delete_age
- デフォルト:30d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:監査ログファイルの保持期間。デフォルト値
30dは、各監査ログファイルが 30 日間保持できることを指定します。StarRocks は各監査ログファイルをチェックし、30 日以上前に生成されたファイルを削除します。 - 導入時期:-
audit_log_dir
- デフォルト:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:監査ログファイルを格納するディレクトリ。
- 導入時期:-
audit_log_enable_compress
- デフォルト:false
- タイプ:Boolean
- 単位:N/A
- 変更可能:No
- 説明:true の場合、生成された Log4j2 設定は、ローテーションされた監査ログファイル名 (fe.audit.log.*) に ".gz" 接尾辞を追加し、Log4j2 がロールオーバー時に圧縮された (.gz) アーカイブ監査ログファイルを生成するようにします。この設定は、FE 起動時に Log4jConfig.initLogging で読み込まれ、監査ログの RollingFile アペンダーに適用されます。アクティブな監査ログではなく、ローテーション/アーカイブされたファイルにのみ影響します。値は起動時に初期化されるため、変更を有効にするには FE の再起動が必要です。監査ログのローテーション設定 (
audit_log_dir、audit_log_roll_interval、audit_roll_maxsize、audit_log_roll_num) とともに使用します。 - 導入時期:3.2.12
audit_log_json_format
- デフォルト:false
- タイプ:Boolean
- 単位:N/A
- 変更可能:Yes
- 説明:true の場合、FE 監査イベントは、デフォルトのパイプ区切り "key=value" 文字列ではなく、構造化された JSON (Jackson ObjectMapper が注釈付き AuditEvent フィールドの Map をシリアル化) として出力されます。この設定は、AuditLogBuilder が処理するすべての組み込み監査シンクに影響します。接続監査、クエリ監査、大容量クエリ監査 (イベントが条件を満たす場合、大容量クエリしきい値フィールドが JSON に追加されます)、および低速監査出力です。大容量クエリしきい値および "features" フィールドに注釈が付けられたフィールドは特別に扱われます (通常の監査エントリから除外され、該当する場合、大容量クエリまたは機能ログに含まれます)。これを有効にすると、ログコレクターまたは SIEM のログが機械で解析可能になります。ログ形式が変更されるため、従来のパイプ区切り形式を期待する既存のパーサーを更新する必要がある場合があります。
- 導入時期:3.2.7
audit_log_modules
- デフォルト:
slow_query, query - タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:StarRocks が監査ログエントリを生成するモジュール。デフォルトでは、StarRocks は
slow_queryモジュールとqueryモジュールの監査ログを生成します。connectionモジュールは v3.0 以降でサポートされています。モジュール名をコンマ (,) とスペースで区切ります。 - 導入時期:-
audit_log_roll_interval
- デフォルト:DAY
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:StarRocks が監査ログエントリをローテーションする時間間隔。有効な値:
DAYとHOUR。- このパラメーターが
DAYに設定されている場合、監査ログファイル名にyyyyMMdd形式のサフィックスが追加されます。 - このパラメーターが
HOURに設定されている場合、監査ログファイル名にyyyyMMddHH形式のサフィックスが追加されます。
- このパラメーターが
- 導入時期:-
audit_log_roll_num
- デフォルト:90
- タイプ:Int
- 単位:-
- 変更可能:No
- 説明:
audit_log_roll_intervalパラメーターで指定された各保持期間内に保持できる監査ログファイルの最大数。 - 導入時期:-
bdbje_log_level
- デフォルト:INFO
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:StarRocks で Berkeley DB Java Edition (BDB JE) が使用するロギングレベルを制御します。BDB 環境の初期化中に BDBEnvironment.initConfigs() は、この値を
com.sleepycat.jeパッケージの Java ロガーと BDB JE 環境ファイルロギングレベル (EnvironmentConfig.FILE_LOGGING_LEVEL) に適用します。SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL、OFF などの標準的な java.util.logging.Level 名を受け入れます。ALL に設定すると、すべてのログメッセージが有効になります。詳細度を上げると、ログのボリュームが増加し、ディスク I/O とパフォーマンスに影響を与える可能性があります。この値は BDB 環境が初期化されるときに読み込まれるため、環境の (再) 初期化後にのみ有効になります。 - 導入時期:v3.2.0
big_query_log_delete_age
- デフォルト:7d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE の大容量クエリログファイル (
fe.big_query.log.*) が自動削除されるまでの保持期間を制御します。この値は、Log4j の削除ポリシーに IfLastModified age として渡されます。最終更新時刻がこの値よりも古いローテーションされた大容量クエリログは削除されます。d(日)、h(時間)、m(分)、s(秒) などの接尾辞をサポートしています。例:7d(7 日間)、10h(10 時間)、60m(60 分)、120s(120 秒)。この項目はbig_query_log_roll_intervalおよびbig_query_log_roll_numと連携して、どのファイルを保持またはパージするかを決定します。 - 導入時期:v3.2.0
big_query_log_dir
- デフォルト:
Config.STARROCKS_HOME_DIR + "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE が大容量クエリダンプログ (
fe.big_query.log.*) を書き込むディレクトリ。Log4j 設定はこのパスを使用して、fe.big_query.logとそのローテーションされたファイル用の RollingFile アペンダーを作成します。ローテーションと保持は、big_query_log_roll_interval(時刻ベースのサフィックス)、log_roll_size_mb(サイズトリガー)、big_query_log_roll_num(最大ファイル数)、およびbig_query_log_delete_age(年齢ベースの削除) によって管理されます。大容量クエリレコードは、big_query_log_cpu_second_threshold、big_query_log_scan_rows_threshold、またはbig_query_log_scan_bytes_thresholdなどのユーザー定義のしきい値を超えるクエリに対してログに記録されます。このファイルにログを記録するモジュールを制御するには、big_query_log_modulesを使用します。 - 導入時期:v3.2.0
big_query_log_modules
- デフォルト:
{"query"} - タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:モジュールごとの大容量クエリロギングを有効にするモジュール名サフィックスのリスト。一般的な値は論理コンポーネント名です。たとえば、デフォルトの
queryはbig_query.queryを生成します。 - 導入時期:v3.2.0
big_query_log_roll_interval
- デフォルト:
"DAY" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:
big_queryログアペンダーのローリングファイル名の日付コンポーネントを構築するために使用される時間間隔を指定します。有効な値 (大文字と小文字を区別しない) はDAY(デフォルト) とHOURです。DAYは日次パターン ("%d{yyyyMMdd}") を生成し、HOURは時間別パターン ("%d{yyyyMMddHH}") を生成します。この値は、サイズベースのロールオーバー (big_query_roll_maxsize) およびインデックスベースのロールオーバー (big_query_log_roll_num) と組み合わせて、RollingFile の filePattern を形成します。 無効な値は、ログ設定の生成が失敗し (IOException)、ログの初期化または再構成を妨げる可能性があります。big_query_log_dir、big_query_roll_maxsize、big_query_log_roll_num、およびbig_query_log_delete_ageとともに使用します。 - 導入時期:v3.2.0
big_query_log_roll_num
- デフォルト:10
- タイプ:Int
- 単位:-
- 変更可能:No
- 説明:
big_query_log_roll_intervalごとに保持するローテーションされた FE 大容量クエリログファイルの最大数。この値は、fe.big_query.logの RollingFile アペンダーの DefaultRolloverStrategymax属性にバインドされます。ログが (時間またはlog_roll_size_mbによって) ロールオーバーすると、StarRocks はbig_query_log_roll_num個のインデックス付きファイル (filePattern は時刻サフィックスとインデックスを使用) を保持します。この数よりも古いファイルはロールオーバーによって削除される可能性があり、big_query_log_delete_ageは最終更新時刻によってさらにファイルを削除できます。 - 導入時期:v3.2.0
dump_log_delete_age
- デフォルト:7d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:ダンプログファイルの保持期間。デフォルト値
7dは、各ダンプログファイルが 7 日間保持できることを指定します。StarRocks は各ダンプログファイルをチェックし、7 日以上前に生成されたファイルを削除します。 - 導入時期:-
dump_log_dir
- デフォルト:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:ダンプログファイルを格納するディレクトリ。
- 導入時期:-
dump_log_modules
- デフォルト:query
- タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:StarRocks がダンプログエントリを生成するモジュール。デフォルトでは、StarRocks はクエリモジュールのダンプログを生成します。モジュール名をコンマ (,) とスペースで区切ります。
- 導入時期:-
dump_log_roll_interval
- デフォルト:DAY
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:StarRocks がダンプログエントリをローテーションする時間間隔。有効な値:
DAYとHOUR。- このパラメーターが
DAYに設定されている場合、ダンプログファイル名にyyyyMMdd形式のサフィックスが追加されます。 - このパラメーターが
HOURに設定されている場合、ダンプログファイル名にyyyyMMddHH形式のサフィックスが追加されます。
- このパラメーターが
- 導入時期:-
dump_log_roll_num
- デフォルト:10
- タイプ:Int
- 単位:-
- 変更可能:No
- 説明:
dump_log_roll_intervalパラメーターで指定された各保持期間内に保持できるダンプログファイルの最大数。 - 導入時期:-
edit_log_write_slow_log_threshold_ms
- デフォルト:2000
- タイプ:Int
- 単位:Milliseconds
- 変更可能:Yes
- 説明:JournalWriter が低速な編集ログバッチ書き込みを検出してログに記録するために使用するしきい値 (ミリ秒)。バッチコミット後、バッチ期間がこの値を超えると、JournalWriter はバッチサイズ、期間、現在のジャーナルキューサイズを伴う WARN を出力します (約 2 秒に 1 回にレート制限)。この設定は、FE リーダーでの潜在的な I/O またはレプリケーションの遅延に対するロギング/アラートのみを制御します。コミットまたはロールの動作は変更しません (
edit_log_roll_numおよびコミット関連の設定を参照)。このしきい値に関係なく、メトリック更新は引き続き発生します。 - 導入時期:v3.2.3
enable_audit_sql
- デフォルト:true
- タイプ:Boolean
- 単位:-
- 変更可能:No
- 説明:この項目が
trueに設定されている場合、FE 監査サブシステムは、ConnectProcessor によって処理されたステートメントの SQL テキストを FE 監査ログ (fe.audit.log) に記録します。格納されたステートメントは、他の制御に従います。暗号化されたステートメントは編集され (AuditEncryptionChecker)、enable_sql_desensitize_in_logが設定されている場合、機密性の高い資格情報は編集または非機密化される可能性があり、ダイジェストレコーディングはenable_sql_digestによって制御されます。falseに設定されている場合、ConnectProcessor は監査イベントのス テートメントテキストを "?" に置き換えます。他の監査フィールド (ユーザー、ホスト、期間、ステータス、qe_slow_log_msを介した低速クエリ検出、およびメトリック) は引き続き記録されます。SQL 監査を有効にすると、フォレンジックとトラブルシューティングの可視性が向上しますが、機密性の高い SQL コンテンツが公開され、ログのボリュームと I/O が増加する可能性があります。無効にすると、監査ログでの完全なステートメントの可視性を失う代わりにプライバシーが向上します。 - 導入時期:-
enable_profile_log
- デフォルト:true
- タイプ:Boolean
- 単位:-
- 変更可能:No
- 説明:プロファイルロギングを有効にするかどうか。この機能が有効になっている場合、FE はクエリごとのプロファイルログ (ProfileManager によって生成されたシリアル化された
queryDetailJSON) をプロファイルログシンクに書き込みます。このロギングはenable_collect_query_detail_infoも有効になっている場合にのみ実行されます。enable_profile_log_compressが有効になっている場合、JSON はロギング前に gzipped されることがあります。プロファイルログファイルはprofile_log_dir、profile_log_roll_num、profile_log_roll_intervalによって管理され、profile_log_delete_age(7d、10h、60m、120sなどの形式をサポート) に従ってローテーション/削除されます。この機能を無効にすると、プロファイルログの書き込みが停止します (ディスク I/O、圧縮 CPU、ストレージ使用量の削減)。 - 導入時期:v3.2.5
enable_qe_slow_log
- デフォルト:true
- タイプ:Boolean
- 単位:N/A
- 変更可能:Yes
- 説明:有効にすると、FE 組み込み監査プラグイン (AuditLogBuilder) は、測定された実行時間 ("Time" フィールド) が
qe_slow_log_msで設定されたしきい値を超えるクエリイベントを低速クエリ監査ログ (AuditLog.getSlowAudit) に書き込みます。無効にすると、これらの低速クエリエントリは抑制されます (通常のクエリおよび接続監査ログは影響を受けません)。低速監査エントリは、グローバルなaudit_log_json_format設定 (JSON とプレーン文字列) に従います。このフラグを使用して、通常の監査ロギングとは独立して低速クエリ監査ボリュームの生成を制御します。無効にすると、qe_slow_log_msが低い場合やワークロードが多くの長時間実行クエリを生成する場合にログ I/O を削減できます。 - 導入時期:3.2.11
enable_sql_desensitize_in_log
- デフォルト:false
- タイプ:Boolean
- 単位:-
- 変更可能:No
- 説明:この項目が
trueに設定されている場合、システムはログとクエリ詳細レコードに書き込まれる前に機密性の高い SQL コンテンツを置き換えるか隠します。この設定を尊重するコードパスには、ConnectProcessor.formatStmt (監査ログ)、StmtExecutor.addRunningQueryDetail (クエリ詳細)、および SimpleExecutor.formatSQL (内部エクゼキュータログ) が含まれます。この機能が有効になっている場合、無効な SQL は固定の非機密化メッセージに置き換えられる可能性があり、資格情報 (ユーザー/パスワード) は隠され、SQL フォーマッターはサニタイズされた表現を生成する必要があります (ダイジェスト形式の出力を有効にすることもできます)。これにより、監査/内部ログでの機密リテラルや資格情報の漏洩が減少しますが、ログとクエリ詳細に元の完全な SQL テキストが含まれなくなることになります (これは再生やデバッグに影響する可能性があります)。 - 導入時期:-
internal_log_delete_age
- デフォルト:7d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE 内部ログファイル (
internal_log_dirに書き込まれます) の保持期間を指定します。値は期間文字列です。サポートされている接尾辞:d(日)、h(時間)、m(分)、s(秒)。例:7d(7 日間)、10h(10 時間)、60m(60 分)、120s(120 秒)。この項目は、RollingFile Delete ポリシーで使用される<IfLastModified age="..."/>述語として log4j 設定に代入されます。最終変更時刻がこの期間よりも古いファイルは、ログのロールオーバー中に削除されます。この値を増やすとディスク領域をより早く解放できます。減らすと内部マテリアライズドビューまたは統計ログをより長く保持できます。 - 導入時期:v3.2.4
internal_log_dir
- デフォルト:
Config.STARROCKS_HOME_DIR+ "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE ロギングサブシステムが内部ログ (
fe.internal.log) を保存するために使用するディレクトリ。この設定は Log4j 設定に代入され、InternalFile アペンダーが内部/マテリアライズドビュー/統計ログを書き込む場所、およびinternal.<module>の下にあるモジュールごとのロガーがファイルを配置する場所を決定します。ディレクトリが存在し、書き込み可能であり、十分なディスク容量があることを確認してください。このディレクトリ内のファイルのログローテーションと保持は、log_roll_size_mb、internal_log_roll_num、internal_log_delete_age、およびinternal_log_roll_intervalによって制御されます。sys_log_to_consoleが有効になっている場合、内部ログはこのディレクトリではなくコンソールに書き込まれることがあります。 - 導入時期:v3.2.4
internal_log_json_format
- デフォルト:false
- タイプ:Boolean
- 単位:-
- 変更可能:Yes
- 説明:この項目が
trueに設定されている場合、内部統計/監査エントリはコンパクトな JSON オブジェクトとして統計監査ロガーに書き込まれます。JSON には、"executeType" (InternalType: QUERY または DML)、"queryId"、"sql"、および "time" (経過ミリ秒) のキーが含まれます。falseに設定されている場合、同じ情報は単一のフォーマットされたテキスト行 ("statistic execute: ... | QueryId: [...] | SQL: ...") としてログに記録されます。JSON を有効にすると、機械解析とログプロセッサとの統合が向上しますが、生の SQL テキストがログに含まれるため、機密情報が公開され、ログサイズが増加する可能性があります。 - 導入時期:-
internal_log_modules
- デフォルト:
{"base", "statistic"} - タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:専用の内部ロギングを受け取るモジュール識別子のリスト。各エントリ X について、Log4j はレベル INFO と additivity="false" の
internal.<X>という名前のロガーを作成します。これらのロガーは、内部アペンダー (fe.internal.logに書き込まれます) またはsys_log_to_consoleが有効になっている場合はコンソールにルーティングされます。必要に応じて短い名前またはパッケージフラグメントを使用します。正確なロガー名はinternal.+ 構成された文字列になります。内部ログファイルのローテーションと保持は、internal_log_dir、internal_log_roll_num、internal_log_delete_age、internal_log_roll_interval、およびlog_roll_size_mbに従います。モジュールを追加すると、実行時メッセージが内部ロガーストリームに分離され、デバッグと監査が容易になります。 - 導入時期:v3.2.4
internal_log_roll_interval
- デフォルト:DAY
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE 内部ログアペンダーの時刻ベースのロール間隔を制御します。受け入れられる値 (大文字と小文字を区別しない) は
HOURとDAYです。HOURは時間別ファイルパターン ("%d{yyyyMMddHH}") を生成し、DAYは日別ファイルパターン ("%d{yyyyMMdd}") を生成します。これらは RollingFile TimeBasedTriggeringPolicy によってローテーションされたfe.internal.logファイルに名前を付けるために使用されます。無効な値は、初期化の失敗 (アクティブな Log4j 設定の構築時に IOException がスローされます) を引き起こします。ロール動作は、internal_log_dir、internal_roll_maxsize(ソースにタイプミス、おそらくlog_roll_size_mb)、internal_log_roll_num、およびinternal_log_delete_ageなどの関連設定にも依存します。 - 導入時期:v3.2.4
internal_log_roll_num
- デフォルト:90
- タイプ:Int
- 単位:-
- 変更可能:No
- 説明:内部アペンダー (
fe.internal.log) に対して保持するローテーションされた内部 FE ログファイルの最大数。この値は Log4j DefaultRolloverStrategy のmax属性として使用されます。ロールオーバーが発生すると、StarRocks は最大でinternal_log_roll_num個のアーカイブファイルを保持し、古いファイルを削除します (internal_log_delete_ageによって管理されます)。値を小さくするとディスク使用量が減りますが、ログ履歴が短くなります。値を大きくすると、より多くの履歴内部ログが保持されます。この項 目は、internal_log_dir、internal_log_roll_interval、およびinternal_roll_maxsize(ソースにタイプミス、おそらくlog_roll_size_mb) と連携して機能します。 - 導入時期:v3.2.4
log_cleaner_audit_log_min_retention_days
- デフォルト:3
- タイプ:Int
- 単位:Days
- 変更可能:Yes
- 説明:監査ログファイルの最小保持日数。これよりも新しい監査ログファイルは、ディスク使用量が高くても削除されません。これにより、監査ログがコンプライアンスとトラブルシューティングの目的で保持されます。
- 導入時期:-
log_cleaner_check_interval_second
- デフォルト:300
- タイプ:Int
- 単位:Seconds
- 変更可能:Yes
- 説明:ディスク使用量をチェックし、ログをクリーンアップする間隔 (秒単位)。クリーナーは、各ログディレクトリのディスク使用量を定期的にチェックし、必要に応じてクリーンアップをトリガーします。デフォルトは 300 秒 (5 分) です。
- 導入時期:-
log_cleaner_disk_usage_target
- デフォルト:60
- タイプ:Int
- 単位:Percentage
- 変更可能:Yes
- 説明:ログクリーンアップ後の目標ディスク使用量 (パーセンテージ)。ディスク使用量がこのしきい値を下回るまでログクリーンアップが続行されます。クリーナーは、目標に達するまで最も古いログファイルを 1 つずつ削除します。
- 導入時期:-
log_cleaner_disk_usage_threshold
- デフォルト:80
- タイプ:Int
- 単位:Percentage
- 変更可能:Yes
- 説明:ログクリーンアップをトリガーするディスク使用量しきい値 (パーセンテージ)。ディスク使用量がこのしきい値を超えると、ログクリーンアップが開始されます。クリーナーは、設定された各ログディレクトリを独立してチェックし、このしきい値を超えるディレクトリを処理します。
- 導入時期:-
log_cleaner_disk_util_based_enable
- デフォルト:false
- タイプ:Boolean
- 単位:-
- 変更可能:Yes
- 説明:ディスク使用量に基づく自動ログクリーンアップを有効にします。有効にすると、ディスク使用量がしきい値を超えたときにログがクリーンアップされます。ログクリーナーは FE ノードのバックグラウンドデーモンとして実行され、ログファイルの蓄積によるディスク領域の枯渇を防ぐのに役立ちます。
- 導入時期:-
log_plan_cancelled_by_crash_be
- デフォルト:true
- タイプ:boolean
- 単位:-
- 変更可能:Yes
- 説明:BE クラッシュまたは RPC 例外によりクエリがキャンセルされた場合に、クエリ実行計画のロギングを有効にするかどうか。この機能が有効になっている場合、BE クラッシュまたは
RpcExceptionによりクエリがキャンセルされたときに、StarRocks はクエリ実行計画 (TExplainLevel.COSTSレベル) を WARN エントリとしてログに記録します。ログエントリには QueryId、SQL、および COSTS 計画が含まれ、ExecuteExceptionHandler パスでは例外スタックトレースもログに記録されます。ロギングはenable_collect_query_detail_infoが有効になっている場合はスキップされます (その場合、計画はクエリ詳細に格納されます)。コードパスでは、クエリ詳細が null であることを検証することでチェックが実行されます。ExecuteExceptionHandler では、計画は最初のリトライ (retryTime == 0) のみでログに記録されることに注意してください。これを有効にすると、完全な COSTS 計画が大きくなる可能性があるため、ログのボリュームが増加する可能性があります。 - 導入時期:v3.2.0
log_register_and_unregister_query_id
- デフォルト:false
- タイプ:Boolean
- 単位:-
- 変更可能:Yes
- 説明:FE が QeProcessorImpl からのクエリ登録および登録解除メッセージ (例:
"register query id = {}"および"deregister query id = {}") をログに記録することを許可するかどうか。ログは、クエリに null 以外の ConnectContext があり、コマンドがCOM_STMT_EXECUTEでないか、セッション変数isAuditExecuteStmt()が true の場合にのみ出力されます。これらのメッセージはすべてのクエリライフサイクルイベントに対して書き込まれるため、この機能を有効にすると、ログのボリュームが大きくなり、高並行環境ではスループットのボトルネックになる可能性があります。デバッグまたは監査のために有効にし、ロギングのオーバーヘッドを減らしてパフォーマンスを向上させるために無効にします。 - 導入時期:v3.3.0, v3.4.0, v3.5.0
log_roll_size_mb
- デフォルト:1024
- タイプ:Int
- 単位:MB
- 変更可能:No
- 説明:システムログファイルまたは監査ログファイルの最大サイズ。
- 導入時期:-
proc_profile_file_retained_days
- デフォルト:1
- タイプ:Int
- 単位:Days
- 変更可能:Yes
- 説明:
sys_log_dir/proc_profile以下に生成されたプロセスプロファイリングファイル (CPU およびメモリ) の保持日数。ProcProfileCollector は、現在時刻からproc_profile_file_retained_days日を差し引いて (yyyyMMdd-HHmmss 形式で) カットオフを計算し、タイムスタンプ部分がそのカットオフよりも辞書順で早いプロファイルファイル (timePart.compareTo(timeToDelete) < 0の場合) を削除します。ファイル削除は、proc_profile_file_retained_size_bytesによって制御されるサイズベースのカットオフも尊重します。プロファイルファイルはcpu-profile-とmem-profile-というプレフィックスを使用し、収集後に圧縮されます。 - 導入時期:v3.2.12
proc_profile_file_retained_size_bytes
- デフォルト:2L * 1024 * 1024 * 1024 (2147483648)
- タイプ:Long
- 単位:Bytes
- 変更可能:Yes
- 説明:プロファイルディレクトリ下に保持される、収集された CPU およびメモリプロファイルファイル (
cpu-profile-およびmem-profile-というプレフィックスを持つファイル) の合計バイト数の最大値。有効なプロファイルファイルの合計がproc_profile_file_retained_size_bytesを超えると、コレクターは、残りの合計サイズがproc_profile_file_retained_size_bytes以下になるまで、最も古いプロファイルファイルを削除します。proc_profile_file_retained_daysよりも古いファイルもサイズに関係なく削除されます。この設定はプロファイルアーカイブのディスク使用量を制御し、proc_profile_file_retained_daysと相互作用して削除順序と保持を決定します。 - 導入時期:v3.2.12
profile_log_delete_age
- デフォルト:1d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE プロファイルログファイルが削除対象となるまでの保持期間を制御します。この値は Log4j の
<IfLastModified age="..."/>ポリシー (Log4jConfig経由) に注入され、profile_log_roll_intervalやprofile_log_roll_numなどのローテーション設定と組み合わせて適用されます。サポートされる接尾辞:d(日)、h(時間)、m(分)、s(秒)。例:7d(7 日間)、10h(10 時間)、60m(60 分)、120s(120 秒)。 - 導入時期:v3.2.5
profile_log_dir
- デフォルト:
Config.STARROCKS_HOME_DIR+ "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE プロファイルログが書き込まれるディレクトリ。Log4jConfig はこの値を使用して、プロファイル関連のアペンダーを配置します (このディレクトリの下に
fe.profile.logやfe.features.logのようなファイルを作成します)。これらのファイルのローテーションと保持は、profile_log_roll_size_mb、profile_log_roll_num、profile_log_delete_ageによって管理されます。タイムスタンプのサフィックス形式はprofile_log_roll_interval(DAY または HOUR をサポート) によって制御されます。デフォルトのディレクトリはSTARROCKS_HOME_DIRの下にあるため、FE プロセスがこのディレクトリへ の書き込みおよびローテーション/削除の権限を持っていることを確認してください。 - 導入時期:v3.2.5
profile_log_latency_threshold_ms
- デフォルト:0
- タイプ:Long
- 単位:Milliseconds
- 変更可能:Yes
- 説明:
fe.profile.logに書き込むクエリの最小レイテンシ(ミリ秒)。実行時間がこの値以上の場合にのみ profile を記録します。0 に設定するとすべての profile を記録します(しきい値なし)。正の値に設定すると、遅いクエリのみを記録してログ量を削減できます。 - 導入時期:-
profile_log_roll_interval
- デフォルト:DAY
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:プロファイルログファイル名の日付部分を生成するために使用される時間粒度を制御します。有効な値 (大文字と小文字を区別しない) は
HOURとDAYです。HOURは"%d{yyyyMMddHH}"(時間ごとの時間バケット) のパターンを生成し、DAYは"%d{yyyyMMdd}"(日ごとの時間バケット) を生 成します。この値は Log4j 設定でprofile_file_patternを計算する際に使用され、ロールオーバーファイル名の時間ベースのコンポーネントのみに影響します。サイズベースのロールオーバーはprofile_log_roll_size_mbによって引き続き制御され、保持はprofile_log_roll_num/profile_log_delete_ageによって制御されます。無効な値は、ロギング初期化中に IOException を引き起こします (エラーメッセージ:"profile_log_roll_interval config error: <value>")。高ボリュームプロファイリングの場合はHOURを選択して 1 時間あたりのファイルサイズを制限するか、日次集計の場合はDAYを選択します。 - 導入時期:v3.2.5
profile_log_roll_num
- デフォルト:5
- タイプ:Int
- 単位:-
- 変更可能:No
- 説明:プロファイルロガーの Log4j DefaultRolloverStrategy が保持するローテーションされたプロファイルログファイルの最大数を指定します。この値は、ロギング XML に
${profile_log_roll_num}として注入されます (例:<DefaultRolloverStrategy max="${profile_log_roll_num}" fileIndex="min">)。ローテーションはprofile_log_roll_size_mbまたはprofile_log_roll_intervalによってトリガーされます。ローテーションが発生すると、Log4j は最大でこれらのインデックス付きファイルを保持し、古 いインデックスファイルは削除対象となります。ディスク上での実際の保持は、profile_log_delete_ageとprofile_log_dirの場所にも影響されます。値が小さいとディスク使用量が減りますが、保持される履歴が制限されます。値が大きいと、より多くの履歴プロファイルログが保持されます。 - 導入時期:v3.2.5
profile_log_roll_size_mb
- デフォルト:1024
- タイプ:Int
- 単位:MB
- 変更可能:No
- 説明:FE プロファイルログファイルのサイズベースのロールオーバーをトリガーするサイズしきい値 (メガバイト単位) を設定します。この値は、
ProfileFileアペンダーの Log4j RollingFile SizeBasedTriggeringPolicy によって使用されます。プロファイルログがprofile_log_roll_size_mbを超えると、ローテーションされます。ローテーションは、profile_log_roll_intervalに達したときに時間によっても発生する可能性があります。いずれかの条件がロールオーバーをトリガーします。profile_log_roll_numとprofile_log_delete_ageと組み合わせることで、この項目は保持される履歴プロファイルファイルの数と古いファイルの削除時期を制御します。ローテーションされたファイルの圧縮はenable_profile_log_compressによって制御されます。 - 導入時期:v3.2.5
qe_slow_log_ms
- デフォルト:5000
- タイプ:Long
- 単位:Milliseconds
- 変更可能:Yes
- 説明:クエリが遅いクエリかどうかを判断するために使用されるしきい値。クエリの応答時間がこのしきい値を超えると、fe.audit.log に遅いクエリとして記録されます。
- 導入時期:-
slow_lock_log_every_ms
- デフォルト:3000L
- タイプ:Long
- 単位:Milliseconds
- 変更可能:Yes
- 説明:同じ SlowLockLogStats インスタンスに対して別の「低速ロック」警告を発行するまでに待機する最小間隔 (ミリ秒)。LockUtils は、ロック待機が
slow_lock_threshold_msを超えた後にこの値をチェックし、最後のログに記録された低速ロックイベントからslow_lock_log_every_msミリ秒が経過するまで追加の警告を抑制します。長期的な競合中にログのボリュームを減らすには値を大きくし、より頻繁な診断を得るには値を小さくします。変更は、その後のチェックに対して実行時に有効になります。 - 導入時期:v3.2.0
slow_lock_print_stack
- デフォルト:true
- タイプ:Boolean
- 単位:-
- 変更可能:Yes
- 説明:LockManager が
logSlowLockTraceによって出力される低速ロック警告の JSON ペイロードに、所有スレッドの完全なスタックトレースを含めることを許可するかどうか ("stack" 配列はLogUtil.getStackTraceToJsonArrayを使用してstart=0およびmax=Short.MAX_VALUEで設定されます)。この設定は、ロック取得がslow_lock_threshold_msで設定されたしきい値を超えたときに表示されるロック所有者に関する追加のスタック情報のみを制御します。この機能を有効にすると、ロックを保持している正確なスレッドスタックを提供することでデバッグに役立ちます。無効にすると、高並行環境でスタックトレースをキャプチャしてシリアル化することによるログのボリュームと CPU/メモリのオーバーヘッドが減少します。 - 導入時期:v3.3.16, v3.4.5, v3.5.1
slow_lock_threshold_ms
- デフォルト:3000L
- タイプ:long
- 単位:Milliseconds
- 変更可能:Yes
- 説明:ロック操作または保持されているロックを「遅い」と分類するために使用されるしきい値 (ミリ秒)。ロックの経過待機時間または保持時間がこの値を超えると、StarRocks は (コンテキストに応じて) 診断ログを出力し、スタックトレースまたは待機者/所有者情報を含め、LockManager ではこの遅延後にデッドロック検出を開始します。これは LockUtils (低速ロックロギング)、QueryableReentrantReadWriteLock (低速リーダーのフィルタリング)、LockManager (デッドロック検出遅延と低速ロックトレース)、LockChecker (定期的な低速ロック検出)、およびその他の呼び出し元 (例: DiskAndTabletLoadReBalancer ロギング) によって使用されます。値を下げると感度とロギング/診断のオーバーヘッドが増加します。0 または負の数に設定すると、初期の待機ベースのデッドロック検出遅延動作が無効になります。
slow_lock_log_every_ms、slow_lock_print_stack、およびslow_lock_stack_trace_reserve_levelsと一緒に調整します。 - 導入時期:3.2.0
sys_log_delete_age
- デフォルト:7d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:システムログファイルの保持期間。デフォルト値
7dは、各システムログファイルが 7 日間保持できることを指定します。StarRocks は各システムログファイルをチェックし、7 日以上前に生成されたファイルを削除します。 - 導入時期:-
sys_log_dir
- デフォルト:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:システムログファイルを格納するディレクトリ。
- 導入時期:-
sys_log_enable_compress
- デフォルト:false
- タイプ:boolean
- 単位:-
- 変更可能:No
- 説明:この項目が
trueに設定されている場合、システムはローテーションされたシステムログファイル名に ".gz" 接尾辞を追加し、Log4j が gzip 圧縮されたローテーションされた FE システムログ (例: fe.log.*) を生成するようにします。この値は Log4j 設定生成時 (Log4jConfig.initLogging / generateActiveLog4jXmlConfig) に読み取られ、RollingFile の filePattern で使用されるsys_file_postfixプロパティを制御します。この機能を有効にすると、保持されるログのディスク使用量は減少しますが、ロールオーバー時の CPU と I/O が増加し、ログファイル名が変更されるため、ログを読み取るツールやスクリプトは .gz ファイルを処理できる必要があります。監査ログは圧縮に別の設定 (audit_log_enable_compress) を使用することに注意してください。 - 導入時期:v3.2.12
sys_log_format
- デフォルト:"plaintext"
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE ログに使用される Log4j レイアウトを選択します。有効な値:
"plaintext"(デフォルト) と"json"。値は大文字と小文字を区別しません。"plaintext"は、人間が読めるタイムスタンプ、レベル、スレッド、class.method:line、および WARN/ERROR のスタックトレースを持つ PatternLayout を構成します。"json"は JsonTemplateLayout を構成し、ログアグリゲーター (ELK、Splunk) に適した構造化 JSON イベント (UTC タイムスタンプ、レベル、スレッド ID/名、ソースファイル/メソッド/行、メッセージ、例外スタックトレース) を出力します。JSON 出力は、sys_log_json_max_string_lengthおよびsys_log_json_profile_max_string_lengthの最大文字列長に準拠します。 - 導入時期:v3.2.10
sys_log_json_max_string_length
- デフォルト:1048576
- タイプ:Int
- 単位:Bytes
- 変更可能:No
- 説明:JSON 形式のシステムログに使用される JsonTemplateLayout の "maxStringLength" 値を設定します。
sys_log_formatが"json"に設定されている場合、文字列値のフィールド (たとえば "message" や文字列化された例外スタックトレース) は、長さがこの制限を超えると切り捨てられます。この値は、生成された Log4j XML (Log4jConfig.generateActiveLog4jXmlConfig()内) に注入され、デフォルト、警告、監査、ダンプ、および大容量クエリレイアウトに適用されます。プロファイルレイアウトは別の設定 (sys_log_json_profile_max_string_length) を使用します。この値を小さくするとログサイズは減りますが、有用な情報が切り捨てられる可能性があります。 - 導入時期:3.2.11
sys_log_json_profile_max_string_length
- デフォルト:104857600 (100 MB)
- タイプ:Int
- 単位:Bytes
- 変更可能:No
- 説明:
sys_log_formatが "json" の場合、プロファイル (および関連機能) ログアペンダーの JsonTemplateLayout の maxStringLength を設定します。JSON 形式のプロファイルログ内の文字列フィールド値は、このバイト長に切り捨てられます。非文字列フィールドは影響を受けません。この項目は Log4jConfig のJsonTemplateLayout maxStringLengthに適用され、プレーンテキストロギングが使用されている場合は無視されます。必要な完全なメッセージに対して十分な大きさに保ちますが、値が大きいとログサイズと I/O が増加すること に注意してください。 - 導入時期:v3.2.11
sys_log_level
- デフォルト:INFO
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:システムログエントリが分類される重大度レベル。有効な値:
INFO、WARN、ERROR、およびFATAL。 - 導入時期:-
sys_log_roll_interval
- デフォルト:DAY
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:StarRocks がシステムログエントリをローテーションする時間間隔。有効な値:
DAYとHOUR。- このパラメーターが
DAYに設定されている場合、システムログファイル名にyyyyMMdd形式のサフィックスが追加されます。 - このパラメーターが
HOURに設定されている場合、システムログファイル名にyyyyMMddHH形式のサフィックスが追加されます。
- このパラメーターが
- 導入時期:-
sys_log_roll_num
- デフォルト:10
- タイプ:Int
- 単位:-
- 変更可能:No
- 説明:
sys_log_roll_intervalパラメーターで指定された各保持期間内に保持できるシステムログファイルの最大数。 - 導入時期:-
sys_log_to_console
- デフォルト:false (unless the environment variable
SYS_LOG_TO_CONSOLEis set to "1") - タイプ:Boolean
- 単位:-
- 変更可能:No
- 説明:この項目が
trueに設定されている場合、システムは Log4j を設定して、すべてのログをファイルベースのアペンダーではなくコンソール (ConsoleErr アペンダー) に送信します。この値はアクティブな Log4j XML 設定を生成する際に読み取られ (ルートロガーおよびモジュールごとのロガーアペンダーの選択に影響します)、プロセス起動時にSYS_LOG_TO_CONSOLE環境変数から取得されます。実行時に変更しても効果はありません。この設定は、stdout/stderr ログ収集がログファイルの書き込みよりも優先されるコンテナ化された環境や CI 環境で一般的に使用されます。 - 導入時期:v3.2.0
sys_log_verbose_modules
- デフォルト:Empty string
- タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:StarRocks がシステムログを生成するモジュール。このパラメーターが
org.apache.starrocks.catalogに設定されている場合、StarRocks はカタログモジュールのみのシステムログを生成します。モジュール名をコンマ (,) とスペースで区切ります。 - 導入時期:-
sys_log_warn_modules
- デフォルト:
- タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:システムが起動時に WARN レベルのロガーとして設定し、警告アペンダー (SysWF) (
fe.warn.logファイル) にルーティングするロガー名またはパッケージプレフィックスのリスト。エントリは生成された Log4j 設定 (org.apache.kafka、org.apache.hudi、org.apache.hadoop.io.compress などの組み込み警告モジュールとともに) に挿入され、<Logger name="... " level="WARN"><AppenderRef ref="SysWF"/></Logger>のようなロガー要素を生成します。完全修飾パッケージおよびクラスプレフィックス (例: "com.example.lib") は、通常のログへのノイズの多い INFO/DEBUG 出力を抑制し、警告を個別にキャプチャできるようにするために推奨されます。 - 導入時期:v3.2.13