- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Supported OS
이 점검은 Datadog 에이전트를 통해 ProxySQL을 모니터링합니다.
아래 지침을 따라 호스트에서 실행되는 에이전트에 대해 이 점검을 설치하고 설정하세요. 컨테이너화된 환경의 경우 이러한 지침을 적용하는 데 가이드가 필요하면 오토파일럿 통합 템플릿을 참조하세요.
ProxySQL 통합은 Datadog 에이전트 패키지에 포함되어 있으므로 서버에 다른 것을 설치할 필요가 없습니다.
완전 SSL/TLS 검증을 사용해 ProxySQL에 연결하려면 conf.yaml
에서 tls_verify
옵션을 활성화합니다. SSL/TLS에 연결할 때 필요한 인증서와 비밀번호를 포함하세요.
tls_verify: true
tls_ca_cert: ca_cert.pem
호스트에서 실행 중인 에이전트에 대해 이 점검을 구성하려면:
에이전트의 구성 디렉토리 루트에 있는 conf.d/
폴더에서 proxysql.d/conf.yaml
파일을 편집하여 ProxySQL 성능 데이터 수집을 시작합니다. 사용 가능한 모든 구성 옵션은 샘플 proxysql.d/conf.yaml을 참고하세요.
에이전트를 재시작하세요.
Datadog 에이전트에서 로그 수집은 기본적으로 사용하지 않도록 설정되어 있습니다. datadog.yaml
파일에서 로그 수집을 사용하도록 설정합니다.
logs_enabled: true
원하는 로그 파일을 proxysql.d/conf.yaml
파일에 추가하여 ProxySQL 로그 수집을 시작하세요.
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>"
path
및 service
파라미터 값을 변경하고 환경에 맞게 구성합니다. 사용 가능한 모든 구성 옵션은 샘플 proxysql.d/conf.yaml을 참고하세요.
에이전트를 재시작하세요.
컨테이너화된 환경의 경우 자동탐지 통합 템플릿에 다음 파라미터를 적용하는 방법이 안내되어 있습니다.
파라미터 | 값 |
---|---|
<INTEGRATION_NAME> | proxysql |
<INIT_CONFIG> | 비어 있음 또는 {} |
<INSTANCE_CONFIG> | {"host": "%%host%%", "port": "%%port%%", "username": "<USER>", "password": "<PASSWORD>"} |
Datadog Agent에서 로그 수집은 기본값으로 비활성화되어 있습니다. 이를 활성화하려면 쿠버네티스(Kubernetes) 로그 수집을 참조하세요.
파라미터 | 값 |
---|---|
<LOG_CONFIG> | {"source": "proxysql", "service": "<SERVICE_NAME>"} |
에이전트 상태 하위 명령을 실행하고 점검 섹션에서 proxysql
을 찾습니다.
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 |
ProxySQL 점검은 이벤트를 포함하지 않습니다.
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
도움이 필요하신가요? Datadog 지원팀에 문의하세요.