- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Supported OS
This check monitors ProxySQL through the Datadog Agent.
Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the Autodiscovery Integration Templates for guidance on applying these instructions.
The ProxySQL integration is included in the Datadog Agent package, so you don’t need to install anything else on your servers.
To connect to ProxySQL using full SSL/TLS validation, enable the tls_verify
option in conf.yaml
. Include certificates and passwords needed to connect with SSL/TLS.
tls_verify: true
tls_ca_cert: ca_cert.pem
To configure this check for an Agent running on a host:
Edit the proxysql.d/conf.yaml
file, in the conf.d/
folder at the root of your Agent’s configuration directory to start collecting your ProxySQL performance data. See the sample proxysql.d/conf.yaml for all available configuration options.
Collecting logs is disabled by default in the Datadog Agent, enable it in your datadog.yaml
file:
logs_enabled: true
Add the log files you are interested in to your proxysql.d/conf.yaml
file to start collecting your ProxySQL logs:
logs:
# Default logging file
- type: file
path: /var/log/proxysql.log
source: proxysql
service: "<SERVICE_NAME>"
# Logged queries, file needs to be in JSON
# https://github.com/sysown/proxysql/wiki/Query-Logging
- type: file
path: "<QUERY_LOGGING_FILE_PATH>"
source: proxysql
service: "<SERVICE_NAME>"
# Audit log
# https://github.com/sysown/proxysql/wiki/Audit-log
- type: file
path: "<AUDIT_LOG_FILE_PATH>"
source: proxysql
service: "<SERVICE_NAME>"
Change the path
and service
parameter values and configure them for your environment. See the sample proxysql.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> | proxysql |
<INIT_CONFIG> | blank or {} |
<INSTANCE_CONFIG> | {"host": "%%host%%", "port": "%%port%%", "username": "<USER>", "password": "<PASSWORD>"} |
Collecting logs is disabled by default in the Datadog Agent. To enable it, see Kubernetes Log Collection.
Parameter | Value |
---|---|
<LOG_CONFIG> | {"source": "proxysql", "service": "<SERVICE_NAME>"} |
Run the Agent’s status subcommand and look for proxysql
under the Checks section.
proxysql.active_transactions (gauge) | The number of client connections currently processing a transaction. Shown as transaction |
proxysql.backend.query_time_pct (gauge) | Time spent (as a percentage of total time) making network calls to communicate with the backends. Shown as percent |
proxysql.backends.count (gauge) | Number of mysql servers connected. Shown as node |
proxysql.client.connections_aborted (gauge) | Client failed or improperly closed connections per second. Shown as connection |
proxysql.client.connections_connected (gauge) | Client connections that are currently connected. Shown as connection |
proxysql.client.connections_created (gauge) | The number of client connections created per second. Shown as connection |
proxysql.client.connections_non_idle (gauge) | The number of client connections that are currently handled by the main worker threads. Shown as connection |
proxysql.client.statements.active_total (gauge) | The number of prepared statements that are in use by clients. Shown as unit |
proxysql.client.statements.active_unique (gauge) | The number of unique prepared statements currently in use by clients. Shown as unit |
proxysql.frontend.user_connections (gauge) | Current number of frontend connections by user. Shown as connection |
proxysql.frontend.user_max_connections (gauge) | Max number of frontend connections the user can create (as defined in mysqlusers.maxconnections). Shown as connection |
proxysql.memory.auth_memory (gauge) | Memory used by the authentication module to store user credentials and attributes. Shown as byte |
proxysql.memory.jemalloc_active (gauge) | Bytes in pages allocated by the application. Shown as byte |
proxysql.memory.jemalloc_allocated (gauge) | Bytes allocated by the application. Shown as byte |
proxysql.memory.jemalloc_mapped (gauge) | Bytes in extents mapped by the allocator. Shown as byte |
proxysql.memory.jemalloc_metadata (gauge) | Bytes dedicated to metadata. Shown as byte |
proxysql.memory.jemalloc_resident (gauge) | Bytes in physically resident data pages mapped by the allocator. Shown as byte |
proxysql.memory.jemalloc_retained (gauge) | Bytes allocated by the application. Shown as byte |
proxysql.memory.query_digest_memory (gauge) | Memory used to store data related to statsmysqlquery_digest. Shown as byte |
proxysql.memory.sqlite3_memory_bytes (gauge) | Memory used by the embedded SQLite. Shown as byte |
proxysql.memory.stack_memory_admin_threads (gauge) | Memory used by the stack of the admin threads. Shown as byte |
proxysql.memory.stack_memory_cluster_threads (gauge) | Memory used by the stack of the cluster threads. Shown as byte |
proxysql.memory.stack_memory_mysql_threads (gauge) | Memory used by the stack of the MySQL threads. Shown as byte |
proxysql.mysql.backend_buffers_bytes (gauge) | Memory use of buffers related to backend connections. Shown as byte |
proxysql.mysql.frontend_buffers_bytes (gauge) | Memory use of buffers related to frontend connections (read/write buffers and other queues). Shown as byte |
proxysql.mysql.monitor_workers (gauge) | The number of monitor threads. Shown as worker |
proxysql.mysql.session_internal_bytes (gauge) | Other memory used by ProxySQL to handle MySQL Sessions. Shown as byte |
proxysql.mysql.thread_workers (gauge) | The number of MySQL Thread workers i.e. 'mysql-threads'. Shown as worker |
proxysql.performance.command.cnt_100ms (count) | The number of commands of a type which executed within 100 milliseconds., but more than 50 milliseconds Shown as command |
proxysql.performance.command.cnt_100us (count) | The number of commands of a type which executed within 100 microseconds. Shown as command |
proxysql.performance.command.cnt_10ms (count) | The number of commands of a type which executed within 10 milliseconds., but more than 5 milliseconds Shown as command |
proxysql.performance.command.cnt_10s (count) | The number of commands of a type which executed within 10 seconds., but more than 5 seconds Shown as command |
proxysql.performance.command.cnt_1ms (count) | The number of commands of a type which executed within 1 milliseconds., but more than 500 microseconds Shown as command |
proxysql.performance.command.cnt_1s (count) | The number of commands of a type which executed within 1 second., but more than 500 milliseconds Shown as command |
proxysql.performance.command.cnt_500ms (count) | The number of commands of a type which executed within 500 milliseconds., but more than 100 milliseconds Shown as command |
proxysql.performance.command.cnt_500us (count) | The number of commands of a type which executed within 500 microseconds., but more than 100 microseconds Shown as command |
proxysql.performance.command.cnt_50ms (count) | The number of commands of a type which executed within 50 milliseconds., but more than 10 milliseconds Shown as command |
proxysql.performance.command.cnt_5ms (count) | The number of commands of a type which executed within 5 milliseconds., but more than 1 milliseconds Shown as command |
proxysql.performance.command.cnt_5s (count) | The number of commands of a type which executed within 5 seconds., but more than 1 second Shown as command |
proxysql.performance.command.cnt_infs (count) | The number of commands whose execution exceeded 10 seconds. Shown as command |
proxysql.performance.command.total_count (count) | The number of commands of a type executed. Shown as command |
proxysql.performance.command.total_time_pct (gauge) | Total time spent executing commands of a type as a percentage of total time. Shown as percent |
proxysql.pool.bytes_data_recv (gauge) | The amount of data received from the backend. Shown as byte |
proxysql.pool.bytes_data_sent (gauge) | The amount of data sent to the backend. Shown as byte |
proxysql.pool.conn_failure (gauge) | The number of requests per second where a connection was not available in the connection pool and either: a new connection had to be created or no backend was available. Shown as connection |
proxysql.pool.conn_immediate (gauge) | The number of connections per second that a MySQL Thread obtained from its own local connection pool cache. Shown as connection |
proxysql.pool.conn_success (gauge) | The number of requests per second where a connection was already available in the connection pool. Shown as connection |
proxysql.pool.connections_error (gauge) | How many connections aren't established successfully. Shown as connection |
proxysql.pool.connections_free (gauge) | How many connections are currently free. They are kept open in order to minimize the time cost of sending a query to the backend server. Shown as connection |
proxysql.pool.connections_ok (gauge) | How many connections are established successfully. Shown as connection |
proxysql.pool.connections_used (gauge) | How many connections are currently used by ProxySQL for sending queries to the backend server. Shown as connection |
proxysql.pool.latency_ms (gauge) | The current ping time as reported from Monitor. Shown as millisecond |
proxysql.pool.latency_us (gauge) | The current ping time as reported from Monitor. Shown as microsecond |
proxysql.pool.memory_bytes (gauge) | Memory used by the connection pool to store connections metadata. Shown as byte |
proxysql.pool.queries (gauge) | The number of queries routed towards this particular backend server. Shown as query |
proxysql.query_cache.bytes_in (gauge) | The number of bytes per second sent into the Query Cache. Shown as byte |
proxysql.query_cache.bytes_out (gauge) | The number of bytes per second read from the Query Cache. Shown as byte |
proxysql.query_cache.entries (gauge) | The number of entries currently stored in the query cache. Shown as entry |
proxysql.query_cache.get.count (gauge) | The number of read requests per second to the Query Cache. Shown as query |
proxysql.query_cache.get_ok.count (gauge) | The number of successful read requests per second to the Query Cache. Shown as query |
proxysql.query_cache.memory_bytes (gauge) | Memory usage of the query cache. Shown as byte |
proxysql.query_cache.purged (gauge) | The number of entries purged per second by the Query Cache due to TTL expiration. Shown as entry |
proxysql.query_cache.set.count (gauge) | The number of write requests per second to the Query Cache. Shown as query |
proxysql.query_processor_time_pct (gauge) | The time (as a percentage of total time) spent inside the query processor determining the action to take with the query (internal module). Shown as percent |
proxysql.query_rules.rule_hits (gauge) | The number of times query rules matched traffic. Shown as hit |
proxysql.questions (gauge) | The number of client requests / statements executed per second. Shown as question |
proxysql.server.connections_aborted (gauge) | Backend failed or improperly closed connections per second. Shown as connection |
proxysql.server.connections_connected (gauge) | Backend connections that are currently connected. Shown as connection |
proxysql.server.connections_created (gauge) | The number of backend connections created per second. Shown as connection |
proxysql.server.statements.active_total (gauge) | The number of prepared statements currently available across all backend connections. Shown as unit |
proxysql.server.statements.active_unique (gauge) | The number of unique prepared statements currently available across all backend connections. Shown as unit |
proxysql.slow_queries (gauge) | The number of queries per second with an execution time greater than 'mysql-longquerytime' milliseconds. Shown as query |
proxysql.statements.cached (gauge) | The number of global prepared statements for which proxysql has metadata. Shown as unit |
proxysql.uptime (gauge) | The total uptime of ProxySQL in seconds. Shown as second |
The ProxySQL check does not include any events.
proxysql.can_connect
Returns CRITICAL
if the Agent can’t connect to ProxySQL, otherwise returns OK
.
Statuses: ok, critical
proxysql.backend.status
Returns CRITICAL
if ProxySQL considers the backend host as SHUNNED or OFFLINE_HARD. Returns WARNING
if the backend host is OFFLINE_SOFT
. Returns OK
otherwise.
Statuses: ok, warning, critical
Need help? Contact Datadog support.