- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Python 로그를 Datadog에 전송하려면 호스트의 파일을 로깅하도록 Python 로거를 설정한 후 Datadog 에이전트로 해당 파일을 테일링합니다.
Python 로그는 트레이스백으로 인해 처리하기 복잡할 수 있습니다. 트레이스백으로 인해 로그가 여러 줄로 분할되어 원본 로그 이벤트와 연결하기 어렵습니다. Datadog은 이러한 문제를 해결하기 위해 로깅 시 JSON 포맷터를 사용할 것을 강력히 권장합니다. 해당 포맷터를 사용할 경우 다음 작업이 가능합니다.
다음 로깅 라이브러리용 설정 예시를 참조하세요.
*Python 로거에는 커스텀 속성 추가용 extra
파라미터가 있습니다. DJANGO_DATADOG_LOGGER_EXTRA_INCLUDE
로 extra
파라미터를 추가할 로거의 이름과 일치하는 정규식을 지정합니다.
로그 수집이 활성화되면 사용자 지정 로그 수집을 설정해 로그 파일을 테일링하고 다음 단계에 따라 Datadog으로 전송하세요.
conf.d/
에이전트 설정 디렉터리에 python.d/
폴더를 생성합니다.conf.d/python.d/
디렉터리에 conf.yaml
파일을 생성합니다.init_config:
instances:
##Log section
logs:
- type: file
path: "<PATH_TO_PYTHON_LOG>.log"
service: "<SERVICE_NAME>"
source: python
sourcecategory: sourcecode
# For multiline logs, if they start by the date with the format yyyy-mm-dd uncomment the following processing rule
#log_processing_rules:
# - type: multi_line
# name: new_log_start_with_date
# pattern: \d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])
Checks
섹션에서 python
를 찾아 로그가 Datadog에 전송되었는지 확인합니다.로그가 JSON 형식이면 Datadog은 자동으로 로그 메시지를 파싱하여 로그 속성을 추출합니다. 로그 탐색기로 로그를 확인하고 문제를 해결하세요.
본 애플리케이션에서 APM이 이 활성화된 경우, APM Python 지침에 따라 트레이스 ID, 스팬 ID, env
, service
, version
을 자동으로 로그에 추가해 로그와 트레이스를 연결하세요.
참고: APM 트레이서가 로그에 service
를 삽입하면 에이전트 설정에서 값 집합이 재구성됩니다.
본 작업이 완료되면 로그는 다음과 같은 형식이어야 합니다.
2019-01-07 15:20:15,972 DEBUG [flask.app] [app.py:100] [dd.trace_id=5688176451479556031 dd.span_id=4663104081780224235] - this is an example
로그가 JSON 형식일 경우 트레이스 값이 최상위 수준, 최상위 extra
수준, 또는 record.extra
블록에 위치할 때 자동 추출됩니다. 다음은 트레이스 값이 자동으로 파싱되는 유효한 JSON 로그의 예시입니다.
{
"message":"프라이빗 메서드입니다",
"dd.trace_id":"18287620314539322434",
"dd.span_id":"8440638443344356350",
"dd.env":"dev",
"dd.service":"logs",
"dd.version":"1.0.0"
}
{
"message":"프라이빗 메서드입니다",
"extra":{
"dd.trace_id":"18287620314539322434",
"dd.span_id":"8440638443344356350",
"dd.env":"dev",
"dd.service":"logs",
"dd.version":"1.0.0"
}
}
{
"message":"프라이빗 메서드입니다",
"record":{
"extra":{
"dd.trace_id":"1734396609740561719",
"dd.span_id":"17877262712156101004",
"dd.env":"dev",
"dd.service":"logs",
"dd.version":"1.0.0"
}
}
}