Hudi

Supported OS Windows Mac OS

통합 버전2.3.0

개요

이 점검은 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을 참조하세요.

    이 점검에는 인스턴스당 메트릭이 350개로 제한됩니다. 반환된 메트릭 수는 Datadog Agent 상태 명령을 실행할 때 표시됩니다. 구성을 편집하여 관심 있는 메트릭을 지정할 수 있습니다. 수집할 메트릭을 사용자 정의하는 자세한 방법은 JMX Checks 문서를 참조하세요. 더 많은 메트릭을 모니터링해야 하는 경우 Datadog 지원팀에 문의하세요.

  3. Agent를 재시작합니다

검증

Agent의 status 하위 명령을 실행하고 Checks 섹션에서 hudi를 찾습니다.

수집한 데이터

메트릭

hudi.action.bytes_written
(rate)
The total amount of bytes written in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as byte
hudi.action.commit_time
(gauge)
The commit time of an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as millisecond
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.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.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.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.999th_percentile
(gauge)
Measures 999th 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.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
hudi.action.update_records_written
(rate)
The amount of update records written in an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as record
hudi.action.upsert_time
(rate)
The upsert time of an action (commit, deltacommit, replacecommit, compaction, etc)
Shown as millisecond
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.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.index.command.duration
(gauge)
The time spent performing an index command (UPSERT, INSERT_OVERWRITE, etc)
Shown as millisecond
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

로그 수집

Agent 버전 6.0 이상에서 사용 가능

  1. Hudi는 기본적으로 log4j 로거를 사용합니다. 형식을 사용자 정의하려면 Flink 또는 Spark conf 디렉터리에서 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 에이전트에서 로그 수집은 기본적으로 사용하지 않도록 설정되어 있습니다. datadog.yaml파일에서 로그 수집을 사용하도록 설정합니다.

    logs_enabled: true
    
  4. hudi.d/conf.yaml 파일에서 로그 구성 블록의 주석 처리를 제거하고 편집합니다. 환경에 따라 pathservice 파라미터 값을 변경합니다. 사용 가능한 모든 구성 옵션은 샘플 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, WARNING if no metrics are collected, and OK otherwise.
Statuses: ok, critical, warning

트러블슈팅

도움이 필요하신가요? Datadog 지원팀에 문의하세요.