속성과 별칭(Aliasing)
개요
여러 기술과 애플리케이션의 로그를 중앙화하면 Log Management 환경에서 수십 또는 수백 개의 서로 다른 속성이 생성될 수 있어요. 특히 많은 팀이 같은 환경에서 작업할 때 더 그래요.
예를 들어 클라이언트 IP는 clientIP, client_ip_address, remote_address, client.ip 등 다양한 로그 속성을 가질 수 있어요. 요청의 실행 시간은 exec_time, request_latency, request.time_elapsed 등으로 불릴 수 있어요.
**속성(attributes)**과 **별칭(aliasing)**을 사용해 Logs 환경을 통일하세요.
출처: 문서
본문
속성 유형과 별칭
속성은 Log Explorer에서 필터링·검색에 사용되는 로그 패싯과 태그를 규정해요.
-
**예약 속성(Reserved attributes)**은 자동으로 수집돼요.
-
**표준 속성(Standard attributes)**은 조직의 명명 규칙의 중추예요. 앱에서 사용할 수 있는 기본 표준 속성 세트가 있어요. 다만 이 목록은 팀의 명명 규칙을 만들기 위해 사용자 정의할 수 있어요.
-
표준 속성으로 명명 규칙을 구현한 후 또는 여러 로그 소스에서 고유한 표준 패싯을 만들려고 할 때 **별칭(Aliasing)**을 사용하세요. 예를 들어 하이브리드 Apache와 Amazon Cloud Front 인프라에서 지연 시간의 영향을 가장 많이 받는 클라이언트를 표준
Network Client IP패싯과 표준duration으로 함께 추적해 보세요. 별칭을 사용하면 팀의 기술 스택을 바꾸지 않고도 명명 규칙을 구현할 수 있어요.
예약 속성
다음은 로그와 함께 자동 수집되는 예약 속성 목록이에요.
참고: 트레이스나 메트릭도 수집한다면 통합 서비스 태깅을 구성하는 것이 좋아요. 이 구성은 env, service, version의 세 가지 표준 태그를 사용해 Datadog 텔레메트리를 연결해요. 자세한 내용은 전용 통합 서비스 태깅 문서를 참고하세요.
| 속성 | 설명 |
|---|---|
host |
메트릭에서 정의된 원래 호스트의 이름. Datadog는 Datadog의 일치하는 호스트에서 해당 호스트 태그를 자동으로 가져와 로그에 적용해요. Agent가 이 값을 자동으로 설정해요. |
source |
로그가 발생한 기술인 통합 이름에 해당해요. 통합 이름과 일치하면 Datadog가 해당 파서와 패싯을 자동으로 설치해요. 예: nginx, postgresql 등. |
status |
로그의 레벨/심각도에 해당해요. 패턴을 정의하는 데 사용되며 Datadog Log UI에서 전용 레이아웃을 가져요. |
service |
로그 이벤트를 생성하는 애플리케이션 또는 서비스의 이름. Logs에서 APM으로 전환하는 데 사용되므로 두 제품을 모두 사용할 때는 같은 값을 정의해야 해요. |
trace_id |
트레이스에 사용되는 Trace ID에 해당해요. 로그를 트레이스와 연결하는 데 사용돼요. |
message |
기본적으로 Datadog는 message 속성의 값을 로그 항목의 본문으로 수집해요. 이 값은 Live Tail에서 강조·표시되며 전체 텍스트 검색을 위해 인덱싱돼요. |
표준 속성
로그 통합은 기본적으로 기본 세트의 표준 속성에 의존해요.
표준 속성 표에는 미리 정의된 표준 속성 세트가 함께 제공돼요. 이 목록에 나만의 속성을 추가하고 기존 표준 속성을 편집하거나 삭제할 수 있어요.
새 표준 속성 만들기
관리자 사용자는 표준 속성 목록을 큐레이션할 수 있어요:
- 표준 속성 구성 페이지로 이동하세요.
- New Standard Attribute를 클릭하세요.
- 표준 속성을 정의하세요:
- Path: JSON에서 찾을 수 있는 표준 속성의 경로(예: network.client.ip).
- Type: (
string,integer,double,boolean): 속성의 유형. 리매핑 목록의 요소를 캐스팅하는 데 사용돼요. - Description: 속성에 대한 사람이 읽을 수 있는 설명.
- (선택 사항) Remapping list: 표준 속성으로 리매핑해야 하는 비준수 속성의 쉼표로 구분된 목록.
기본 표준 속성 목록
Log Management 기본 표준 속성 목록 전체를 참고하세요. 기능 도메인별로 나뉘어 있어요:
| 표준 속성 | 설명 |
|---|---|
| 네트워크/통신 | 네트워크 통신에 사용되는 데이터와 관련된 속성. 모든 필드와 메트릭은 network로 접두사가 붙어요. |
| 위치 정보 | 네트워크 통신에 사용되는 IP 주소의 위치 정보와 관련된 속성. 모든 필드는 network.client.geoip 또는 network.destination.geoip로 접두사가 붙어요. |
| HTTP 요청 | HTTP 요청·액세스에서 일반적으로 사용되는 데이터와 관련된 속성. 모든 속성은 http로 접두사가 붙어요. 이 속성에 의존하는 일반적인 통합으로는 Apache, Rails, AWS CloudFront, 웹 애플리케이션 서버 등이 있어요. URL 상세 속성은 http.url_details로 접두사가 붙어요. 이 속성들은 HTTP URL의 파싱된 부분에 대한 상세 정보를 제공하며 URL 파서에 의해 생성돼요. |
| 소스 코드 | 사용자 정의 애플리케이션의 로거로 로그나 오류가 생성될 때 사용되는 데이터와 관련된 속성. 모든 속성은 logger 또는 error로 접두사가 붙어요. 이 속성에 의존하는 일반적인 통합으로는 Java, Node.js, .NET, Golang, Python 등이 있어요. |
| 데이터베이스 | 이 속성에 의존하는 일반적인 통합으로는 Cassandra, MySQL, RDS, Elasticsearch 등이 있어요. |
| 성능 | 성능 메트릭과 관련된 속성. Datadog는 로그 안의 모든 지속 시간을 이 속성으로 리매핑할 것을 권장해요. 이 값은 트레이스 검색의 기본 측정값으로 표시·사용되기 때문이에요. |
| 사용자 관련 속성 | 모든 속성과 측정값은 usr로 접두사가 붙어요. |
| Syslog 및 로그 시퍼 | syslog 또는 로그-시퍼 에이전트가 추가하는 데이터와 관련된 속성. 모든 필드와 메트릭은 syslog로 접두사가 붙어요. 이에 의존하는 통합으로는 Rsyslog, NxLog, Syslog-ng, Fluentd, Logstash가 있어요. |
| DNS | 모든 속성과 측정값은 dns로 접두사가 붙어요. |
| 이벤트 | 모든 속성은 evt로 접두사가 붙어요. |
별칭(Aliasing)
대상 속성에 매핑되는 소스 속성의 별칭을 만들면 로그가 소스 속성과 대상 속성을 모두 갖게 돼요.
사용자는 별칭(소스) 또는 표준(대상) 패싯 속성 중 하나와 상호작용할 수 있어요. 다만 별칭 패싯보다 표준 패싯을 사용할 것을 권장해요. 이렇게 하면 명명 규칙에 대한 안내가 제공되고 사용자가 비표준 콘텐츠를 기반으로 저장된 뷰나 대시보드 같은 자산을 만드는 것을 지양하게 돼요.
별칭에 관한 추가 세부 사항:
- 별칭은 로그가 파이프라인에 의해 처리된 후에 발생해요. 추출되거나 처리된 어떤 속성도 별칭의 소스로 사용할 수 있어요.
- Datadog는 별칭 속성의 유형을 강제해요. 이것이 불가능하면 별칭은 건너뛰어져요.
- 이미 대상 속성을 가진 로그의 경우 별칭이 그 로그의 값을 덮어써요.
- 여러 속성이 별칭되는 표준 속성의 경우 로그가 여러 소스 속성을 가지면 그 중 하나만 별칭돼요.
- 표준 속성에 대한 업데이트나 추가는 새로 수집된 로그에만 적용돼요.
- 표준 속성은 별칭될 수 없어요.
- 속성은 표준 속성에만 별칭될 수 있어요.
- 로그의 JSON 구조를 존중하기 위해 한 표준 속성이 다른 표준 속성의 자식이 될 수 없어요(예:
user와user.name이 둘 다 표준 속성일 수 없음).
추가 정보는 Alias Facets를 참고하세요.