Hudi

Supported OS Linux Windows

Integrationv2.1.1

概要

このチェックは Hudi を監視しています。 Hudi バージョン 0.10.0 以降と互換性があります。

セットアップ

インストール

Hudi チェックは Datadog Agent パッケージに含まれています。 サーバーに追加でインストールする必要はありません。

コンフィギュレーション

  1. Hudi で JMX Metrics Reporter構成します。

    hoodie.metrics.on=true
    hoodie.metrics.reporter.type=JMX
    hoodie.metrics.jmx.host=<JMX_HOST>
    hoodie.metrics.jmx.port=<JMX_PORT>
    
  2. Agent の構成ディレクトリのルートにある conf.d/ フォルダーの hudi.d/conf.yaml ファイルを編集して、 hudi パフォーマンスデータの収集を開始します。 使用可能なすべてのコンフィギュレーションオプションの詳細については、サンプル hudi.d/conf.yaml を参照してください。

    このチェックは、1 インスタンスあたり 350 メトリクスの制限があります。返されたメトリクスの数は、Datadog Agent の status コマンドを実行したときに表示されます。 構成を編集することで、関心があるメトリクスを指定できます。 収集するメトリクスをカスタマイズする方法については、JMX チェックのドキュメントで詳細な手順を参照してください。 制限以上のメトリクスを監視する必要がある場合は、Datadog のサポートチームまでお問い合わせください。

  3. Agent を再起動します

検証

Agent の status サブコマンドを実行し、Checks セクションで hudi を探します。

収集データ

メトリクス

hudi.action.duration
(gauge)
The amount of time it took to successfully perform an action on a batch of records (commit, deltacommit, replacecommit, compaction, etc)
Shown as millisecond
hudi.action.bytes_written
(rate)
The total amount of bytes written in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as byte
hudi.action.compacted_records_updated
(rate)
The amount of compacted records updated in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as record
hudi.action.create_time
(rate)
The creation time of an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as millisecond
hudi.action.upsert_time
(rate)
The upsert time of an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as millisecond
hudi.action.commit_time
(gauge)
The commit time of an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as millisecond
hudi.action.files_inserted
(rate)
The amount of files inserted (commit, deltacommit, replacecommit, compaction, etc)
Shown as file
hudi.action.files_updated
(rate)
The amount of files updated (commit, deltacommit, replacecommit, compaction, etc)
Shown as file
hudi.action.insert_records_written
(rate)
The number of insert records written in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as record
hudi.action.log_files_compacted
(rate)
The number of log files compacted in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as file
hudi.action.log_files_size
(rate)
The size of all the log files in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as byte
hudi.action.partitions_written
(rate)
The number of partitions written in an action (commit, deltacommit, replacecommit, compaction, etc)
hudi.action.records_written
(rate)
The number of records written in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as record
hudi.action.scan_time
(rate)
The total time spent scanned in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as millisecond
hudi.action.update_records_written
(rate)
The amount of update records written in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as record
hudi.index.command.duration
(gauge)
The time spent performing an index command (UPSERT, INSERT_OVERWRITE, etc)
Shown as millisecond
hudi.finalize.duration
(gauge)
The total time spent finalizing
Shown as millisecond
hudi.finalize.files_finalized
(gauge)
The number of files finalized"
Shown as file
hudi.clean.duration
(gauge)
The total time spent cleaning
Shown as millisecond
hudi.clean.files_deleted
(gauge)
The number of files deleted in cleans
Shown as file
hudi.rollback.duration
(gauge)
The total time spent in rollback
Shown as millisecond
hudi.rollback.files_deleted
(gauge)
The number of files deleted in rollback
Shown as file
hudi.action.time.50th_percentile
(gauge)
Measures 50th percentile of time to complete the action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond
hudi.action.time.75th_percentile
(gauge)
Measures 75th percentile of time to complete an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond
hudi.action.time.95th_percentile
(gauge)
Measures 95th percentile of time to complete an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond
hudi.action.time.98th_percentile
(gauge)
Measures 98th percentile of time to complete an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond
hudi.action.time.99th_percentile
(gauge)
Measures 99th percentile of time to complete an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond
hudi.action.time.999th_percentile
(gauge)
Measures 999th percentile of time to complete an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond
hudi.action.time.count
(rate)
Measures count of times to complete an action (commit, deltacommit, replacecommit, compaction, etc)
hudi.action.time.max
(gauge)
Measures maximum amount of time to complete an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond
hudi.action.time.mean
(gauge)
Measures mean amount of time to complete an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond
hudi.action.time.min
(gauge)
Measures minimum amount of time to complete an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond
hudi.action.time.std_dev
(gauge)
Measures standard deviation of time to complete an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as nanosecond

ログの収集

Agent バージョン 6.0 以降で利用可能

  1. Hudi はデフォルトで log4j というロガーを使用します。フォーマットをカスタマイズするには、Flink または Sparkconf ディレクトリにある log4j.properties ファイルを編集してください。以下に log4j.properties ファイルの例を挙げます。

     log4j.rootCategory=INFO, file
     log4j.appender.file=org.apache.log4j.FileAppender
     log4j.appender.file.File=/var/log/hudi.log
     log4j.appender.file.append=false
     log4j.appender.file.layout=org.apache.log4j.PatternLayout
     log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
    
  2. Datadog のインテグレーションパイプラインは、デフォルトで、次の変換パターンをサポートします。

    %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
    

    タイムスタンプの部分には、たとえば 2020-02-03 18:43:12,251 などが入ります。

    フォーマットが異なる場合は、インテグレーションパイプラインを複製して編集してください。

  3. Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml ファイルでこれを有効にします。

    logs_enabled: true
    
  4. hudi.d/conf.yaml ファイルのコメントを解除して、ログコンフィギュレーションブロックを編集します。環境に基づいて、path パラメーターと service パラメーターの値を変更してください。使用可能なすべてのコンフィギュレーションオプションの詳細については、hudi.d/conf.yaml のサンプルを参照してください。

    logs:
      - type: file
        path: /var/log/hudi.log
        source: hudi
        log_processing_rules:
          - type: multi_line
            pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
            name: new_log_start_with_date
    

イベント

Hudi インテグレーションには、イベントは含まれません。

サービスのチェック

hudi.can_connect
Returns CRITICAL if the Agent is unable to connect to and collect metrics from the monitored Hudi instance. Returns OK otherwise.
Statuses: ok, critical

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問い合わせください。