이 참조 문서는 뉴렐릭 OpenTelemetry 배포판(NRDOT) Collector를 사용한 MySQL 모니터링을 위한 포괄적인 YAML 설정을 제공합니다. 이러한 전체 기능 설정에는 자체 호스팅 및 Amazon RDS 배포 전반의 운영 환경을 위한 모든 사용 가능한 메트릭과 고급 프로세서 설정이 포함되어 있습니다.
중요
빠르게 시작하고 싶으십니까? 이는 프로덕션 환경을 위한 고급 설정입니다. 처음으로 MySQL 모니터링을 설정하는 경우, 설정 가이드의 표준 설정으로 시작하여 기본 기능을 확인한 후 이러한 포괄적인 설정으로 돌아오는 것을 권장합니다.
자체 호스팅
이 설정은 nrmysql 수신기가 생성할 수 있는 전체 MySQL 메트릭 카탈로그를 활성화합니다.
extensions: health_check:
receivers: otlp: protocols: grpc: http:
nrmysql: endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>" transport: tcp username: "<YOUR_DB_USERNAME>" password: "<YOUR_DB_PASSWORD>" allow_native_passwords: true collection_interval: 15s initial_delay: 1s # "procedure" collects EXPLAIN plans for write statements (UPDATE/DELETE/INSERT/REPLACE) # without granting DML to the monitoring user, via a SQL SECURITY DEFINER procedure. # Falls back to "inline" (default) automatically if the procedure is absent for a schema. # Requires one-time setup per schema -- see Prerequisites -> DML query plan collection. explain_mode: procedure statement_events: digest_text_limit: 4096 time_limit: 24h limit: 500 query_sample_collection: max_rows_per_query: 100 # APM-DB correlation: surfaces the nr_service_guid SQL comment tag (e.g. injected by # transaction_tracer.sql_metadata_comments in the Java agent) as db.query.comment_tags / # db.query.comment_tags.nr_service_guid. Empty list by default -- nothing is extracted # unless the key is explicitly allow-listed here. allowed_comment_keys: [nr_service_guid] top_query_collection: lookback_time: 60 max_query_sample_count: 5000 top_query_count: 200 collection_interval: 60s query_plan_cache_size: 1000 query_plan_cache_ttl: 1h allowed_comment_keys: [nr_service_guid] events: db.server.query_sample: enabled: true db.server.top_query: enabled: true db.server.query_plan: enabled: true resource_attributes: db.system.version: enabled: true metrics: # ---- Default-enabled metrics (kept explicit for visibility) ---- mysql.buffer_pool.data_pages: enabled: true mysql.buffer_pool.limit: enabled: true mysql.buffer_pool.operations: enabled: true mysql.buffer_pool.page_flushes: enabled: true mysql.buffer_pool.pages: enabled: true mysql.buffer_pool.usage: enabled: true mysql.double_writes: enabled: true mysql.handlers: enabled: true mysql.index.io.wait.count: enabled: true mysql.index.io.wait.time: enabled: true mysql.locks: enabled: true mysql.log_operations: enabled: true mysql.mysqlx_connections: enabled: true mysql.opened_resources: enabled: true mysql.operations: enabled: true mysql.page_operations: enabled: true mysql.prepared_statements: enabled: true mysql.row_locks: enabled: true mysql.row_operations: enabled: true mysql.sorts: enabled: true mysql.table.io.wait.count: enabled: true mysql.table.io.wait.time: enabled: true mysql.threads: enabled: true mysql.tmp_resources: enabled: true mysql.uptime: enabled: true
# ---- Disabled-by-default metrics (explicitly turned on for full-feature) ---- mysql.client.network.io: enabled: true mysql.commands: enabled: true mysql.connection.count: enabled: true mysql.connection.errors: enabled: true mysql.file.open: enabled: true mysql.innodb.data_file.io: enabled: true mysql.innodb.history_list.length: enabled: true mysql.innodb.operation.pending: enabled: true mysql.innodb.redo_log.checkpoint.age: enabled: true mysql.innodb.redo_log.lsn.checkpoint: enabled: true mysql.innodb.redo_log.lsn.current: enabled: true mysql.innodb.row_lock.wait.count: enabled: true mysql.innodb.row_lock.wait.duration.avg: enabled: true mysql.innodb.row_lock.wait.duration.max: enabled: true mysql.innodb.transaction.active.count: enabled: true mysql.innodb.transaction.active.duration.max: enabled: true mysql.joins: enabled: true mysql.max_used_connections: enabled: true mysql.myisam.key_cache.block.unused: enabled: true mysql.myisam.key_cache.block.used.max: enabled: true mysql.myisam.key_cache.disk.operation: enabled: true mysql.myisam.key_cache.request: enabled: true mysql.mysqlx_worker_threads: enabled: true mysql.page_size: enabled: true mysql.query.client.count: enabled: true mysql.query.count: enabled: true mysql.query.execution.time: enabled: true mysql.query.slow.count: enabled: true mysql.replica.sql_delay: enabled: true mysql.replica.temp_table.open: enabled: true mysql.replica.thread.running: enabled: true mysql.replica.time_behind_source: enabled: true mysql.server.healthy: enabled: true mysql.session.active.count: enabled: true mysql.statement_event.count: enabled: true mysql.statement_event.wait.time: enabled: true mysql.table.average_row_length: enabled: true mysql.table.lock_wait.read.count: enabled: true mysql.table.lock_wait.read.time: enabled: true mysql.table.lock_wait.write.count: enabled: true mysql.table.lock_wait.write.time: enabled: true mysql.table.open: enabled: true mysql.table.rows: enabled: true mysql.table.size: enabled: true mysql.table_open_cache: enabled: true mysql.thread.slow_launch: enabled: true
processors: transform: trace_statements: - context: span statements: - truncate_all(span.attributes, 4095) - truncate_all(resource.attributes, 4095)
batch:
resource_detection: detectors: ["system"] system: hostname_sources: ["os"] resource_attributes: host.id: enabled: true
resource_detection/cloud: detectors: ["gcp", "ec2", "azure"] timeout: 2s override: true
resource_detection/env: detectors: ["env"] timeout: 2s override: true
exporters: otlp/newrelic: endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>" headers: api-key: "<YOUR_NEWRELIC_LICENSE_KEY>" compression: gzip sending_queue: enabled: true sizer: bytes queue_size: 100_000_000 num_consumers: 10 batch: sizer: bytes max_size: 1_000_000 min_size: 0 flush_timeout: 5s retry_on_failure: enabled: true initial_interval: 5s max_interval: 30s max_elapsed_time: 300s
service: telemetry: metrics: level: none
extensions: [health_check]
pipelines: metrics/mysql: receivers: [nrmysql] processors: - resource_detection - resource_detection/cloud - resource_detection/env - batch exporters: [otlp/newrelic]
logs/mysql: receivers: [nrmysql] processors: - resource_detection - resource_detection/cloud - resource_detection/env - batch exporters: [otlp/newrelic]
traces: receivers: [otlp] processors: [transform, resource_detection, resource_detection/cloud, resource_detection/env, batch] exporters: [otlp/newrelic]
metrics: receivers: [otlp] processors: [resource_detection, resource_detection/cloud, resource_detection/env, batch] exporters: [otlp/newrelic]
logs: receivers: [otlp] processors: [resource_detection, resource_detection/cloud, resource_detection/env, batch] exporters: [otlp/newrelic]중요
NRDOT Collector를 통한 MySQL 통합은 표준 데이터 수집 가격 정책을 따릅니다. 전체 기능 설정은 표준 설정보다 더 많은 데이터를 수집하므로 전체 청구 금액이 증가할 수 있음에 유의하시기 바랍니다.
RDS
이 설정은 nrmysql 수신기가 생성할 수 있는 전체 MySQL 메트릭 카탈로그를 활성화합니다.
extensions: health_check:
receivers: otlp: protocols: grpc: http:
nrmysql: endpoint: "<YOUR_DB_HOST>:<YOUR_DB_PORT>" transport: tcp username: "<YOUR_DB_USERNAME>" password: "<YOUR_DB_PASSWORD>" allow_native_passwords: true collection_interval: 15s initial_delay: 1s # "procedure" collects EXPLAIN plans for write statements (UPDATE/DELETE/INSERT/REPLACE) # without granting DML to the monitoring user, via a SQL SECURITY DEFINER procedure. # Falls back to "inline" (default) automatically if the procedure is absent for a schema. # Requires one-time setup per schema -- see Prerequisites -> DML query plan collection. explain_mode: procedure statement_events: digest_text_limit: 4096 time_limit: 24h limit: 500 query_sample_collection: max_rows_per_query: 100 # APM-DB correlation: surfaces the nr_service_guid SQL comment tag (e.g. injected by # transaction_tracer.sql_metadata_comments in the Java agent) as db.query.comment_tags / # db.query.comment_tags.nr_service_guid. Empty list by default -- nothing is extracted # unless the key is explicitly allow-listed here. allowed_comment_keys: [nr_service_guid] top_query_collection: lookback_time: 60 max_query_sample_count: 5000 top_query_count: 200 collection_interval: 60s query_plan_cache_size: 1000 query_plan_cache_ttl: 1h allowed_comment_keys: [nr_service_guid] events: db.server.query_sample: enabled: true db.server.top_query: enabled: true db.server.query_plan: enabled: true resource_attributes: db.system.version: enabled: true metrics: # ---- Default-enabled metrics (kept explicit for visibility) ---- mysql.buffer_pool.data_pages: enabled: true mysql.buffer_pool.limit: enabled: true mysql.buffer_pool.operations: enabled: true mysql.buffer_pool.page_flushes: enabled: true mysql.buffer_pool.pages: enabled: true mysql.buffer_pool.usage: enabled: true mysql.double_writes: enabled: true mysql.handlers: enabled: true mysql.index.io.wait.count: enabled: true mysql.index.io.wait.time: enabled: true mysql.locks: enabled: true mysql.log_operations: enabled: true mysql.mysqlx_connections: enabled: true mysql.opened_resources: enabled: true mysql.operations: enabled: true mysql.page_operations: enabled: true mysql.prepared_statements: enabled: true mysql.row_locks: enabled: true mysql.row_operations: enabled: true mysql.sorts: enabled: true mysql.table.io.wait.count: enabled: true mysql.table.io.wait.time: enabled: true mysql.threads: enabled: true mysql.tmp_resources: enabled: true mysql.uptime: enabled: true
# ---- Disabled-by-default metrics (explicitly turned on for full-feature) ---- mysql.client.network.io: enabled: true mysql.commands: enabled: true mysql.connection.count: enabled: true mysql.connection.errors: enabled: true mysql.file.open: enabled: true mysql.innodb.data_file.io: enabled: true mysql.innodb.history_list.length: enabled: true mysql.innodb.operation.pending: enabled: true mysql.innodb.redo_log.checkpoint.age: enabled: true mysql.innodb.redo_log.lsn.checkpoint: enabled: true mysql.innodb.redo_log.lsn.current: enabled: true mysql.innodb.row_lock.wait.count: enabled: true mysql.innodb.row_lock.wait.duration.avg: enabled: true mysql.innodb.row_lock.wait.duration.max: enabled: true mysql.innodb.transaction.active.count: enabled: true mysql.innodb.transaction.active.duration.max: enabled: true mysql.joins: enabled: true mysql.max_used_connections: enabled: true mysql.myisam.key_cache.block.unused: enabled: true mysql.myisam.key_cache.block.used.max: enabled: true mysql.myisam.key_cache.disk.operation: enabled: true mysql.myisam.key_cache.request: enabled: true mysql.mysqlx_worker_threads: enabled: true mysql.page_size: enabled: true mysql.query.client.count: enabled: true mysql.query.count: enabled: true mysql.query.execution.time: enabled: true mysql.query.slow.count: enabled: true mysql.replica.sql_delay: enabled: true mysql.replica.temp_table.open: enabled: true mysql.replica.thread.running: enabled: true mysql.replica.time_behind_source: enabled: true mysql.server.healthy: enabled: true mysql.session.active.count: enabled: true mysql.statement_event.count: enabled: true mysql.statement_event.wait.time: enabled: true mysql.table.average_row_length: enabled: true mysql.table.lock_wait.read.count: enabled: true mysql.table.lock_wait.read.time: enabled: true mysql.table.lock_wait.write.count: enabled: true mysql.table.lock_wait.write.time: enabled: true mysql.table.open: enabled: true mysql.table.rows: enabled: true mysql.table.size: enabled: true mysql.table_open_cache: enabled: true mysql.thread.slow_launch: enabled: true
processors: transform: trace_statements: - context: span statements: - truncate_all(span.attributes, 4095) - truncate_all(resource.attributes, 4095)
batch:
resource_detection: detectors: ["system"] system: hostname_sources: ["os"] resource_attributes: host.id: enabled: true
resource_detection/cloud: detectors: ["gcp", "ec2", "azure"] timeout: 2s override: true
resource_detection/env: detectors: ["env"] timeout: 2s override: true
exporters: otlp/newrelic: endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>" headers: api-key: "<YOUR_NEWRELIC_LICENSE_KEY>" compression: gzip sending_queue: enabled: true sizer: bytes queue_size: 100_000_000 num_consumers: 10 batch: sizer: bytes max_size: 1_000_000 min_size: 0 flush_timeout: 5s retry_on_failure: enabled: true initial_interval: 5s max_interval: 30s max_elapsed_time: 300s
service: telemetry: metrics: level: none
extensions: [health_check]
pipelines: metrics/mysql: receivers: [nrmysql] processors: - resource_detection - resource_detection/cloud - resource_detection/env - batch exporters: [otlp/newrelic]
logs/mysql: receivers: [nrmysql] processors: - resource_detection - resource_detection/cloud - resource_detection/env - batch exporters: [otlp/newrelic]
traces: receivers: [otlp] processors: [transform, resource_detection, resource_detection/cloud, resource_detection/env, batch] exporters: [otlp/newrelic]
metrics: receivers: [otlp] processors: [resource_detection, resource_detection/cloud, resource_detection/env, batch] exporters: [otlp/newrelic]
logs: receivers: [otlp] processors: [resource_detection, resource_detection/cloud, resource_detection/env, batch] exporters: [otlp/newrelic]중요
NRDOT Collector를 통한 MySQL 통합은 표준 데이터 수집 가격 정책을 따릅니다. 전체 기능 설정은 표준 설정보다 더 많은 데이터를 수집하므로 전체 청구 금액이 증가할 수 있음에 유의하시기 바랍니다.