Azure Database for PostgreSQL - 유연한 서버의 메트릭 모니터

적용 대상: Azure Database for PostgreSQL - 유연한 서버

서버에 대한 데이터를 모니터링하면 워크로드에 대한 문제를 해결하고 최적화할 수 있습니다. Azure Database for PostgreSQL 유연한 서버는 서버 성능에 대한 인사이트를 제공하는 다양한 모니터링 옵션을 제공합니다.

메트릭

Azure Database for PostgreSQL 유연한 서버는 Azure Database for PostgreSQL 유연한 서버 인스턴스를 지원하는 리소스의 동작에 대한 인사이트를 제공하는 다양한 메트릭을 제공합니다. 각 메트릭은 1분 간격으로 내보내며 최대 93일 동안 기록됩니다. 메트릭에 대한 경고를 구성할 수 있습니다. 다른 옵션에는 자동화된 작업 설정, 고급 분석 수행 및 기록 보관이 포함됩니다. 자세한 내용은 Azure 메트릭 개요를 참조하세요.

참고 항목

메트릭은 93일 동안 저장되지만 단일 차트에서 최대 30일 분량의 데이터만 쿼리할 수 있습니다(메트릭 타일에서). 빈 차트가 표시되거나 차트에 메트릭 데이터의 일부만 표시되는 경우 시간 선택기의 시작 날짜와 종료 날짜 사이의 간격이 30일을 초과하지 않는지 확인합니다. 30일 간격을 선택한 후 차트를 이동하여 전체 보존 기간을 볼 수 있습니다.

기본 메트릭

Azure Database for PostgreSQL 유연한 서버 인스턴스에 다음 메트릭을 사용할 수 있습니다.

표시 이름 메트릭 ID 단위 설명 기본값 사용
활성 연결 active_connections Count pg_stat_activity 뷰에 표시된 것처럼 활성, 유휴 상태 및 기타와 같은 모든 연결 상태를 포함하여 데이터베이스 서버에 대한 총 연결 수입니다. 이 그림은 특정 상태를 구분하지 않고 모든 상태에서 연결의 전체 합계를 나타냅니다. 활성 연결과 같은 특정 상태에 대한 심층 분석은 '상태별 세션’ 메트릭을 참조하세요.
사용된 백업 스토리지 backup_storage_used 바이트 사용된 백업 스토리지 양. 이 메트릭은 서버에 설정된 백업 보존 기간을 기준으로 보존되는 모든 전체 백업, 차등 백업 및 로그 백업에서 사용되는 스토리지의 합계를 나타냅니다. 백업 빈도는 서비스에서 관리됩니다. 지역 중복 스토리지의 경우 백업 스토리지 사용량은 로컬 중복 스토리지 사용량의 두 배입니다.
실패한 연결 connections_failed Count 실패한 연결 수입니다.
성공한 연결 connections_succeeded Count 성공한 연결 수입니다.
사용된 CPU 크레딧 cpu_credits_consumed Count 유연한 서버에서 사용하는 크레딧 수입니다. 버스트 가능 계층에 적용됩니다.
남은 CPU 크레딧 cpu_credits_remaining Count 버스트에 사용할 수 있는 크레딧 수입니다. 버스트 가능 계층에 적용됩니다.
CPU 비율 cpu_percent 퍼센트 사용 중인 CPU의 비율입니다.
데이터베이스 크기(미리 보기) database_size_bytes 바이트 데이터베이스 크기(바이트)입니다.
디스크 큐 깊이 disk_queue_depth Count 데이터 디스크에 대한 미해결 I/O 작업 수입니다.
IOPS iops Count 디스크에 대한 초당 I/O 작업 수입니다.
사용된 최대 트랜잭션 ID 수 maximum_used_transactionIDs Count 사용 중인 최대 트랜잭션 ID 수입니다.
메모리 백분율 memory_percent 퍼센트 사용 중인 메모리의 비율입니다.
네트워크 출력 network_bytes_egress 바이트 보내는 네트워크 트래픽 양입니다.
네트워크 입력 network_bytes_ingress 바이트 들어오는 네트워크 트래픽 양입니다.
읽기 IOPS read_iops Count 초당 데이터 디스크 I/O 읽기 작업 수입니다.
읽기 처리량 read_throughput 바이트 디스크에서 초당 읽은 바이트 수입니다.
사용 가능한 스토리지 storage_free 바이트 사용 가능한 저장소 공간의 양입니다.
스토리지 비율 storage_percent 백분율 사용된 저장소 공간의 비율입니다. 서비스에서 사용하는 스토리지에는 데이터베이스 파일, 트랜잭션 로그 및 서버 로그가 포함될 수 있습니다.
사용된 스토리지 storage_used 바이트 사용된 저장소 공간의 양입니다. 서비스에서 사용하는 스토리지에는 데이터베이스 파일, 트랜잭션 로그 및 서버 로그가 포함될 수 있습니다.
사용된 트랜잭션 로그 스토리지 txlogs_storage_used 바이트 트랜잭션 로그에서 사용하는 저장소 공간의 양입니다.
쓰기 처리량 write_throughput 바이트 초당 디스크에 쓴 바이트 수입니다.
쓰기 IOPS write_iops Count 초당 데이터 디스크 I/O 쓰기 작업 수입니다.

향상된 메트릭

Azure Database for PostgreSQL 유연한 서버에 대한 향상된 메트릭을 사용하여 데이터베이스에 대한 세부적인 모니터링 및 경고를 가져올 수 있습니다. 메트릭에 대한 경고를 구성할 수 있습니다. 일부 향상된 메트릭에는 데이터베이스 이름이나 상태와 같은 차원을 사용하여 메트릭 데이터를 분할하고 필터링하는 데 사용할 수 있는 Dimension 매개 변수가 포함되어 있습니다.

개선된 메트릭 사용

  • 이러한 새로운 메트릭의 대부분은 기본적으로 사용 중지되어 있습니다. 하지만 기본적으로 사용하도록 설정되는 몇 가지 예외가 있습니다. 다음 표의 맨 오른쪽 열은 각 메트릭이 기본적으로 사용하도록 설정되는지 여부를 나타냅니다.
  • 기본적으로 사용하도록 설정되지 않은 메트릭을 사용하도록 설정하려면 서버 매개 변수 metrics.collector_database_activityON으로 설정합니다. 이 매개 변수는 동적이며 인스턴스를 다시 시작할 필요가 없습니다.
개선된 메트릭 목록

다음과 같은 향상된 메트릭 범주 중에서 선택할 수 있습니다.

  • 활동
  • 데이터베이스
  • 논리적 복제
  • 복제
  • 채도
  • 트래픽
활동
표시 이름 메트릭 ID 단위 설명 차원 기본값 사용
상태별 세션 sessions_by_state Count pg_stat_activity 뷰에 표시된 상태별 세션입니다. 클라이언트 백 엔드를 활성 또는 유휴 상태와 같은 다양한 상태로 분류합니다. State(상태) 아니요
WaitEventType별 세션 sessions_by_wait_event_type Count 백 엔드가 대기 중인 이벤트 형식별 세션입니다. 대기 이벤트 유형 아니요
가장 오래된 백 엔드 oldest_backend_time_sec 가장 오래된 백 엔드의 기간(초)(상태와 관계없음)입니다. 적용되지 않음 아니요
가장 오래된 쿼리 longest_query_time_sec 현재 실행 중인 가장 긴 쿼리의 수명(초)입니다. 적용되지 않음 아니요
가장 오래된 트랜잭션 longest_transaction_time_sec 가장 긴 트랜잭션(유휴 트랜잭션 포함)의 경과 시간(초) 적용되지 않음 아니요
가장 오래된 xmin oldest_backend_xmin Count 가장 오래된 xmin의 실제 값입니다. xmin이 증가하지 않으면 데드 튜플이 제거되는 것을 잠재적으로 보류할 수 있는 일부 장기 실행 트랜잭션이 있음을 나타냅니다. 적용되지 않음 아니요
가장 오래된 xmin 수명 oldest_backend_xmin_age Count 가장 오래된 xmin 단위의 수명입니다. 가장 오래된 xmin 이후 통과된 트랜잭션 수를 나타냅니다. 적용되지 않음 아니요
데이터베이스
표시 이름 메트릭 ID 단위 설명 차원 기본값 사용
백 엔드 numbackends Count 이 데이터베이스에 연결된 백 엔드 수입니다. DatabaseName 아니요
교착 상태 deadlocks Count 이 데이터베이스에서 검색된 교착 상태 수입니다. DatabaseName 아니요
디스크 블록 적중 blks_hit Count 읽기가 필요하지 않도록 디스크 블록이 이미 버퍼 캐시에서 발견된 횟수 DatabaseName 아니요
디스크 블록 읽기 blks_read Count 이 데이터베이스에서 읽은 디스크 블록 수입니다. DatabaseName 아니요
임시 파일 temp_files Count 이 데이터베이스의 쿼리로 만들어진 임시 파일 수입니다. DatabaseName 아니요
임시 파일 크기 temp_bytes 바이트 이 데이터베이스의 쿼리에 의해 임시 파일에 기록된 총 데이터 양입니다. DatabaseName 아니요
총 트랜잭션 수 xact_total Count 이 데이터베이스에서 실행된 총 트랜잭션 수입니다. DatabaseName 아니요
커밋된 트랜잭션 xact_commit Count 커밋된 이 데이터베이스의 트랜잭션 수입니다. DatabaseName 아니요
초당 트랜잭션 수(미리 보기) tps Count 1초 내에 실행된 트랜잭션 수입니다. DatabaseName 아니요
롤백된 트랜잭션 xact_rollback Count 롤백된 이 데이터베이스의 트랜잭션 수입니다. DatabaseName 아니요
튜플이 삭제됨 tup_deleted Count 이 데이터베이스에서 쿼리에 의해 삭제된 행 수입니다. DatabaseName 아니요
페치된 튜플 tup_fetched Count 이 데이터베이스의 쿼리로 페치된 행 수입니다. DatabaseName 아니요
튜플이 삽입됨 tup_inserted Count 이 데이터베이스에서 쿼리에 의해 삽입된 행 수입니다. DatabaseName 아니요
튜플이 반환됨 tup_returned Count 이 데이터베이스의 쿼리에 의해 반환된 행 수입니다. DatabaseName 아니요
튜플이 업데이트됨 tup_updated Count 이 데이터베이스의 쿼리로 업데이트된 행 수입니다. DatabaseName 아니요
논리적 복제
표시 이름 메트릭 ID 단위 설명 차원 기본값 사용
최대 논리적 복제 지연 logical_replication_delay_in_bytes 바이트 모든 논리적 복제 슬롯에서 최대 지연입니다. 적용되지 않음
복제
표시 이름 메트릭 ID 단위 설명 차원 기본값 사용
최대 물리적 복제 지연 physical_replication_delay_in_bytes 바이트 모든 비동기 실제 복제 슬롯에서 최대 지연입니다. 적용되지 않음
복제본 읽기 지연 physical_replication_delay_in_seconds 읽기 복제본 지연(초)입니다. 적용되지 않음
채도
표시 이름 메트릭 ID 단위 설명 차원 기본값 사용
소비한 디스크 대역폭 백분율 disk_bandwidth_consumed_percentage 퍼센트 분당 소비한 데이터 디스크 대역폭 백분율. 적용되지 않음
소비한 디스크 IOPS 백분율 disk_iops_consumed_percentage 퍼센트 분당 소비한 데이터 디스크 I/O 백분율. 적용되지 않음
트래픽
표시 이름 메트릭 ID 단위 설명 차원 기본값 사용
최대 연결 ^ max_connections Count 최대 연결 수. 적용되지 않음

^ 최대 연결 수max_connections 서버 매개 변수에 대해 구성된 값을 나타냅니다. 이 메트릭은 30분마다 폴링됩니다.

향상된 메트릭 사용 시 고려 사항
  • DatabaseName 차원을 사용하는 고급 메트릭에는 50개 데이터베이스 제한이 있습니다.
  • 버스트 가능 SKU에서 DatabaseName 차원을 사용하는 메트릭의 데이터베이스 한도는 10개입니다.
  • DatabaseName 차원 제한은 데이터베이스 만들기 순서를 반영하는 pg_stat_database 시스템 뷰의 데이터베이스 식별자(datid) 열에 적용됩니다.
  • 메트릭 차원의 DatabaseName대/소문자를 구분하지 않습니다. 즉, pg_stat_database 뷰를 쿼리한 후 datnametemplate1 또는 template0인 행을 필터링하고, datid기준으로 정렬하고, 반환된 행을 처음 50개(또는 버스트 가능한 SKU의 경우 10개)로 제한하면 해당 결과 집합에서 대/소문자를 제외하고 동일한 데이터베이스 이름(예: contoso_databaseContoso_database)의 메트릭이 병합되고 정확한 데이터가 표시되지 않을 수 있습니다.

자동 진공 메트릭

자동 진공 메트릭은 Azure Database for PostgreSQL - 유연한 서버에 대한 자동 진공 성능을 모니터링하고 조정하는 데 사용할 수 있습니다. 각 메트릭은 30분 간격으로 내보내며 최대 93일 동안 보관됩니다. 특정 메트릭에 대한 경고를 만들 수 있으며 DatabaseName 차원을 사용하여 메트릭 데이터를 분할하고 필터링할 수 있습니다.

자동 진공 메트릭을 사용하도록 설정하는 방법

  • 자동 진공 메트릭은 기본적으로 사용하지 않도록 설정됩니다.
  • 이러한 메트릭을 사용하도록 설정하려면 서버 매개 변수 metrics.autovacuum_diagnosticsON으로 설정합니다.
  • 이 매개 변수는 동적이므로 인스턴스를 다시 시작할 필요가 없습니다.

자동 진공 메트릭 목록

표시 이름 메트릭 ID 단위 설명 차원 기본값 사용
카운터 사용자 테이블 분석 analyze_count_user_tables Count 이 데이터베이스에서 사용자 전용 테이블이 수동으로 분석된 횟수입니다. DatabaseName 아니요
카운터 사용자 테이블 자동 분석 autoanalyze_count_user_tables Count 이 데이터베이스에서 자동 진공 디먼이 사용자 전용 테이블을 분석한 횟수입니다. DatabaseName 아니요
자동 진공 카운터 사용자 테이블 autovacuum_count_user_tables Count 이 데이터베이스에서 자동 진공 디먼이 사용자 전용 테이블을 삭제한 횟수입니다. DatabaseName 아니요
블로트 비율(미리 보기) bloat_percent 퍼센트 사용자 전용 테이블의 예상 블로트 비율입니다. DatabaseName 아니요
예상 데드 행 사용자 테이블 n_dead_tup_user_tables Count 이 데이터베이스의 사용자 전용 테이블에 대한 예상 데드 행 수입니다. DatabaseName 아니요
예상 라이브 행 사용자 테이블 n_live_tup_user_tables Count 이 데이터베이스의 사용자 전용 테이블에 대한 예상 라이브 행 수입니다. DatabaseName 아니요
예상 수정 사용자 테이블 n_mod_since_analyze_user_tables Count 사용자 전용 테이블이 마지막으로 분석된 이후 수정된 예상 행 수입니다. DatabaseName 아니요
분석된 사용자 테이블 tables_analyzed_user_tables Count 이 데이터베이스에서 분석된 사용자 전용 테이블 수입니다. DatabaseName 아니요
자동 분석된 사용자 테이블 tables_autoanalyzed_user_tables Count 이 데이터베이스에서 자동 진공 디먼이 분석한 사용자 전용 테이블 수입니다. DatabaseName 아니요
자동 진공된 사용자 테이블 tables_autovacuumed_user_tables Count 이 데이터베이스에서 자동 진공 디먼이 제거한 사용자 전용 테이블 수입니다. DatabaseName 아니요
사용자 테이블 카운터 tables_counter_user_tables Count 이 데이터베이스의 사용자 전용 테이블 수입니다. DatabaseName 아니요
진공된 사용자 테이블 tables_vacuumed_user_tables Count 이 데이터베이스에서 진공된 사용자 전용 테이블 수입니다. DatabaseName 아니요
진공 카운터 사용자 테이블 vacuum_count_user_tables Count 이 데이터베이스에서 사용자 전용 테이블을 수동으로 진공된 횟수입니다(VACUUM FULL은 포함되지 않음). DatabaseName 아니요

자동 진공 메트릭 사용 시 고려 사항

  • DatabaseName 차원을 사용하는 자동 진공 메트릭에는 30개 데이터베이스 제한이 있습니다.
  • 버스트 가능 SKU에서 DatabaseName 차원을 사용하는 메트릭의 데이터베이스 한도는 10개입니다.
  • DatabaseName 차원 제한은 데이터베이스 만들기 순서를 반영하는 OID 열에 적용됩니다.

PgBouncer 메트릭

PgBouncer 메트릭을 사용하면 활성 연결, 유휴 연결, 풀링된 총 연결 및 연결 풀 수에 대한 세부 정보를 포함하여 PgBouncer 프로세스의 성능을 모니터링할 수 있습니다. 각 메트릭은 1분 간격으로 내보내며 최대 93일 동안 기록됩니다. 고객은 메트릭에 대한 경고를 구성하고 새로운 메트릭 차원에 액세스하여 데이터베이스 이름별로 메트릭 데이터를 분할하고 필터링할 수도 있습니다.

PgBouncer 메트릭을 사용하도록 설정하는 방법

  • PgBouncer 메트릭은 기본적으로 사용하지 않도록 설정됩니다.
  • PgBouncer 메트릭이 작동하려면 서버 매개 변수 pgbouncer.enabledmetrics.pgbouncer_diagnostics를 모두 사용하도록 설정해야 합니다.
  • 이러한 매개 변수는 동적이므로 인스턴스를 다시 시작할 필요가 없습니다.

PgBouncer 메트릭 목록

표시 이름 메트릭 ID 단위 설명 차원 기본값 사용
활성 클라이언트 연결 client_connections_active Count Azure Database for PostgreSQL - 유연한 서버 연결과 연결된 클라이언트의 연결입니다. DatabaseName 아니요
대기 중인 클라이언트 연결 client_connections_waiting Count 서비스를 제공하기 위해 Azure Database for PostgreSQL - 유연한 서버 연결을 기다리는 클라이언트의 연결입니다. DatabaseName 아니요
활성 서버 연결 server_connections_active Count 클라이언트 연결에서 사용 중인 Azure Database for PostgreSQL - 유연한 서버에 대한 연결입니다. DatabaseName 아니요
유휴 서버 연결 server_connections_idle Count 유휴 상태이고 새 클라이언트 연결을 서비스할 준비가 된 Azure Database for PostgreSQL - 유연한 서버에 대한 연결입니다. DatabaseName 아니요
풀링된 총 연결 수 total_pooled_connections Count 현재 풀링된 연결 수입니다. DatabaseName 아니요
연결 풀 수 num_pools Count 총 연결 풀 수입니다. DatabaseName 아니요

PgBouncer 메트릭 사용 시 고려 사항

  • DatabaseName 차원을 사용하는 PgBouncer 메트릭에는 30개 데이터베이스 제한이 있습니다.
  • 버스트 가능 SKU에서는 DatabaseName 차원이 있는 데이터베이스가 10개로 제한됩니다.
  • DatabaseName 차원 제한은 데이터베이스 만들기 순서를 반영하는 OID 열에 적용됩니다.

데이터베이스 가용성 메트릭

Is-db-alive는 [1 for available][0 for not-available]을 반환하는 Azure Database for PostgreSQL 유연한 서버에 대한 데이터베이스 서버 가용성 메트릭입니다. 각 메트릭은 1분 빈도로 내보내며, 최대 93일 동안 보존됩니다. 고객은 메트릭에 대한 경고를 구성할 수 있습니다.

표시 이름 메트릭 ID 단위 설명 차원 기본값 사용
활성 상태의 데이터베이스 is_db_alive Count 데이터베이스가 작동 중인지 여부를 나타냅니다. 해당 사항 없음

데이터베이스 가용성 메트릭 사용 시 고려 사항

  • 이 메트릭을 MAX()로 집계하면 고객이 마지막 순간에 서버가 작동되었는지 또는 작동 중지되었는지 여부를 확인할 수 있습니다.
  • 고객은 경고 요구 사항에 맞게 원하는 빈도(5분, 10분, 30분 등)로 이러한 메트릭을 추가로 집계하고 가양성을 방지할 수 있습니다.
  • 기타 가능한 집계는 AVG()MIN()입니다.

차원 메트릭에 대한 필터링 및 분할

앞의 표에서 일부 메트릭에는 DatabaseName 또는 State와 같은 차원이 있습니다. 차원이 있는 메트릭에 대해 필터링분할을 사용할 수 있습니다. 이러한 기능은 다양한 메트릭 세그먼트(또는 차원 값)가 메트릭의 전체 값에 어떤 영향을 주는지 보여줍니다. 이를 사용해서 가능한 이상값을 식별할 수 있습니다.

  • 필터링: 필터링을 사용하여 차트에 포함할 차원 값을 선택합니다. 예를 들어 Sessions-by-State 메트릭을 차트에 나타낼 때 유휴 연결을 표시해야 할 수 있습니다. 상태 차원에서 유휴에 대한 필터를 설정합니다.
  • 분할: 분할을 사용하여 차트에 차원의 각 값에 대해 별도의 줄을 표시할지 아니면 값을 한 줄로 집계할지 여부를 제어합니다. 예를 들어 모든 세션에서 Sessions-by-State 메트릭에 대해 한 줄을 볼 수 있습니다. 상태 값별로 그룹화된 각 세션에 대한 별도의 줄을 볼 수 있습니다. 별도의 줄을 보려면 State 차원에 분할을 적용합니다.

다음 예에서는 State 차원으로 분할하고 특정 State 값을 필터링하는 방법을 보여 줍니다.

메트릭과 차원에 대한 분할 및 필터링의 예를 보여 주는 스크린샷.

차원 메트릭에 대한 차트 설정에 대한 자세한 내용은 메트릭 차트 예를 참조하세요.

메트릭 시각화

Azure Monitor 메트릭을 시각화하는 옵션에는 여러 가지가 있습니다.

구성 요소 설명 필수 학습 및/또는 구성
개요 페이지 대부분의 Azure 서비스에는 최근의 중요한 메트릭을 보여 주는 차트가 있는 모니터 섹션이 포함된 Azure Portal의 개요 페이지가 있습니다. 이 정보는 개별 서비스 소유자가 리소스의 성능을 빠르게 평가하기 위한 것입니다. 이 페이지는 자동으로 수집되는 플랫폼 메트릭을 기반으로 합니다. 구성이 필요하지 않습니다.
메트릭 탐색기 메트릭 탐색기를 사용하여 메트릭 데이터를 대화형으로 사용하고 메트릭 경고를 만들 수 있습니다. 메트릭 탐색기를 사용하려면 최소한의 학습이 필요하지만 분석하려는 메트릭에 익숙해야 합니다. - 데이터 수집이 구성되면 다른 구성이 필요하지 않습니다.
- Azure 리소스에 대한 플랫폼 메트릭은 자동으로 사용할 수 있게 됩니다.
- Azure Monitor 에이전트가 가상 머신에 배포되면 가상 머신에 대한 게스트 메트릭을 사용할 수 있습니다.
- Application Insights가 구성되면 애플리케이션 메트릭을 사용할 수 있습니다.
Grafana 메트릭을 시각화하고 경고하는 데 Grafana를 사용할 수 있습니다. 모든 버전의 Grafana에는 Azure Monitor 메트릭 및 로그를 시각화하는 Azure Monitor 데이터 원본 플러그 인이 포함되어 있습니다. Grafana 대시보드에 익숙해지려면 어느 정도 교육이 필요합니다. 그러나 미리 빌드된 Azure Database for PostgreSQL 유연한 서버 grafana 모니터링 대시보드를 다운로드하여 프로세스를 간소화할 수 있는데, 이를 통해 조직 내의 모든 Azure Database for PostgreSQL 유연한 서버 인스턴스를 쉽게 모니터링할 수 있습니다.

로그

메트릭 외에도 Azure Database for PostgreSQL 유연한 서버를 사용하여 Azure Database for PostgreSQL 표준 로그를 구성하고 액세스할 수 있습니다. 자세한 내용은 로깅 개념을 참조하세요.

로그 시각화

구성 요소 설명 필수 학습 및/또는 구성
Log Analytics Log Analytics를 사용하면 로그 쿼리를 만들어 로그 데이터를 대화형으로 사용하고 로그 쿼리 경고를 만들 수 있습니다. 쿼리 언어에 익숙해지는 데 약간의 학습이 필요하지만, 일반적인 요구 사항에 맞게 미리 작성된 쿼리를 사용할 수 있습니다.

다음 단계