- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Supported OS
Datadog은 여러 Databricks 모니터링 기능을 제공합니다.
데이터 작업 모니터링은 Databricks 작업 및 클러스터 모니터링을 제공합니다. 데이터 파이프라인의 모든 곳에서 문제가 발생한 Databricks 작업 및 워크플로를 감지하고, 실패한 작업과 장기 실행 작업을 더 빠르게 수정하며, 클러스터 리소스를 최적화하여 비용을 절감합니다.
클라우드 비용 관리는 모든 Databricks DBU 비용을 관련 클라우드 지출과 함께 분석할 수 있는 보기를 제공해 드립니다.
로그 관리를 통해 Databricks 작업 및 클러스터에서 로그를 집계 및 분석할 수 있습니다. 데이터 작업 모니터링의 일부로써 이러한 로그를 수집할 수 있습니다.
인프라스트럭처 모니터링은 데이터 작업 모니터링 기능(Databricks 클러스터 및 Apache Spark 성능 메트릭의 리소스 사용률에 대한 가시성)의 제한된 하위 집합을 제공해 드립니다.
메트릭 서빙 모델은 Databricks 모델 서빙 인프라스트럭처 성능에 대한 인사이트를 제공합니다. 해당 메트릭을 통해 오류율 및 레이턴시가 높고 과도/부족 프로비저닝된 엔드포인트를 감지할 수 있습니다.
모델 서빙 설정 지침에 따라 모델 서빙 인프라스트럭처의 상태에 대한 인사이트를 얻으세요.
Datadog Spark 통합으로 Databricks Spark 애플리케이션을 모니터링하세요. 설정 안내에 따라 내 클러스터에 맞는 적절한 Datadog 에이전트를 설치하세요. Spark 설정 지침을 참조하세요.
Databricks Workspace에서 오른쪽 상단의 프로필을 클릭하고 설정으로 이동합니다. 왼쪽 바에서 개발자를 선택합니다. 토큰 액세스 옆의 관리를 클릭합니다.
새 토큰 생성을 클릭하고 코멘트 필드에 “Datadog 통합"을 입력한 다음, **라이프타임(일)**의 기본값을 삭제하고 생성을 클릭합니다. 토큰을 기록해 두세요.
중요:
또는 공식 Databricks 문서에 따라 서비스 프린시펄에 대한 액세스 토큰을 생성하세요.
Datadog에서 Databricks 통합 타일을 엽니다.
설정 탭에서 Databricks Workspace 추가를 클릭합니다.
워크스페이스 이름, Databricks 워크스페이스 URL, 생성한 Databricks 토큰을 입력합니다.
수집 설정할 리소스 선택 섹션에서 메트릭 - 모델 서빙이 활성화로 설정되어 있는지 확인합니다.
Spark 통합을 구성해 Databricks에서 Apache Spark 클러스터를 모니터링하고 시스템 및 Spark 메트릭 수집하기
아래 각 스크립트를 원하는 데로 수정해서 사용할 수 있습니다. 다음 예를 참고하세요.
또한 UI, Databricks CLI, 또는 클러스터 API를 호출해 클러스터를 사용해 클러스터 수준 init 스크립트 경로로 환경 변수를 정의하거나 수정할 수 있습니다.
DD_API_KEY
를 설정하세요.DD_ENV
를 설정하세요DD_SITE
를 설정하세요(
). 기본값은 datadoghq.com
입니다.전역 init 스크립트는 각 작업 영역에 모두 생성됩니다. 조직 수준 라이브러리 구성이나 보안 스크린을 적용할 때 전역 init 스크립트를 사용하면 유용합니다.
전역 init 스크립트를 편집하려면 Databricks UI를 사용하세요.
Datadog init script
)한 후 Script 필드에 붙여 넣기 하세요.이 단계를 실행하면 새 클러스터에서 자동으로 해당 스크립트를 사용합니다. 글로벌 초기화 스크립트에 관한 자세한 내용은 Databricks 공식 설명서를 참고하세요.
클러스터 노드의 드라이버에 Datadog 에이전트를 설치하세요.
#!/bin/bash
cat <<EOF > /tmp/start_datadog.sh
#!/bin/bash
date -u +"%Y-%m-%d %H:%M:%S UTC"
echo "Running on the driver? \$DB_IS_DRIVER"
echo "Driver ip: \$DB_DRIVER_IP"
DB_CLUSTER_NAME=$(echo "$DB_CLUSTER_NAME" | sed -e 's/ /_/g' -e "s/'/_/g")
DD_API_KEY='<YOUR_API_KEY>'
if [[ \${DB_IS_DRIVER} = "TRUE" ]]; then
echo "Installing Datadog Agent on the driver..."
# 드라이버용 호스트 태그 구성
DD_TAGS="environment:\${DD_ENV}","databricks_cluster_id:\${DB_CLUSTER_ID}","databricks_cluster_name:\${DB_CLUSTER_NAME}","spark_host_ip:\${DB_DRIVER_IP}","spark_node:driver","databricks_instance_type:\${DB_INSTANCE_TYPE}","databricks_is_job_cluster:\${DB_IS_JOB_CLUSTER}"
# 드라이버와 작업 노드에 최신 Datadog 에이전트 7 설치
DD_INSTALL_ONLY=true \
DD_API_KEY=\$DD_API_KEY \
DD_HOST_TAGS=\$DD_TAGS \
DD_HOSTNAME="\$(hostname | xargs)" \
DD_SITE="\${DD_SITE:-datadoghq.com}" \
bash -c "\$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh)"
# 포트 6062의 충돌 예방
echo "process_config.expvar_port: 6063" >> /etc/datadog-agent/datadog.yaml
echo "Datadog Agent is installed"
while [ -z \$DB_DRIVER_PORT ]; do
if [ -e "/tmp/driver-env.sh" ]; then
DB_DRIVER_PORT="\$(grep -i "CONF_UI_PORT" /tmp/driver-env.sh | cut -d'=' -f2)"
fi
echo "Waiting 2 seconds for DB_DRIVER_PORT"
sleep 2
done
echo "DB_DRIVER_PORT=\$DB_DRIVER_PORT"
# 구조화된 스트리밍 메트릭이 활성환 상태에서 Spark 통합 구성 파일 쓰기
# spark.d/conf.yaml.example에 다른 옵션을 포함하도록 수정
echo "init_config:
instances:
- spark_url: http://\${DB_DRIVER_IP}:\${DB_DRIVER_PORT}
spark_cluster_mode: spark_driver_mode
cluster_name: \${DB_CLUSTER_NAME}
streaming_metrics: true
executor_level_metrics: true
logs:
- type: file
path: /databricks/driver/logs/*.log
source: spark
service: databricks
log_processing_rules:
- type: multi_line
name: new_log_start_with_date
pattern: \d{2,4}[\-\/]\d{2,4}[\-\/]\d{2,4}.*" > /etc/datadog-agent/conf.d/spark.d/spark.yaml
echo "Spark integration configured"
# 드라이버 로그를 수집하도록 datadog.yaml에서 로그 활성화
sed -i '/.*logs_enabled:.*/a logs_enabled: true' /etc/datadog-agent/datadog.yaml
fi
echo "Restart the agent"
sudo service datadog-agent restart
EOF
chmod a+x /tmp/start_datadog.sh
/tmp/start_datadog.sh >> /tmp/datadog_start.log 2>&1 & disown
Install the Datadog Agent on the driver and worker nodes of the cluster.
#!/bin/bash
cat <<EOF > /tmp/start_datadog.sh
#!/bin/bash
date -u +"%Y-%m-%d %H:%M:%S UTC"
echo "Running on the driver? \$DB_IS_DRIVER"
echo "Driver ip: \$DB_DRIVER_IP"
DB_CLUSTER_NAME=$(echo "$DB_CLUSTER_NAME" | sed -e 's/ /_/g' -e "s/'/_/g")
DD_API_KEY='<YOUR_API_KEY>'
if [[ \${DB_IS_DRIVER} = "TRUE" ]]; then
echo "Installing Datadog Agent on the driver (master node)."
# CONFIGURE HOST TAGS FOR DRIVER
DD_TAGS="environment:\${DD_ENV}","databricks_cluster_id:\${DB_CLUSTER_ID}","databricks_cluster_name:\${DB_CLUSTER_NAME}","spark_host_ip:\${DB_DRIVER_IP}","spark_node:driver","databricks_instance_type:\${DB_INSTANCE_TYPE}","databricks_is_job_cluster:\${DB_IS_JOB_CLUSTER}"
# INSTALL THE LATEST DATADOG AGENT 7 ON DRIVER AND WORKER NODES
DD_INSTALL_ONLY=true \
DD_API_KEY=\$DD_API_KEY \
DD_HOST_TAGS=\$DD_TAGS \
DD_HOSTNAME="\$(hostname | xargs)" \
DD_SITE="\${DD_SITE:-datadoghq.com}" \
bash -c "\$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh)"
echo "Datadog Agent is installed"
while [ -z \$DB_DRIVER_PORT ]; do
if [ -e "/tmp/driver-env.sh" ]; then
DB_DRIVER_PORT="\$(grep -i "CONF_UI_PORT" /tmp/driver-env.sh | cut -d'=' -f2)"
fi
echo "Waiting 2 seconds for DB_DRIVER_PORT"
sleep 2
done
echo "DB_DRIVER_PORT=\$DB_DRIVER_PORT"
# WRITING CONFIG FILE FOR SPARK INTEGRATION WITH STRUCTURED STREAMING METRICS ENABLED
# MODIFY TO INCLUDE OTHER OPTIONS IN spark.d/conf.yaml.example
echo "init_config:
instances:
- spark_url: http://\${DB_DRIVER_IP}:\${DB_DRIVER_PORT}
spark_cluster_mode: spark_driver_mode
cluster_name: \${DB_CLUSTER_NAME}
streaming_metrics: true
executor_level_metrics: true
logs:
- type: file
path: /databricks/driver/logs/*.log
source: spark
service: databricks
log_processing_rules:
- type: multi_line
name: new_log_start_with_date
pattern: \d{2,4}[\-\/]\d{2,4}[\-\/]\d{2,4}.*" > /etc/datadog-agent/conf.d/spark.d/spark.yaml
echo "Spark integration configured"
# ENABLE LOGS IN datadog.yaml TO COLLECT DRIVER LOGS
sed -i '/.*logs_enabled:.*/a logs_enabled: true' /etc/datadog-agent/datadog.yaml
else
echo "Installing Datadog Agent on the worker."
# CONFIGURE HOST TAGS FOR WORKERS
DD_TAGS="environment:\${DD_ENV}","databricks_cluster_id:\${DB_CLUSTER_ID}","databricks_cluster_name:\${DB_CLUSTER_NAME}","spark_host_ip:\${SPARK_LOCAL_IP}","spark_node:worker","databricks_instance_type:\${DB_INSTANCE_TYPE}","databricks_is_job_cluster:\${DB_IS_JOB_CLUSTER}"
# INSTALL THE LATEST DATADOG AGENT 7 ON DRIVER AND WORKER NODES
# CONFIGURE HOSTNAME EXPLICITLY IN datadog.yaml TO PREVENT AGENT FROM FAILING ON VERSION 7.40+
# SEE https://github.com/DataDog/datadog-agent/issues/14152 FOR CHANGE
DD_INSTALL_ONLY=true DD_API_KEY=\$DD_API_KEY DD_HOST_TAGS=\$DD_TAGS DD_HOSTNAME="\$(hostname | xargs)" bash -c "\$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh)"
echo "Datadog Agent is installed"
fi
# Avoid conflicts on port 6062
echo "process_config.expvar_port: 6063" >> /etc/datadog-agent/datadog.yaml
echo "Restart the agent"
sudo service datadog-agent restart
EOF
chmod a+x /tmp/start_datadog.sh
/tmp/start_datadog.sh >> /tmp/datadog_start.log 2>&1 & disown
클러스터 수준 init 스크립트는 클러스터 설정에 정의된 init 스크립트입니다. 클러스터 수준 init 스크립트는 생성한 클러스터와 작업을 실행하기 위해 생성된 클러스터 모두에 적용됩니다. Databricks는 다음을 통해 init 스크립트 설정 및 저장을 지원합니다.
Databricks UI를 사용해 클러스트를 편집하여 init 스크립트를 실행하는 방법:
DD_API_KEY
를 지정하세요. 원하는 경우 환경 변수 DD_ENV
와 DD_SITE
를 지정할 수도 있습니다.Workspace
대상 유형을 선택합니다. Unity Catalog Volume을 사용하는 경우 Destination 드롭다운에서 Volume
대상 유형을 선택합니다.Shared
작업 영역에 바로 datadog_init_script.sh
를 저장한 경우 /Shared/datadog_init_script.sh
경로를 이용해 파일에 액세스할 수 있습니다.
datadog_init_script.sh
를 사용자 작업 영역에 바로 저장한 경우에는 /Users/$EMAIL_ADDRESS/datadog_init_script.sh
경로로 파일에 액세스할 수 있습니다.
datadog_init_script.sh
을 Unity Catalog Volume
에 직접 저장한 경우, /Volumes/$VOLUME_PATH/datadog_init_script.sh
경로로 파일에 접근할 수 있습니다.
클러스터 초기화 스크립트에 관한 자세한 정보는 Databricks 공식 설명서를 참고하세요.
클러스터 노드의 드라이버에 Datadog 에이전트를 설치하세요.
#!/bin/bash
cat <<EOF > /tmp/start_datadog.sh
#!/bin/bash
date -u +"%Y-%m-%d %H:%M:%S UTC"
echo "Running on the driver? \$DB_IS_DRIVER"
echo "Driver ip: \$DB_DRIVER_IP"
DB_CLUSTER_NAME=$(echo "$DB_CLUSTER_NAME" | sed -e 's/ /_/g' -e "s/'/_/g")
if [[ \${DB_IS_DRIVER} = "TRUE" ]]; then
echo "Installing Datadog Agent on the driver..."
# 드라이버용 호스트 태그 구성
DD_TAGS="environment:\${DD_ENV}","databricks_cluster_id:\${DB_CLUSTER_ID}","databricks_cluster_name:\${DB_CLUSTER_NAME}","spark_host_ip:\${DB_DRIVER_IP}","spark_node:driver","databricks_instance_type:\${DB_INSTANCE_TYPE}","databricks_is_job_cluster:\${DB_IS_JOB_CLUSTER}"
# 드라이버와 작업 노드에 최신 Datadog 에이전트 7 설치
DD_INSTALL_ONLY=true \
DD_API_KEY=\$DD_API_KEY \
DD_HOST_TAGS=\$DD_TAGS \
DD_HOSTNAME="\$(hostname | xargs)" \
DD_SITE="\${DD_SITE:-datadoghq.com}" \
bash -c "\$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh)"
# 포트 6062의 충돌 예방
echo "process_config.expvar_port: 6063" >> /etc/datadog-agent/datadog.yaml
echo "Datadog Agent is installed"
while [ -z \$DB_DRIVER_PORT ]; do
if [ -e "/tmp/driver-env.sh" ]; then
DB_DRIVER_PORT="\$(grep -i "CONF_UI_PORT" /tmp/driver-env.sh | cut -d'=' -f2)"
fi
echo "Waiting 2 seconds for DB_DRIVER_PORT"
sleep 2
done
echo "DB_DRIVER_PORT=\$DB_DRIVER_PORT"
# 구조화된 스트리밍 메트릭이 활성환 상태에서 Spark 통합 구성 파일 쓰기
# spark.d/conf.yaml.example에 다른 옵션을 포함하도록 수정
echo "init_config:
instances:
- spark_url: http://\${DB_DRIVER_IP}:\${DB_DRIVER_PORT}
spark_cluster_mode: spark_driver_mode
cluster_name: \${DB_CLUSTER_NAME}
streaming_metrics: true
executor_level_metrics: true
logs:
- type: file
path: /databricks/driver/logs/*.log
source: spark
service: databricks
log_processing_rules:
- type: multi_line
name: new_log_start_with_date
pattern: \d{2,4}[\-\/]\d{2,4}[\-\/]\d{2,4}.*" > /etc/datadog-agent/conf.d/spark.d/spark.yaml
echo "Spark integration configured"
# 드라이버 로그를 수집하도록 datadog.yaml에서 로그 활성화
sed -i '/.*logs_enabled:.*/a logs_enabled: true' /etc/datadog-agent/datadog.yaml
fi
echo "Restart the agent"
sudo service datadog-agent restart
EOF
chmod a+x /tmp/start_datadog.sh
/tmp/start_datadog.sh >> /tmp/datadog_start.log 2>&1 & disown
Install the Datadog Agent on the driver and worker nodes of the cluster.
#!/bin/bash
cat <<EOF > /tmp/start_datadog.sh
#!/bin/bash
date -u +"%Y-%m-%d %H:%M:%S UTC"
echo "Running on the driver? \$DB_IS_DRIVER"
echo "Driver ip: \$DB_DRIVER_IP"
DB_CLUSTER_NAME=$(echo "$DB_CLUSTER_NAME" | sed -e 's/ /_/g' -e "s/'/_/g")
if [[ \${DB_IS_DRIVER} = "TRUE" ]]; then
echo "Installing Datadog Agent on the driver (master node)."
# CONFIGURE HOST TAGS FOR DRIVER
DD_TAGS="environment:\${DD_ENV}","databricks_cluster_id:\${DB_CLUSTER_ID}","databricks_cluster_name:\${DB_CLUSTER_NAME}","spark_host_ip:\${DB_DRIVER_IP}","spark_node:driver","databricks_instance_type:\${DB_INSTANCE_TYPE}","databricks_is_job_cluster:\${DB_IS_JOB_CLUSTER}"
# INSTALL THE LATEST DATADOG AGENT 7 ON DRIVER AND WORKER NODES
DD_INSTALL_ONLY=true \
DD_API_KEY=\$DD_API_KEY \
DD_HOST_TAGS=\$DD_TAGS \
DD_HOSTNAME="\$(hostname | xargs)" \
DD_SITE="\${DD_SITE:-datadoghq.com}" \
bash -c "\$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh)"
echo "Datadog Agent is installed"
while [ -z \$DB_DRIVER_PORT ]; do
if [ -e "/tmp/driver-env.sh" ]; then
DB_DRIVER_PORT="\$(grep -i "CONF_UI_PORT" /tmp/driver-env.sh | cut -d'=' -f2)"
fi
echo "Waiting 2 seconds for DB_DRIVER_PORT"
sleep 2
done
echo "DB_DRIVER_PORT=\$DB_DRIVER_PORT"
# WRITING CONFIG FILE FOR SPARK INTEGRATION WITH STRUCTURED STREAMING METRICS ENABLED
# MODIFY TO INCLUDE OTHER OPTIONS IN spark.d/conf.yaml.example
echo "init_config:
instances:
- spark_url: http://\${DB_DRIVER_IP}:\${DB_DRIVER_PORT}
spark_cluster_mode: spark_driver_mode
cluster_name: \${DB_CLUSTER_NAME}
streaming_metrics: true
executor_level_metrics: true
logs:
- type: file
path: /databricks/driver/logs/*.log
source: spark
service: databricks
log_processing_rules:
- type: multi_line
name: new_log_start_with_date
pattern: \d{2,4}[\-\/]\d{2,4}[\-\/]\d{2,4}.*" > /etc/datadog-agent/conf.d/spark.d/spark.yaml
echo "Spark integration configured"
# ENABLE LOGS IN datadog.yaml TO COLLECT DRIVER LOGS
sed -i '/.*logs_enabled:.*/a logs_enabled: true' /etc/datadog-agent/datadog.yaml
else
echo "Installing Datadog Agent on the worker."
# CONFIGURE HOST TAGS FOR WORKERS
DD_TAGS="environment:\${DD_ENV}","databricks_cluster_id:\${DB_CLUSTER_ID}","databricks_cluster_name:\${DB_CLUSTER_NAME}","spark_host_ip:\${SPARK_LOCAL_IP}","spark_node:worker","databricks_instance_type:\${DB_INSTANCE_TYPE}","databricks_is_job_cluster:\${DB_IS_JOB_CLUSTER}"
# INSTALL THE LATEST DATADOG AGENT 7 ON DRIVER AND WORKER NODES
# CONFIGURE HOSTNAME EXPLICITLY IN datadog.yaml TO PREVENT AGENT FROM FAILING ON VERSION 7.40+
# SEE https://github.com/DataDog/datadog-agent/issues/14152 FOR CHANGE
DD_INSTALL_ONLY=true DD_API_KEY=\$DD_API_KEY DD_HOST_TAGS=\$DD_TAGS DD_HOSTNAME="\$(hostname | xargs)" bash -c "\$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh)"
echo "Datadog Agent is installed"
fi
# Avoid conflicts on port 6062
echo "process_config.expvar_port: 6063" >> /etc/datadog-agent/datadog.yaml
echo "Restart the agent"
sudo service datadog-agent restart
EOF
chmod a+x /tmp/start_datadog.sh
/tmp/start_datadog.sh >> /tmp/datadog_start.log 2>&1 & disown
databricks.model_serving.cpu_usage_percentage (gauge) | Average CPU utilization used across all replicas during the last minute Shown as percent |
databricks.model_serving.gpu_mem_usage_percentage.avg (gauge) | Average GPU memory usage used across all GPUs during the minute Shown as percent |
databricks.model_serving.gpu_mem_usage_percentage.max (gauge) | Maximum GPU memory usage used across all GPUs during the minute Shown as percent |
databricks.model_serving.gpu_mem_usage_percentage.min (gauge) | Minimum GPU memory usage used across all GPUs during the minute Shown as percent |
databricks.model_serving.gpu_usage_percentage.avg (gauge) | Average GPU utilization used across all GPUs during the minute Shown as percent |
databricks.model_serving.gpu_usage_percentage.max (gauge) | Maximum GPU utilization used across all GPUs during the minute Shown as percent |
databricks.model_serving.gpu_usage_percentage.min (gauge) | Minimum GPU utilization used across all GPUs during the minute Shown as percent |
databricks.model_serving.mem_usage_percentage (gauge) | Average memory utilization used across all replicas during the last minute Shown as percent |
databricks.model_serving.provisioned_concurrent_requests_total (gauge) | Number of provisioned concurrency during the last minute Shown as request |
databricks.model_serving.request_4xx_count_total (gauge) | Number of 4xx errors during the last minute Shown as request |
databricks.model_serving.request_5xx_count_total (gauge) | Number of 5xx errors during the last minute Shown as request |
databricks.model_serving.request_count_total (gauge) | Number of requests during the last minute Shown as request |
databricks.model_serving.request_latency_ms.75percentile (gauge) | 75th percentile request latency in milliseconds during the minute Shown as millisecond |
databricks.model_serving.request_latency_ms.90percentile (gauge) | 90th percentile request latency in milliseconds during the minute Shown as millisecond |
databricks.model_serving.request_latency_ms.95percentile (gauge) | 95th percentile request latency in milliseconds during the minute Shown as millisecond |
databricks.model_serving.request_latency_ms.99percentile (gauge) | 99th percentile request latency in milliseconds during the minute Shown as millisecond |
수집한 Spark 메트릭 목록을 보려면 Spark 통합 설명서를 참고하세요.
수집한 서비스 점검 목록을 보려면 Spark 통합 설명서를 참고하세요.
Databricks 통합에는 이벤트가 포함되어 있지 않습니다.
Databricks 웹 터미널을 활성화하거나 Databricks Notebook을 사용해 스스로 문제를 트러블슈팅할 수 있습니다. 유용한 트러블슈팅 단계를 보려면 에이전트 트러블슈팅 설명서를 참고하세요.
도움이 필요하신가요? Datadog 지원팀에 문의해 주세요.
기타 유용한 문서, 링크 및 기사: