증상:db.server.top_query 이벤트에서 사용할 수 있는 쿼리 계획이 없습니다.
원인: 예상되는 동작 ― query_sample_text이(가) MySQL 5.7.x 또는 8.0.0~8.0.2에 존재하지 않습니다.
해결책: 쿼리 계획을 지원하려면 MySQL 8.0.3 이상으로 업그레이드하십시오.
증상:UPDATE, INSERT, DELETE 또는 REPLACE 문에 대한 쿼리 계획이 누락되었습니다.
원인: 모니터링 사용자에게 DML 권한이 없으며 explain_mode이(가) inline(으)로 설정되어 있습니다.
해결책: 수신기 설정에서 procedure 모드로 전환하십시오:
nrmysql:
explain_mode: procedure
이는 모니터링 사용자에게 DML 권한을 부여하지 않고 쓰기 문을 설명하기 위해 SQL SECURITY DEFINER 프로시저를 사용합니다.
증상: 일부 데이터베이스 연결에서 mysql.session.client_name 속성이 비어 있습니다.
원인: 버그가 아닙니다 ― 일부 클라이언트 드라이버는 기본적으로 연결 속성을 전송하지 않습니다.
메모:
이는 데이터 종속적인 동작입니다.
MySQL 클라이언트 라이브러리마다 연결 속성에 대한 지원이 다릅니다.
모든 애플리케이션이 이 정보를 보내도록 드라이버를 설정하는 것은 아닙니다.
증상: SQL 주석에서 APM 상관관계 태그가 추출되지 않습니다.
원인: 주석 태그 추출이 설정되지 않았습니다.
해결책: 설정의 두 수집 블록 모두에 allowed_comment_keys을(를) 추가하십시오:
query_sample_collection:
allowed_comment_keys:[nr_service_guid]
top_query_collection:
allowed_comment_keys:[nr_service_guid]
보안상의 이유로 주석 태그 추출은 기본적으로 비어 있습니다.
증상:
엔티티 탐색기에서 MySQL 엔티티가 누락되었습니다.
APM 애플리케이션에 데이터베이스 관계가 표시되지 않습니다.
원인: 엔티티 합성에 필요한 server.address 및 server.port 리소스 속성이 누락되었습니다.
해결책: 수집기 설정에 리소스 프로세서를 추가하십시오:
processors:
resource/mysql:
attributes:
-key: server.address
value:"<YOUR_DB_HOST>"
action: upsert
-key: server.port
value: <YOUR_DB_PORT>
action: upsert
service:
pipelines:
metrics:
receivers:[nrmysql]
processors:[resource/mysql, batch]
exporters:[otlp/newrelic]
logs:
receivers:[nrmysql]
processors:[resource/mysql, batch]
exporters:[otlp/newrelic]
증상:
"연결 거부" 오류
"액세스 거부" 인증 실패
해결책:
연결 거부의 경우:
MySQL이 실행 중인지 확인하십시오:
bash
$
systemctl status mysql
방화벽 규칙이 MySQL 포트(기본값 3306)에서 연결을 허용하는지 확인하십시오.
MySQL 설정의 bind-address이(가) 외부 연결을 허용하는지 확인하십시오
인증 오류의 경우:
사용자가 존재하고 올바른 권한이 있는지 확인하십시오:
SELECTUser, Host FROM mysql.userWHEREUser='<YOUR_DB_USERNAME>';
SHOW GRANTS FOR'<YOUR_DB_USERNAME>'@'%';
비밀번호가 올바른지 확인하십시오
RDS의 경우 보안 그룹이 인바운드 연결을 허용하는지 확인합니다.
RDS 성능 스키마 소비자 재설정: RDS 재시작/장애 조치 시 events_waits_current 소비자가 자동으로 비활성화됩니다. 수집기가 이를 다시 활성화할 수 있도록 performance_schema.setup_consumers에 UPDATE 권한을 부여하십시오: