배포 및 유지보수 / 자체 모니터링 데이터 업로드
이 문서에서는 DataFlux Func의 자체 모니터링 데이터 업로드를 구성하는 방법을 소개합니다.
1. 서문
기본적으로 DataFlux Func의 자체 모니터링 데이터는 로컬 Redis 및 MySQL에 저장됩니다.
DataFlux Func를 과도하게 사용한 후에는 메트릭, 로그 등의 데이터 양이 상당히 방대해질 수 있습니다. 로컬 메모리와 디스크 사용을 제한하기 위해 로컬에 저장되는 시스템 메트릭과 작업 기록 로그는 축소되고, 저장 총량도 제한됩니다.
배포 및 유지보수 / 시스템 메트릭 및 작업 기록 / 로컬 함수 작업 기록 비활성화를 참조하여 「로컬 함수 작업 기록」을 비활성화하면 MySQL 저장 부담을 줄일 수 있습니다.
DataFlux Func에서 생성된 시스템 메트릭 및 작업 기록 로그를 완전히 기록해야 하는 경우 시스템 설정을 통해 데이터를 데이터 플랫폼에 업로드할 수 있습니다.
2. 「자체 모니터링 데이터 업로드」 활성화
업로드된 작업 로그는 완전한 로그이며 축소되지 않습니다.
관리 / 시스템 설정 / 자체 모니터링 데이터 업로드에서 사용자는 「자체 모니터링 데이터 업로드」를 활성화할 수 있습니다.
URL 주소에는 DataWay 또는 DataKit 업로드 주소를 입력할 수 있습니다.
| Text Only | |
|---|---|
1 | |
| Text Only | |
|---|---|
1 | |
또한, 일반적으로 현재 DataFlux Func의 용도를 표시하기 위해 사이트 이름을 입력하는 것도 권장됩니다(예: 「테스트용 Func」).
「자체 모니터링 데이터 업로드」를 활성화한 후에는 「로컬 함수 작업 기록」을 동시에 비활성화하여 로컬 DataFlux Func 저장 부담을 줄일 수 있습니다.
3. 데이터 플랫폼에서 시스템 메트릭, 작업 기록 로그 확인
「자체 모니터링 데이터 업로드」를 올바르게 구성하면 데이터 플랫폼에서 업로드된 시스템 메트릭과 작업 로그를 확인할 수 있습니다.
4. 업로드 데이터 설명
DataFlux Func는 문제 해결을 위해 다양한 데이터를 업로드합니다.
자체 모니터링은 수시로 조정될 수 있습니다.
자체 모니터링 데이터는 실제 상황에 따라 버전 업데이트와 함께 수시로 조정됩니다. 본 문서는 최신 버전의 자체 모니터링 데이터 설명만 제공합니다.
service 필터를 추가하여 쿼리 효율을 높일 수 있습니다
최신 버전에서는 모든 Logging 자체 모니터링 데이터에 service Tag가 추가되며, 값은 Logging의 source와 동일합니다. ScopeDB의 service 파티션 저장에 맞추기 위한 것입니다.
따라서 Func의 Logging 자체 모니터링 데이터를 조회할 때 필터 조건 source:xxxxx에 service:xxxxx를 추가하면 쿼리 효율을 크게 높일 수 있습니다.
지연 큐(Metric)
아직 트리거 시간에 도달하지 않은 작업 큐
메트릭 셋: DFF_delay_queue
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
queue |
Tag | 큐 | "8" |
length |
Field | 큐 길이 | 100 |
작업 큐(Metric)
트리거 시간에 도달한 작업 큐
메트릭 셋: DFF_worker_queue
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
queue |
Tag | 큐 | "8" |
length |
Field | 큐 길이 | 100 |
worker_count |
Field | 큐를 모니터링하는 작업 단위 수 | 5 |
process_count |
Field | 큐를 모니터링하는 프로세스 수 | 25 |
함수 트리거 카운트(Metric)
메트릭 셋: DFF_func_trigger
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
func_id |
Tag | 함수 ID | "demo__test.run" |
trigger_count_per_minute |
Field | 분당 트리거 수 | 100 |
함수 실행 카운트(Metric)
메트릭 셋: DFF_func_run
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
func_id |
Tag | 함수 ID | "demo__test.run" |
run_count_per_minute |
Field | 분당 실행 수 | 100 |
함수 실행 상태 카운트(Metric)
메트릭 셋: DFF_func_status
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
status |
Tag | 함수 실행 상태 | "success" |
status_count_per_minute |
Field | 분당 상태 수 | 100 |
함수 실행 소요 시간(Metric)
메트릭 셋: DFF_func_cost
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
wait_cost_sum_per_minute |
Field | 분당 대기 소요 시간 합계(밀리초) | 10000 |
queue_cost_sum_per_minute |
Field | 분당 큐 대기 소요 시간 합계(밀리초) | 10000 |
run_cost_sum_per_minute |
Field | 분당 실행 소요 시간 합계(밀리초) | 10000 |
total_cost_sum_per_minute |
Field | 분당 총 소요 시간 합계(밀리초) | 10000 |
cpu_cost_sum_per_minute |
Field | 분당 CPU 소요 시간 합계(밀리초) | 10000 |
non_cpu_cost_sum_per_minute |
Field | 분당 비 CPU 소요 시간 합계(밀리초) | 10000 |
캐시 데이터베이스(Metric)
메트릭 셋: DFF_cache_db
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
server |
Tag | 대상 데이터베이스(HOST:PORT/DB) |
"127.0.0.1:6379/5" |
keys |
Field | Key 수 | 100 |
used_memory |
Field | 메모리 사용량(바이트) | 10000 |
connected_clients |
Field | 연결된 클라이언트 수 | 100 |
uptime |
Field | 서비스 가동 시간(초) | 60 |
데이터베이스 테이블(Metric)
메트릭 셋: DFF_db_table
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
server |
Tag | 대상 데이터베이스(HOST:PORT/DB) |
"127.0.0.1:3306/dataflux_func" |
name |
Tag | 테이블 이름 | "biz_main_func_api" |
rows |
Field | 행 수 | 10 |
data_size |
Field | 데이터 크기(바이트) | 100 |
index_size |
Field | 인덱스 크기(바이트) | 100 |
total_size |
Field | 총 크기(바이트) | 200 |
avg_row_size |
Field | 평균 행당 크기(바이트) | 100 |
예약 작업 계획(Metric)
메트릭 셋: DFF_cron_job_scheduled
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
scheduled_count_per_week |
Field | 주당 예약 실행 수 | 604800 |
scheduled_count_per_day |
Field | 일별 예약 실행 수 | 86400 |
scheduled_count_per_hour |
Field | 시간별 예약 실행 수 | 3600 |
scheduled_count_per_minute |
Field | 분당 예약 실행 수 | 60 |
scheduled_count_per_second |
Field | 초당 예약 실행 수 | 1 |
비즈니스 엔티티(Metric)
메트릭 셋: DFF_entity
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
entity |
Tag | 비즈니스 엔티티 | "funcAPI" |
count |
Field | 수 | 100 |
enabled_count |
Field | 활성화된 수 | 99 |
자체 모니터링 데이터 업로드 Panic 레벨(Metric)
메트릭 셋: DFF_self_monitor_upload_panic_level
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
panic_level |
Field | Panic 레벨 | 10 |
Func 서비스 정보(Logging)
메트릭 셋: DFF_service_info
| 필드 | 유형 | 설명 | 예시 값 |
|---|---|---|---|
name |
Tag | 서비스 이름 | "server", "worker", "beat" |
version |
Tag | 버전 번호 | "7.1.11" |
edition |
Tag | 버전 | "GSE" |
hostname |
Tag | 호스트명 | "web001" |
pid |
Tag | 프로세스 PID | 1234 |
uptime |
Field | 서비스 가동 시간(초) | 60 |
시스템 작업 기록 / 함수 작업 기록(Logging)
DataFlux Func는 내부 시스템 작업 또는 함수 작업을 실행한 후 해당 작업 로그를 업로드하며, 로그 뷰어를 통해 확인할 수 있습니다.
| 메트릭 셋 | 설명 |
|---|---|
DFF_task_record |
시스템 작업 기록 |
DFF_task_record_func |
함수 작업 기록 |
| 필드 | 설명 | 시스템 작업 기록 | 함수 작업 기록 |
|---|---|---|---|
source |
데이터 소스 | DFF_task_record |
DFF_task_record_func |
site_name |
사이트명 | ||
id |
작업 ID | ||
name |
작업명 | ||
queue |
소속 큐 | ||
task_status |
작업 상태, 가능한 값은 아래 참조 | ||
root_task_id |
루트 작업 ID | ||
script_set_id |
소속 스크립트 세트 ID | ||
script_id |
소속 스크립트 ID | ||
func_id |
함수 ID | ||
func_name |
함수명 | ||
origin |
출처, 가능한 값은 아래 참조 | ||
origin_id |
출처 ID 예: 예약 작업 ID |
||
script_set_title |
소속 스크립트 세트 제목 | ||
script_title |
소속 스크립트 제목 | ||
func_title |
함수 제목 | ||
cron_job_exec_mode |
예약 작업 실행 모드 | ||
func_call_kwargs |
함수 전달 인자 | ||
cron_expr |
예약 작업 Crontab 표현식 | ||
call_chain |
호출 체인 | ||
return_value |
Return 반환 값 | ||
message |
작업 로그 | ||
kwargs |
작업 매개변수 | ||
eta |
예상 실행 시간 | ||
delay |
지연 실행 시간(초) | ||
timeout |
타임아웃 시간(초) | ||
expires |
만료 시간(초) | ||
ignore_result |
결과 무시 여부 | ||
result |
결과 내용 | ||
exception_from |
예외 출처 | ||
exception_type |
예외 유형 | ||
exception |
예외 내용 | ||
origin_exception_type |
원본 예외 유형 | ||
origin_exception |
원본 예외 내용 | ||
traceback |
오류 스택 | ||
trigger_time_iso |
트리거 시간(ISO 날짜 형식) | ||
start_time_iso |
시작 시간(ISO 날짜 형식) | ||
end_time_iso |
종료 시간(ISO 날짜 형식) | ||
wait_cost |
대기 시간(밀리초) | ||
run_cost |
실행 소요 시간(밀리초) | ||
total_cost |
총 소요 시간(밀리초) | ||
cpu_cost |
CPU 소요 시간(밀리초) | ||
cpu_cost_percent |
CPU 소요 시간 비율 | ||
non_cpu_cost |
비 CPU 소요 시간(밀리초) | ||
non_cpu_cost_percent |
비 CPU 소요 시간 비율 | ||
sys_db_query_count |
시스템 DB 쿼리 횟수 | ||
sys_db_query_details |
시스템 DB 쿼리 상세 | ||
sys_cache_db_query_count |
시스템 캐시 쿼리 횟수 | ||
sys_cache_db_query_details |
시스템 캐시 쿼리 상세 | ||
status |
로그 상태, 가능한 값은 아래 참조 | ||
workspace_uuid |
워크스페이스 ID | ||
df_monitor_checker_id |
모니터 ID | ||
df_monitor_id |
알람 정책 ID | ||
df_wksp_id |
wksp_xxxxx 필드를 포함하는 함수에만 해당 |
||
df_rul_id |
rul_xxxxx 필드를 포함하는 함수에만 해당 |
5. 관련 필드 상세 설명
일부 필드 상세 설명은 다음과 같습니다.
task_status 및 status 필드
DataFlux Func 업로드 로그에서 task_status와 status는 일대일 관계를 가지며, task_status는 작업 상태 설명이고, status는 데이터 플랫폼 규격을 충족하는 상태 값입니다.
구체적인 대응표는 다음과 같습니다.
| task_status 값 | status 값 | 설명 |
|---|---|---|
success |
ok |
성공 |
failure |
critical |
실패 |
skip |
warning |
작업 건너뜀 |
origin 및 origin_id 필드
origin 및 origin_id 필드는 함수 작업의 실행 출처를 표시하는 데 사용됩니다. 구체적인 값은 다음과 같습니다.
| origin 값 | 설명 | origin_id 값 의미 | 비고 |
|---|---|---|---|
funcAPI |
함수 API | 함수 API ID | |
cronJob |
예약 작업 | 예약 작업 ID | |
direct |
직접 함수 호출 예: 데이터 플랫폼 Studio에서 클러스터 내 호출 |
direct로 고정 |
|
integration |
스크립트 세트 통합으로 트리거됨 | {통합 유형}.{시작 방식}-{함수 ID} |
|
syncAPI |
동기 API | 동기 API ID | 최신 버전에서 funcAPI로 대체됨 |
asyncAPI |
비동기 API | 비동기 API ID | 최신 버전에서 funcAPI로 대체됨 |
authLink |
인증 링크 | 인증 링크 ID | 최신 버전에서 syncAPI로 대체됨 |
crontab |
자동 트리거 설정 | 자동 트리거 설정 ID | 최신 버전에서 cronJob로 대체됨 |
batch |
일괄 처리 | 일괄 처리 ID | 최신 버전에서 asyncAPI로 대체됨 |