Sentry 시작하기@ 마나링크
10946 단어 JavaScriptSentrytech
본 보도에 관하여
이것은 온라인 홈 강사 링크에서 사용한 Sentry의 입문 문장이다.
mana 링크에서 웹 전단 및 React Native 응용 프로그램에서 Sentry를 이용하여 오류를 포착합니다.
본 보도의 내용은 기본적으로 모두 README로 보류되어 있기 때문에 다소 전제조건을 뛰어넘어 기재할 수 있으니 양해해 주십시오.리덤을 기사로 보내면서 알찬 일석이조의 대책으로 전념하고 있다.
Sentry 개요
Sentry는 애플리케이션에서 발생한 오류를 수집하고 관리 화면을 한눈에 볼 수 있는 서비스다.
Sentry에 오류를 보내는 것은 각 언어 프레임워크에 준비된 SDK로 수행할 수 있습니다.
따라서 Sentry를 능숙하게 사용하려면 다음과 같은 두 가지 측면을 어느 정도 이해해야 한다.
Sentry SDK 사용 방법
mana 링크에서는 크게 React Native 애플리케이션과 Nuxt 생산의 프런트엔드에서 Sentry를 사용합니다.
어쨌든 React Native 애플리케이션은 더 많은 Sentry를 사용하기 때문에 React Native 코드로 설명하면 Nuxt도 대체로 같은 규격을 사용할 수 있다.
React Native
mana 링크에서 React Native 애플리케이션Expo이 사용되고 있습니다.
따라서
sentry-expo
포장을 이용하여 Sentry를 설치한다.설정
App.tsx 등을 통해 집행
init
방법.dsn
에서 Sentry 관리 화면에서 가져올 URL을 설정합니다.App.tsx
Sentry.init({
dsn: Constants.manifest?.web?.config?.sentry.dsn,
release: Constants.manifest?.revisionId || 'DEV',
debug: __DEV__,
});
기본적으로 이렇게 완성되었다.그러면 JavaScript 응용 프로그램에서 발생한 오류(Catch 오류 없음)가 Sentry에 전송됩니다.사용자와 링크
설령 오류를 보냈다고 해도 그 오류가 어느 사용자가 일으킨 것인지 모르면 뜻은 반감될 것이다.
다음과 같은 방법으로 미리 Sentry에 사용자 정보를 보낼 수 있습니다.마나 링크는 사용자 ID와 사용자 이름, revisionId(Expo를 통한 OTA 업데이트 시 게시 ID)를 연결합니다.Sentry의 문서에서 이메일을 보내는 예가 있지만 각종 서비스에서 사용자의 메일 주소를 공유할 필요가 없는 것은 좋지 않다고 생각하기 때문에 아이디를 사용하는 것이 좋다고 생각합니다.
App.tsx
useEffect(() => {
if (auth) {
Sentry.Native.setUser({
id: auth.uid,
name: auth.displayName,
revisionId: updateManifest?.revisionId,
});
setUser 방법이 실행된 후 발생한 오류는 Sentry의 관리 화면에서 조사할 때 사용자 정보와 관련이 있어 어느 사용자가 발생했는지 바로 확인할 수 있어 매우 편리하다.오류 전에 발생한 이벤트 추적
설령 사용자가 오류가 발생했다고 하더라도 그 전에 무엇을 했는지 확인할 수 있다면 이런 상하문도 매우 중요하다.채팅 앱을 개발해 채팅 메시지를 보낸 뒤 오류가 발생한 경우 등이다.
그 컨텍스트는 Sentry Breadcrumbs라는 기능으로 저장할 수 있습니다.
관건적인 조작을 할 때 다음과 같은 실행
addBreadcrumb
을 통해 오류가 발생했을 때 Sentry의 관리 화면에서 오류 전 사용자의 조작 내용을 확정할 수 있다.category, 메시지, 데이터 속성은 모든 데이터를 던질 수 있습니다.Hoge.tsx
Sentry.Native.addBreadcrumb({
category: 'ACTION',
message: 'SEND_MESSAGE',
data: {
roomId: props.route.params.room.id,
userId: user!.id,
},
});
실제 유용한 예로 로그인 관련으로 여겨지는 오류가 발생했을 때 브래드크럼버스 덕분에 그동안 여러 차례 로그인을 반복했다는 사실을 알게 됐다.원인을 직접 분석할 수 없는 경우가 많지만 사용자의 문의와 발생한 오류를 연결시켜 정확도를 높이는 데 도움이 된다.수동 전송 오류
실제로 전혀 포착되지 않은 오류가 스로우에 노출되는 경우가 많은 게 아니라 캐치를 통해 이용자에게 피드백하는 경우가 많은 편이다.이때 Sentry에 오류를 보내거나 수동으로 오류를 보낼 수도 있습니다.
.catch((error) => {
Sentry.Native.captureException(error);
setError(error);
})
captureException
는 Error형 변수를 방법으로 전달하여 오류로 Sentry에 보낼 수 있다.경고 메시지 등의 발송
Error형의 값으로 나타나지 않아도, 예를 들어 Deprecated로 변해야 하는 실현이 이동하고 있는지 등을 측정하려면 단순한 경고 정도의 정보를 Sentry에 기록할 수 있다.
Sentry.Native.captureMessage(`○○の取得に失敗`, Severity.Warning)
captureMessage
는 단순 스트링을 Sentry에 보낼 수 있다.레벨을 두 번째 매개변수로 지정할 수 있으며 Info, Debug, Warning 등을 선택할 수 있습니다.예를 들어 경보를 설정하면 사내 슬랙 에로르 레벨에 대한 정보만 알려주고, 워닝 이하는 Sentry에만 저장해 고장 날 수 있는 설치와 삭제해야 할 기능이 아직 실행 중임을 감지할 수 있다.
마나체인 도로에서는 엘러러급 제품만 슬랙 채널에 알립니다.그 설정은 Sentry에서 화면을 관리할 수 있습니다.
이 일대는 아직 마나 링크가 제대로 운영되지 않아 규모에 따라 정보 형태를 속박하는 방법 등이 있다.
Sentry 관리 화면 사용 방법
다음은 화면 관리 방법을 설명한다.
마나링크는 센트리의 팀 플랜에 입사했기 때문에 한 달에 5만 개의 오류를 포착할 수 있고, 여러 명이 멤버를 초대할 수 있다.이미 가입한 구성원을 초대하십시오.
잘못된 견해
Issues 화면에서 발생한 오류,capture Message에서 던진 문자열 목록을 볼 수 있습니다.
클릭하면 상세 페이지로 넘어가 사용자가 사용하는 터미널의 OS와 앱 버전을 필두로 다음과 같은 외관으로 Breadcrumbs에 기록된 내용을 볼 수 있다.
실제 잘못된 내용은 Sentry 화면에서 확인하십시오.
Slack 공동 작업
Alerts 화면에서 Slack 공동 작업을 설정할 수 있습니다.MANA 링크에서는 에로르에게 등급 이상의 내용만 공지하지만, 조건 설정이 유연해 워닝 등에서도 공지가 가능하다.
무시
특히 웹 프런트엔드에서는 브라우저 의존성 오류 등 부득이한 오류 로그가 자주 발생하고 Network Error와 같은 사용자의 통신 상황에 의존하는 오류도 자주 발생한다.이러한 오류는 매번 슬랙에서 재생되면 시끄럽기 때문에 MANA 링크의 경우 아이슈의 상세 화면에서'Ignore'를 눌러 앨러트의 대상에서 제외한다.
지속적인 개선
Sentry에서는 평소 상당히 많은 오류가 발생하고 설치 상황에 따라 오류가 발생하거나 메시지를 보내기 쉬우므로 관리 체제의 지속적인 개선이 필요하다.
지금까지 Sentry 활용 내용에 대한 기사였습니다.운용에 관해서는 아직 개선된 점이 있다고 생각해서 다양한 사례를 알고 싶습니다.
🔔 직원 모집
온라인 가정교사 서비스 "ManaLink"에서 엔지니어를 모집하고 있습니다!
2020년에 발매되는데 더 많은 서비스를 함께 개발해 볼까요?
개발한 기능은 온라인 멘토링의 현장에서 바로 활용될 수 있어 멘토링 과정의 최적화와 연결된 환경이다.
특히 테스트 코드를 작성하고 엔지니어를 주도로 품질을 보호하며 신기술의 학습과 출력을 중시하며 기술 수준을 고려하지 않는다.
이런 맥락에서 세부적인 기술 경험이 있느냐 없느냐보다 앞으로 어떤 엔지니어가 돼 여가 면담에 적극적으로 나설 수 있기를 기대한다.
일단 한 번 얘기 안 해요?다음은 Meety에게 문의하세요!
최근 모집 요점은 다음과 같이 요약된다.다만 최근 공모를 위해 사업 쪽에 관심이 있다면 중장기적인 연계도 환영한다.당신의 연락을 기대합니다!
Reference
이 문제에 관하여(Sentry 시작하기@ 마나링크), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/manalink/articles/manalink-intro-sentry텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)