신속하게 성능 문제를 찾기 위해 스냅 샷 (스냅 샷) 기능을 사용하는 방법

우리는 종종 혼란, 문제가 사용자 또는 고객의 피드백 플랫폼을 받는다 발생하지만, 테스터 환경을 구축 한 후 해결할 수없는 문제, 감시 이탈로 이어지는, 실패를 재현 할 수있는 방법이 아니었다.

생산 라인 환경이 매우 자주 산발적 버그, 매우 복잡하기 때문이다, 그러나 그것은 캡처하기가 어렵습니다. 특히 마이크로 서비스, 시스템 복잡성 증가의 보급과 함께 라인을 신속하게 해결하기 위해 사람들에만 의존 할 수있는 과거를 직면 한 엄청난 도전 과제를 해결하기 위해 오류를 적시에 분석을 찾습니다. 그러나 사람들의 문제 해결 능력과 속도는 경험에 의존하고, 비용이 매우 높은 핵심 인력의 손실되면 부서가 속도를 감소 전체 장애 해결 시간과 조화되지 않도록 때로는, 분야에 걸쳐 협력 할 필요가있다.

그것이 무엇에 관해서는, 응용 프로그램 인사이트 (애플리케이션 성능 관리 플랫폼, 이하 아이라고 함) - 내가 당신에게 사용 성능 분석 도구에 쉽게을 가지고거야이 시간? 당신이 알고 아래로 봐 -

 

 추적 및 스냅 샷 기능

 

01 그것은 잘못된 사업을 운영하고 있습니다 무엇?

코드를 실행에서 종종 이러한 유형의 문제가 발생할 수 :

JVM

예컨대 디스크 부족으로 메모리 오버 플로우, 메모리 누수, GC 일시 정지와 같은 일반적인 움

● 데이터베이스

예를 들어, 일반적인 데이터베이스 부하 바쁜, 데이터베이스 서버 과부하, 단일 SQL 문의 느린 구현, 데이터베이스 연결 풀 시간이 오래 얻으려면 데이터베이스 연결 풀에 액세스의 과도한 번호 등

● 외부 서비스

이러한 외부 서비스와 같은 일반적인 네트워크 문제는, 이러한 인덱스 설정으로 서로 다른 응용 프로그램 사이에 차단 호출은 적절하지 않다

● 기타 문제

(가) 위의 가장 일반적인 시나리오이지만 깊은 프로그램에 숨겨진 몇 가지 문제가있다, 우리는 이유를 찾기 위해 심도있는 분석 코드가 필요합니다.

스레드 교착 상태, 작동주기, 거래 이상, JVM 충돌 등

 

02 추적은 무엇인가?

추적 정보 수집 프로그램 런타임은 실행 상태를 조회 코드 요구 사항이 수정 및 부품을 최적화 할 위치, 코드의 속도를 향상, 사용자 경험을 향상한다.

업계 일반적으로 사용되는 방법은 다음 세 가지가있다 :

 

● 이벤트 방법

자바 언어에서 다른 이벤트로 스레드를 떠나, (JVM 도구 인터페이스) 등의 메소드 호출, 클래스 로딩, 언 로딩 클래스와 캡처에 대한 API 방법, JVMTI를 사용하여, 다음이 이벤트를 기반으로 행위의 코드를 분석 할 수 있습니다.

 

● 통계적 샘플링

시스템마다 이벤트 인터럽트 호출 얻어진 정보와 각 기능 함수 호출 그래프에 따라 호출 스택 CPU 사용률 정보에 나타나는 이러한 기능은 현재의 호출 스택 정보, 통화 녹음 기능 및 구조를 수집한다.

 

● 삽입 코드

기록 명령 코드 실행, 종료 시간이 시작 시간에 원하는 프로그램 명령 코드에 삽입 한 다음 함수 호출 함수 CPU 사용률 유래의 통계 내지.

 

03  추적의 AI

아이는 스냅 샷 (통계 샘플링) 코드 및 삽입 방법 느린 추적, 오류 추적, SQL 추적을 포함하여 추적, 추적을 달성하여 4 개의 카테고리로 분류 스냅 샷 :

 

● 느린 추적

사용자의 트랜잭션 응답 시간이 임계 값을 초과하면 획득 할 수 있습니다. 기본값은 2 초입니다 만, 사용자는 자신의 실제 상황 아이에 따라 수 - 세트 "를 느린 담당 사무소를 설정. 

● 오류 추적

프로그램이 비정상 또는 직접 오류를 실행하면, 우리는 직접 수집 오류 추적, 사이트를 복원합니다.

● SQL을 추적

성능이 느린 SQL에 기록 된 임계 값, 에이전트 스택 정보보다 큰 경우는 SQL 오픈 플랫폼 천천히 추적, 추적 임계 값은 느린 SQL, SQL을 설정합니다. 기본값은 사용자가 자신의 실제 상황 아이에 따라 수 있습니다 0.5 초이다 -. "데이터베이스 설정"세트

사용자는 SQL의 느린 구현에 SQL 실행 계획, 크롤링을 열 수 있습니다.



● 스냅 샷

원리는 여러 번 코드가 천천히 스냅 샷 실행되는 고객 서비스 및 방법, 시간이 많이 소요 분석, 스냅 샷 추적에 대한 호출의 시간에 스냅 샷입니다.

컬렉션은 4 * apdex_T (기본 이초), 분당 스냅 샷의 수와 이상이 넘는 두 개의 연속 분의 웹 트랜잭션의 평균 응답 시간을 규칙.

사용자는 동적으로도 사업을 기반으로 할 수있는 임계 값을 조정하기 위해이 기능을 사용할 수 있습니다, 어떤 구성을 수행 할 필요가 없습니다.


 

사용자 사례 연구

 

01 문제 유형 : 비 연결형 서비스 거부

1) 설명 : 사용자 피드백 로그인 할 수없는

 

2) 설문 조사 및 분석

a:登录平台查看登出的接口情况

登录接口为 rest / api / login ,选择该 web 事务后进入查看详情,使用“筛选”进行条件过滤,获取失败的 trace 。


b:查看错误 trace

在总览页面,通过异常分析,看到 http 响应码和异常类、异常信息,这时候我们已经清楚问题原因了。


点击“详情”查看程序的执行情况,可以看到程序循环了三次,均出现错误


在错误详情,查看详情的调用栈,我们排查到“caused by java.net.ConnectException:拒绝连接(connection refused)




3)解决方案

与运维人员配合重启负责注册模块的服务器后,业务恢复正常。

4)建议方案

在报警处针对重要业务服务进行配置,当响应时间超过阈值或者出现频率超过阈值时,提前报警,挽回损失。

4.1 新功能体验

登录平台后可以查看报警状态


进入事务详情,鼠标悬停查看该时间段内发生的最近最严重的报警详情


点击红点跳转报警记录查看该事务在该时间段内的所有详情


4.2 如何配置报警

a:从 Ai 页面点击报警

进入报警页面,再选择报警规则,创建报警规则名称、选择类型、自定义规则的可用与不可用时间(比如节假日不可用等)


b:选择报警对象

目前系统支持按照具体 web 事务、按照不同集群、按照高频 web 事务入口( cpm >10)来进行选择,我们选择按照具体的 web 事务为报警对象。


c:选择严重条件

根据我们的业务述求,只要过去10分钟内该事务的平均响应时间大于2秒,而且至少有5分钟的平均响应时间大于2s, 则触发严重报警。


d:选择警告条件

根据我们的业务述求,只要过去10分钟内该事务的平均响应时间大于1秒,而且至少有5分钟的平均响应时间大于1s, 则触发严重报警。


此时我们报警规则已配置好,当事务触发报警时,便可在 Ai 平台直接查看是否有报警、是否严重。如果您想及时感知报警,可进行进一步的配置。

4.3 如何接收报警

a:创建接收人


b:选择接收方式

현재 아이의 기본 메일은 webhook 알람 모드 만합니다 (CA 플랫폼으로 불리는 지능형 경보 플랫폼) 오픈 클라우드 경고, SMS, 미세 문자, 손톱 및 기타 알림 방법에 대한 지원을 통해 더 자세한 알람 유통 및 알람 압축은 무료로 (볼 수 있습니다 버전, 운영 및 유지 보수 팀에 충분한 정도로 작은) https://www.aiops.com/CAintroduce.html

C : 수신자 및 규칙 관련 경보

동작과 규칙을 트리거 할 수있는 알람을 선택


우리는 종종 이상한에 아이 경보 주니어 파트너를 볼 수있는 플랫폼을 사용, 나는 아이 플랫폼 거기에 왜 알람 상태 정보를 표시되지 않는 이유는 무엇입니까?

 

예, 아이의 깊이와 알람 기능은 새로운 기능의 개발과 연관되어, 나 또한 느낌 뱅 뱅 다 경험을 전진! 중반 12 월에이 기능 라인은 작은 파트너는 ~ 그 기대를 만족

 

당신이하지 OneAPM 사용자의 경우, 클릭  https://user.oneapm.com/pages/v2/signup  즉시 성능 최적화 느낄 무료 평가판에 지금 등록하세요!

 

질문이나 제안이있는 경우 프로세스의 사용에서, 우리는 당신을 도와 드릴 것입니다, 저희에게 연락 주시기 바랍니다 :

 

QQ : 321095806

커뮤니티 : HTTP : //club.oneapm.com

추천

출처www.cnblogs.com/oneapm/p/11934446.html