- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Supported OS
The PgBouncer check tracks connection pool metrics and lets you monitor traffic to and from your application.
The PgBouncer check is included in the Datadog Agent package, so you don’t need to install anything else on your PgBouncer nodes.
This check needs an associated user to query your PgBouncer instance:
Create a Datadog user in your PgBouncer pgbouncer.ini
file:
stats_users = datadog
Add an associated password for the datadog
user in your PgBouncer userlist.txt
file:
"datadog" "<PASSWORD>"
To verify the credentials, run the following command:
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"
When it prompts for a password, enter the password you added to the userlist.txt
.
To configure this check for an Agent running on a host:
Edit the pgbouncer.d/conf.yaml
file, in the conf.d/
folder at the root of your Agent’s configuration directory. See the sample pgbouncer.d/conf.yaml for all available configuration options:
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"
Note: If your instance of PgBouncer does not have SSL support, replace sslmode=require
with sslmode=allow
to avoid server errors. For details, see the Postgres documentation on SSL support.
Available for Agent versions >6.0
Collecting logs is disabled by default in the Datadog Agent, enable it in your datadog.yaml
file:
logs_enabled: true
Add this configuration block to your pgbouncer.d/conf.yaml
file to start collecting your Pgbouncer logs:
logs:
- type: file
path: /var/log/postgresql/pgbouncer.log
source: pgbouncer
service: "<SERVICE_NAME>"
Change the path
and service
parameter values and configure them for your environment. See the sample pgbouncer.d/conf.yaml for all available configuration options.
For containerized environments, see the Autodiscovery Integration Templates for guidance on applying the parameters below.
Parameter | Value |
---|---|
<INTEGRATION_NAME> | pgbouncer |
<INIT_CONFIG> | blank or {} |
<INSTANCE_CONFIG> | {"database_url": "postgresql://datadog:<PASSWORD>@%%host%%:%%port%%/<DATABASE_URL>?sslmode=require"} |
Available for Agent versions >6.0
Collecting logs is disabled by default in the Datadog Agent. To enable it, see Kubernetes Log Collection.
Parameter | Value |
---|---|
<LOG_CONFIG> | {“source”: “pgbouncer”, “service”: “pgbouncer”} |
Run the Agent’s status subcommand and look for pgbouncer
under the Checks section.
pgbouncer.clients.connect_time (gauge) | When the connection was made (seconds since epoch) Shown as second |
pgbouncer.clients.request_time (gauge) | When last request was issued (seconds since epoch) Shown as second |
pgbouncer.clients.wait (gauge) | Current waiting time in seconds Shown as second |
pgbouncer.clients.wait_us (gauge) | The microsecond portion of the current waiting time Shown as microsecond |
pgbouncer.databases.current_connections (gauge) | Current number of connections for this database Shown as connection |
pgbouncer.databases.max_connections (gauge) | Maximum number of allowed connections Shown as connection |
pgbouncer.databases.pool_size (gauge) | Maximum number of server connections Shown as connection |
pgbouncer.max_client_conn (gauge) | The maximum number of client connections allowed. Shown as connection |
pgbouncer.pools.cl_active (gauge) | Client connections linked to server connection and able to process queries Shown as connection |
pgbouncer.pools.cl_waiting (gauge) | Client connections waiting on a server connection Shown as connection |
pgbouncer.pools.maxwait (gauge) | How long the first (oldest) client in the queue has waited, in seconds Shown as second |
pgbouncer.pools.maxwait_us (gauge) | Microsecond part of the maximum waiting time Shown as microsecond |
pgbouncer.pools.sv_active (gauge) | Server connections linked to a client connection Shown as connection |
pgbouncer.pools.sv_idle (gauge) | Server connections idle and ready for a client query Shown as connection |
pgbouncer.pools.sv_login (gauge) | Server connections currently in the process of logging in Shown as connection |
pgbouncer.pools.sv_tested (gauge) | Server connections currently running either serverresetquery or servercheckquery Shown as connection |
pgbouncer.pools.sv_used (gauge) | Server connections idle more than servercheckdelay, needing servercheckquery Shown as connection |
pgbouncer.servers.connect_time (gauge) | When the connection was made (seconds since epoch) Shown as second |
pgbouncer.servers.request_time (gauge) | When last request was issued (seconds since epoch) Shown as second |
pgbouncer.stats.avg_query (gauge) | The average query duration Shown as microsecond |
pgbouncer.stats.avg_query_count (gauge) | The average number of queries per second in last stat period Shown as query |
pgbouncer.stats.avg_query_time (gauge) | The average query duration Shown as microsecond |
pgbouncer.stats.avg_recv (gauge) | The client network traffic received Shown as byte |
pgbouncer.stats.avg_req (gauge) | The average number of requests per second in last stat period Shown as request |
pgbouncer.stats.avg_sent (gauge) | The client network traffic sent Shown as byte |
pgbouncer.stats.avg_transaction_count (gauge) | The average number of transactions per second in last stat period Shown as transaction |
pgbouncer.stats.avg_transaction_time (gauge) | The average transaction duration Shown as microsecond |
pgbouncer.stats.avg_wait_time (gauge) | Time spent by clients waiting for a server, in microseconds (average per second) Shown as microsecond |
pgbouncer.stats.bytes_received_per_second (rate) | The total network traffic received Shown as byte |
pgbouncer.stats.bytes_sent_per_second (rate) | The total network traffic sent Shown as byte |
pgbouncer.stats.queries_per_second (rate) | The query rate Shown as query |
pgbouncer.stats.requests_per_second (rate) | The request rate Shown as request |
pgbouncer.stats.total_query_time (rate) | Time spent by pgbouncer actively querying PostgreSQL Shown as microsecond |
pgbouncer.stats.total_transaction_time (rate) | Time spent by pgbouncer in transactions Shown as microsecond |
pgbouncer.stats.total_wait_time (gauge) | Time spent by clients waiting for a server, in microseconds Shown as microsecond |
pgbouncer.stats.transactions_per_second (rate) | The transaction rate Shown as transaction |
Note: Not all metrics are available with all versions of PgBouncer.
The PgBouncer check does not include any events.
pgbouncer.can_connect
Returns CRITICAL
if the Agent is unable to connect to the monitored PGBouncer instance. Returns OK
otherwise.
Statuses: ok, critical
Need help? Contact Datadog support.