PGBouncer

Supported OS Linux Mac OS

통합 버전8.2.0

To find out if this integration is available in your organization, see your Datadog Integrations page or ask your organization administrator.

To initiate an exception request to enable this integration for your organization, email support@ddog-gov.com.

개요

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 지원 팀에 문의하세요.