PGBouncer

Supported OS Linux Mac OS

통합 버전8.2.0

개요

PgBouncer 점검은 연결 풀 메트릭을 추적하고 애플리케이션과 주고받는 모니터링 트래픽을 추적합니다.

설정

설치

PgBouncer 점검은 Datadog Agent 패키지에 포함되어 있으므로 PgBouncer 노드에 별도로 설치할 필요가 없습니다.

이 점검에는 연결된 사용자가 쿼리 PgBouncer 인스턴스에 필요합니다.

  1. PgBouncer pgbouncer.ini 파일에 Datadog 사용자를 생성합니다.

    stats_users = datadog
    
  2. userlist.txt 파일에 datadog 사용자에 대한 연결된 비밀번호를 추가합니다.

    "datadog" "<PASSWORD>"
    
  3. 자격 증명을 확인하려면 다음 명령을 실행합니다.

    psql -h localhost -U datadog -p 6432 pgbouncer -c \
    "SHOW VERSION;" \
    && echo -e "\e[0;32mpgBouncer connection - OK\e[0m" \
    || echo -e "\e[0;31mCannot connect to pgBouncer\e[0m"
    

    비밀번호를 입력하라는 메시지가 표시되면 userlist.txt에 추가한 비밀번호를 입력합니다.

설정

호스트

호스트에서 실행 중인 에이전트에 이 점검을 구성하는 방법:

메트릭 수집
  1. Agent 구성 디렉터리 루트의 conf.d/ 폴더에 있는 pgbouncer.d/conf.yaml 파일을 편집합니다. 사용 가능한 모든 구성 옵션은 샘플 pgbouncer.d/conf.yaml을 참조하세요.

    init_config:
    
    instances:
      ## @param database_url - string - required
      ## `database_url` parameter should point to PgBouncer stats database url (ie. "pgbouncer")
      #
      - database_url: "postgresql://datadog:<PASSWORD>@<HOSTNAME>:<PORT>/<DATABASE_URL>?sslmode=require"
    

    참고: PgBouncer 인스턴스가 SSL을 지원하지 않는 경우 서버 오류를 방지하기 위해 sslmode=requiresslmode=allow로 바꾸세요. 자세한 내용은 SSL 지원에 대한 Postgres 설명서를 참조하세요.

  2. Agent를 다시 시작합니다.

로그 수집

에이전트 버전 > 6.0에서 사용 가능

  1. 로그 수집은 Datadog 에이전트에서 기본적으로 비활성화되어 있습니다. datadog.yaml 파일에서 활성화합니다.

    logs_enabled: true
    
  2. 이 설정 블록을 pgbouncer.d/conf.yaml 파일에 추가하여 Pgbouncer 로그 수집을 시작하세요.

    logs:
      - type: file
        path: /var/log/postgresql/pgbouncer.log
        source: pgbouncer
        service: "<SERVICE_NAME>"
    

    pathservice 파라미터 값을 변경하고 사용자 환경에 맞게 구성합니다. 사용 가능한 모든 구성 옵션은 샘플 pgbouncer.d/conf.yaml을 참조하세요.

  3. Agent를 다시 시작합니다.

컨테이너화된 환경

컨테이너화된 환경의 경우 Autodiscovery 통합 템플릿에 아래 파라미터를 적용하는 방법이 안내되어 있습니다.

메트릭 수집
파라미터
<INTEGRATION_NAME>pgbouncer
<INIT_CONFIG>비어 있음 또는 {}
<INSTANCE_CONFIG>{"database_url": "postgresql://datadog:<PASSWORD>@%%host%%:%%port%%/<DATABASE_URL>?sslmode=require"}
로그 수집

에이전트 버전 > 6.0에서 사용 가능

Datadog Agent에서는 로그 수집 기능이 기본적으로 비활성화되어 있습니다. 활성화하려면 Kubernetes 로그 수집을 참고하세요.

파라미터
<LOG_CONFIG>{“source”: “pgbouncer”, “service”: “pgbouncer”}

검증

Agent 상태 하위 명령을 실행하고 Checks 섹션에서 pgbouncer을 찾습니다.

수집한 데이터

Metrics

pgbouncer.clients.connect_time
(gauge)
연결이 생성된 시점(에포크 이후 초 단위)
second로 표시
pgbouncer.clients.request_time
(gauge)
마지막 요청이 발생한 시점(에포크 이후 초 단위)
second로 표시
pgbouncer.clients.wait
(gauge)
현재 대기 시간(초)
second로 표시
pgbouncer.clients.wait_us
(gauge)
현재 대기 시간의 마이크로초 단위 부분
microsecond로 표시
pgbouncer.databases.current_connections
(gauge)
이 데이터베이스의 현재 연결 수
connection으로 표시
pgbouncer.databases.max_connections
(gauge)
최대 허용 연결 수
connection으로 표시
pgbouncer.databases.pool_size
(gauge)
최대 서버 연결 수
connection으로 표시
pgbouncer.max_client_conn
(gauge)
최대 허용 클라이언트 연결 수
connection으로 표시
pgbouncer.pools.cl_active
(gauge)
서버 연결에 연결되어 쿼리 처리가 가능한 클라이언트 연결
_ connection으로 표시_
pgbouncer.pools.cl_waiting
(gauge)
서버 연결 대기 중인 클라이언트 연결
connection으로 표시
pgbouncer.pools.maxwait
(gauge)
대기열의 첫 번째(가장 오래된) 클라이언트가 대기한 시간(초)
second로 표시
pgbouncer.pools.maxwait_us
(gauge)
최대 대기 시간의 마이크로초 단위 부분
microsecond로 표시
pgbouncer.pools.sv_active
(gauge)
클라이언트 연결에 연결된 서버 연결
connection으로 표시
pgbouncer.pools.sv_idle
(gauge)
클라이언트 쿼리 작업을 할 준비가 된 유휴 서버 연결
connection으로 표시
pgbouncer.pools.sv_login
(gauge)
현재 로그인 중인 서버 연결
connection으로 표시
pgbouncer.pools.sv_tested
(gauge)
현재 server_reset_query 또는 server_check_query를 실행 중인 서버 연결
connection로 표시
pgbouncer.pools.sv_used
(gauge)
server_check_delay를 초과하여 유휴 상태이며 server_check_query가 필요한 서버 연결
connection로 표시
pgbouncer.servers.connect_time
(gauge)
연결이 생성된 시점(에포크 이후 경과된 초)
second로 표시
pgbouncer.servers.request_time
(gauge)
마지막 요청이 발생한 시점(에포크 이후 초 단위)
second로 표시
pgbouncer.stats.avg_query
(gauge)
평균 쿼리 시간
microsecond로 표시
pgbouncer.stats.avg_query_count
(gauge)
마지막 통계 수집 주기 동안의 초당 평균 쿼리 수
query로 표시
pgbouncer.stats.avg_query_time
(gauge)
평균 쿼리 시간
microsecond로 표시
pgbouncer.stats.avg_recv
(gauge)
수신된 클라이언트 네트워크 트래픽
byte로 표시
pgbouncer.stats.avg_req
(gauge)
마지막 통계 수집 주기 동안의 초당 평균 요청 수
request로 표시
pgbouncer.stats.avg_sent
(gauge)
전송된 클라이언트 네트워크 트래픽
byte로 표시
pgbouncer.stats.avg_transaction_count
(gauge)
마지막 통계 수집 주기 동안의 초당 평균 트랜잭션 수
request로 표시
pgbouncer.stats.avg_transaction_time
(gauge)
평균 트랜잭션 시간
microsecond로 표시
pgbouncer.stats.avg_wait_time
(gauge)
클라이언트의 서버 연결 대기 시간(초당 평균, 마이크로초 단위)
microsecond로 표시
pgbouncer.stats.bytes_received_per_second
(rate)
수신된 총 네트워크 트래픽
byte로 표시
pgbouncer.stats.bytes_sent_per_second
(rate)
전송된 총 네트워크 트래픽
byte로 표시
pgbouncer.stats.queries_per_second
(rate)
쿼리율
query로 표시됨
pgbouncer.stats.requests_per_second
(rate)
요청률
query로 표시됨
pgbouncer.stats.total_query_time
(rate)
Pgbouncer가 PostgreSQL에서 실제 쿼리를 실행하는 데 소요된 시간
microsecond로 표시
pgbouncer.stats.total_transaction_time
(rate)
pgbouncer가 트랜잭션을 처리하는 데 걸린 시간
microsecond로 표시
pgbouncer.stats.total_wait_time
(gauge)
클라이언트의 서버 연결 대기 시간(마이크로초)
microsecond로 표시
pgbouncer.stats.transactions_per_second
(rate)
트랜잭션 비율
transaction으로 표시

참고: 일부 메트릭은 일부 버전의 PgBouncer에서 사용 가능하지 않습니다.

이벤트

PgBouncer 점검에는 이벤트가 포함되어 있지 않습니다.

서비스 점검

pgbouncer.can_connect

Agent가 모니터링되는 PGBouncer 인스턴스에 연결할 수 없는 경우 CRITICAL을 반환합니다. 연결할 수 있으면 OK를 반환합니다.

상태: ok, critical

트러블슈팅

도움이 필요하세요? Datadog 지원 팀에 문의하세요.