GatbsyJS와 Sentry.io 통합
10600 단어 reactgatsbysentryjavascript
시작하기
튜토리얼을 따라하고 싶다면 여기에서 내가 설정하는 데 사용한 것입니다.
개츠비 설정
npm i gatsby -g
npm init gatsby
센트리 설정
plugins: [
{
resolve: "gatsby-plugin-sentry",
options: {
dsn: "YOUR_SENTRY_DSN_URL",
}
}
];
일부 코드를 보려면 gatsby new my-apphttps://github.com/code-mattclaffey/sentry-gatsby-example를 실행할 수 있습니다.
무언가 잘못되었을 때 더 나은 사용자 경험 제공
고객은 일반적으로 오류가 발생하고 고객의 여정이 완전히 중지될 때 "죽음의 흰색 화면"을 보게 됩니다. 이는 고객이 귀하의 제품을 구매하지 않을 가능성이 매우 높으며 오류가 적절하게 처리되지 않으면 실제로 나쁜 리뷰를 남길 수 있습니다.
React에는 예를 들어 트리에서 위치하는 범위 내의 오류를 포함하는 오류 경계라는 패턴이 있습니다. 앱 수준에서 오류 경계를 배치하면 앱 구성 요소 내에서 발생하는 모든 오류를 처리합니다. Gatsby에서 우리는 Gatsby 애플리케이션의 루트에 이 오류 경계를 적용하려고 합니다. 우리가 사용할 API는 wrapPageElement 입니다.
오류 경계 만들기
가장 먼저 해야 할 일은 사이트에서 오류가 발생할 때 처리하는 React 구성 요소를 만드는 것입니다. 우리는 로깅에 Sentry를 사용하고 있기 때문에 npm에 이미 있는 것이 있는지 확인하고 싶기 때문에 Sentry와의 맞춤형 통합을 작성할 필요가 없습니다. 운 좋게! Sentry에는 이미 사용하고 있는 오류 경계 구성 요소를 제공하는 npm 패키지@sentry/react가 있습니다. 다음은 Sentry의 ErrorBoundary 구성 요소에 전달되는 일부 UI 구성 요소의 예입니다.
import React from "react"
import { ErrorBoundary } from "@sentry/react"
import { Link } from "gatsby"
const Fallback = ({ error, resetError }) => (
<div role="alert">
<p>Something went wrong</p>
<pre>{error.message}</pre>
<Link to="/" onClick={resetError}><a>Try again</a></Link>
</div>
)
const ErrorBoundaryContainer = ({ children }) => <ErrorBoundary fallback={FallBack}>{children}</ErrorBoundary>
export default ErrorBoundaryContainer
구성 요소가 있으면 gatsby-browser.js의 페이지 루트에 추가해야 합니다.
import React from "react"
import ErrorBoundary from "`./src/components/error-boundary"
export const wrapPageElement = ({ element }) => (
<ErrorBoundary>
{element}
</ErrorBoundary>
)
작동 테스트
이 간단한 작업을 테스트하려면 다음과 같이 반응 애플리케이션에서 오류를 발생시킵니다.
import React from "react"
const Component = () => {
const [toggleError, setToggleError] = useState(false)
if (toggleError) {
throw Error('Component Error')
}
return <button type="button" onClick={() => setToggleError(true)}>Toggle error</button>
}
Sentry.io의 오류 시각화
Sentry에는 사이트에서 오류가 발생했을 때 표시되는 매우 간단한 UI가 있습니다. 해당 오류가 캡처되면 문제 섹션에 표시됩니다.
오류를 클릭하면 발생한 브라우저, 운영 체제 및 오류 세부 정보와 같은 오류에 대한 많은 정보를 제공합니다. 나는 이 섹션이 작업하고 이해하기에 정말 좋다는 것을 알았습니다.
오류가 발생했을 때 알려주는 경고 설정
다음으로 하고 싶은 일은 오류가 발생했을 때 누군가에게 알리는 것입니다. Sentry에는 그룹 구성원에게 이메일을 보내는 알림을 설정할 수 있는 기능이 있습니다.
예제에서 "I crashed!"라는 메시지로 오류를 만들었습니다. 5분 속도 제한 내에 오류가 발생하면 이에 대한 알림을 받을 수 있도록 나에게 이메일을 보내고 싶었습니다.
결론
요약하면 반응 애플리케이션에 로깅/오류 처리를 추가하는 것은 정말 쉽습니다. Sentry는 우리를 위해 많은 이동을 처리하고 Gatsby는 구성 요소의 루트에 오류 경계를 고정하는 API를 제공합니다. 아주 적은 노력과 매우 높은 가치로 고객 대면 웹사이트를 구축할 때 사용할 수 있는 좋은 도구라고 생각합니다.
자원
Reference
이 문제에 관하여(GatbsyJS와 Sentry.io 통합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mattc/integrating-sentry-io-with-gatbsyjs-16l4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)