본문 바로가기
WIKI 기술 지식 베이스

Database Monitoring 대상 데이터베이스 식별하기

원문 보기 위키 갱신

각 데이터베이스 인스턴스가 어떻게 식별되고, 여러 인스턴스가 한 머신에 있을 때 이를 어떻게 구분하는지 알아볼게요.

출처: 문서

본문

데이터베이스 식별자 (Database identifier)

Datadog가 모니터링하는 각 데이터베이스 인스턴스는 고유한 식별자를 가져요. Postgres, MySQL, SQL Server, Oracle의 경우 통합 설정에서 database_identifier.template 경로를 사용해 인스턴스 식별자를 정의해요.

database_identifier.template의 기본값은 $resolved_hostname이며, 데이터베이스 호스트의 리졸브된 호스트명을 식별자로 사용해요. 참고: 리졸브된 호스트명은 보통 지정한 연결 host와 동일해요. 다른 경우, 예를 들어 host가 localhost로 설정된 경우에는 $resolved_hostname이 실제 호스트명으로 리졸브돼요.

대부분의 사용자는 기본값을 변경할 필요가 없어요. template의 값을 바꾸는 것은 주로 한 머신에 여러 데이터베이스 인스턴스가 호스팅돼 있을 때 유용해요.

각각의 고유한 인스턴스 식별자는 Database Monitoring에서 호스트 하나로 청구돼요.

보고된 호스트명 (Reported hostname)

reported_hostname 설정을 사용하면 단일 데이터베이스 인스턴스에 대해 host의 자동 해석을 재정의할 수 있어요. 이는 프록시를 통해 데이터베이스에 연결할 때 Database Monitoring 데이터베이스 인스턴스와 해당 데이터베이스 호스트에 사용 가능한 메트릭 간의 연결을 유지하는 데 유용해요.

예시 (Examples)

한 호스트에 각각 다른 포트로 여러 Postgres 인스턴스가 있는 경우:

database_identifier:
  template: $resolved_hostname:$port

여러 인스턴스가 있는 SQL Server 호스트:

database_identifier:
  template: $resolved_hostname/$instance_name

각 데이터베이스를 개별적으로 모니터링하는 Azure 풀 (7.68+ 필요):

database_identifier:
  template: $azure_name/$database

mydatabase.com.local이라는 MySQL 호스트가 여러 환경에서 실행되고 있고 각각 env로 태그되어 있다면, 아래 설정을 사용해 prod-mydatabase.com.local과 staging-mydatabase.com.local이라는 이름의 데이터베이스 인스턴스를 만들 수 있어요:

database_identifier:
  template: $env-$resolved_hostname

프록시를 통해 여러 CDB가 있는 Oracle 데이터베이스에 연결하는 경우:

reported_hostname: my-oracle.mydomain.com
database_identifier:
  template: $resolved_hostname\$cdb_name

더 알아보기 (Learn more)