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